public void ObjectChanged(INakedObject nakedObject, ILifecycleManager lifecycleManager, IMetamodelManager metamodel) { Log.DebugFormat("ObjectChanged nakedObject: {0}", nakedObject); if (nakedObject.ResolveState.RespondToChangesInPersistentObjects()) { if (nakedObject.Spec.ContainsFacet(typeof(IComplexTypeFacet))) { nakedObject.Updating(); nakedObject.Updated(); } else { ITypeSpec spec = nakedObject.Spec; if (spec.IsAlwaysImmutable() || (spec.IsImmutableOncePersisted() && nakedObject.ResolveState.IsPersistent())) { throw new NotPersistableException("cannot change immutable object"); } nakedObject.Updating(); objectStore.ExecuteSaveObjectCommand(nakedObject); nakedObject.Updated(); } } if (nakedObject.ResolveState.RespondToChangesInPersistentObjects() || nakedObject.ResolveState.IsTransient()) { } }
public void ObjectChanged(INakedObjectAdapter nakedObjectAdapter, ILifecycleManager lifecycleManager, IMetamodelManager metamodel) { if (nakedObjectAdapter.ResolveState.RespondToChangesInPersistentObjects()) { if (nakedObjectAdapter.Spec.ContainsFacet(typeof(IComplexTypeFacet))) { nakedObjectAdapter.Updating(); nakedObjectAdapter.Updated(); } else { var spec = nakedObjectAdapter.Spec; if (spec.IsAlwaysImmutable() || spec.IsImmutableOncePersisted() && nakedObjectAdapter.ResolveState.IsPersistent()) { throw new NotPersistableException(logger.LogAndReturn("cannot change immutable object")); } nakedObjectAdapter.Updating(); if (!spec.IsNeverPersisted()) { objectStore.ExecuteSaveObjectCommand(nakedObjectAdapter); } nakedObjectAdapter.Updated(); } } if (nakedObjectAdapter.ResolveState.RespondToChangesInPersistentObjects() || nakedObjectAdapter.ResolveState.IsTransient()) { } }