Beispiel #1
0
		public override void Activate(UnmarshallingContext context)
		{
			context.ObjectReference().ProduceVirtualAttributes();
			Instantiate1(context);
		}
Beispiel #2
0
 protected void OnInstantiate(UnmarshallingContext context, object obj)
 {
     context.SetObjectWeak(obj);
     context.Transaction().ReferenceSystem().AddExistingReference(context.ObjectReference
         ());
     ObjectOnInstantiate(context.Transaction(), context.ObjectReference());
 }
Beispiel #3
0
 private object Activate(UnmarshallingContext context)
 {
     var obj = context.PersistentObject();
     var objectReference = context.ObjectReference();
     if (!ObjectCanActivate(context.Transaction(), obj))
     {
         objectReference.SetStateDeactivated();
         return obj;
     }
     objectReference.SetStateClean();
     if (context.ActivationDepth().RequiresActivation())
     {
         InstantiateFields(context);
     }
     ObjectOnActivate(context.Transaction(), objectReference);
     return obj;
 }
Beispiel #4
0
 public virtual object Instantiate(UnmarshallingContext context)
 {
     // overridden in PrimitiveTypeMetadata
     // never called for primitive YapAny
     // FIXME: [TA] no longer necessary?
     //        context.adjustInstantiationDepth();
     var obj = context.PersistentObject();
     var instantiating = (obj == null);
     if (instantiating)
     {
         obj = InstantiateObject(context);
         if (obj == null)
         {
             return null;
         }
         ShareTransaction(obj, context.Transaction());
         ShareObjectReference(obj, context.ObjectReference());
         OnInstantiate(context, obj);
         if (context.ActivationDepth().Mode().IsPrefetch())
         {
             context.ObjectReference().SetStateDeactivated();
             return obj;
         }
         if (!context.ActivationDepth().RequiresActivation())
         {
             context.ObjectReference().SetStateDeactivated();
             return obj;
         }
         return Activate(context);
     }
     if (ActivatingActiveObject(context.ActivationDepth().Mode(), context.ObjectReference
         ()))
     {
         var child = context.ActivationDepth().Descend(this);
         if (child.RequiresActivation())
         {
             CascadeActivation(new ActivationContext4(context.Transaction(), obj, child));
         }
         return obj;
     }
     return Activate(context);
 }