コード例 #1
0
 @Override
 public void modified(ScalarEvent e) {
   EventAttributeContext localAttributeContext = e.getAttributeContext(AttributeScope.LOCAL);
   if (localAttributeContext.getAttribute(AK_MODIFIYING_EXECUTED) == null) {
     return;
   }
   FrozenLazyInitializerImpl declaring = FrozenLazyInitializerImpl.this;
   if (e.getProperty() == declaring.objectModelMetadata.getEntityIdProperty()) {
     try {
       declaring.disableSetTargetIdentifier = true;
       try {
         declaring.setIdentifier((Serializable) e.getScalar(PropertyVersion.ATTACH));
       } finally {
         declaring.disableSetTargetIdentifier = false;
       }
     } finally {
       FrozenContext<?> ctx =
           (FrozenContext<?>) localAttributeContext.getAttribute(AK_FROZENCONTEXT);
       FrozenContext.resumeFreezing(ctx);
     }
   }
   ScalarEvent dispatchedEvent = e.getDispathcedEvent(true);
   if (dispatchedEvent != null) {
     declaring.executeModified(dispatchedEvent);
   }
 }
コード例 #2
0
 @SuppressWarnings({"unchecked", "rawtypes"})
 @Override
 public void setIdentifier(Serializable id) {
   FrozenContext<Serializable> ctx = (FrozenContext) this.idFrozenContext;
   FrozenContext.suspendFreezing(ctx, this.owner);
   try {
     this.setRawIdentifier(id);
   } finally {
     FrozenContext.resumeFreezing(ctx);
   }
 }
コード例 #3
0
ファイル: FullName.java プロジェクト: ChenArthur/babyfish
  public void setFirstName(String firstName) {

    FrozenContext<FullName> ctx = this.firstNameFrozenContext;

    /*
     * Before modification, remove the current object from the all the
     * hash-tables and red-black-trees retained by this.firstNameFrozenContext
     */
    FrozenContext.suspendFreezing(ctx, this);
    try {
      this.firstName = firstName;
    } finally {
      /*
       * After modification, add the current object into the all the
       * hash-tables and red-black-trees retained by this.firstNameFrozenContext
       * AGAIN!
       */
      FrozenContext.resumeFreezing(ctx);
    }
  }