You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@isis.apache.org by da...@apache.org on 2012/07/09 23:05:19 UTC

svn commit: r1359393 [2/3] - in /incubator/isis/trunk/framework: core/metamodel/src/main/java/org/apache/isis/core/metamodel/adapter/ core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/ core/metamodel/src/main/java/org/apache/isis/core/...

Modified: incubator/isis/trunk/framework/core/metamodel/src/test/java/org/apache/isis/core/metamodel/adapter/ResolveState_RespondToChangesInPersistentObjectsTest.java
URL: http://svn.apache.org/viewvc/incubator/isis/trunk/framework/core/metamodel/src/test/java/org/apache/isis/core/metamodel/adapter/ResolveState_RespondToChangesInPersistentObjectsTest.java?rev=1359393&r1=1359392&r2=1359393&view=diff
==============================================================================
--- incubator/isis/trunk/framework/core/metamodel/src/test/java/org/apache/isis/core/metamodel/adapter/ResolveState_RespondToChangesInPersistentObjectsTest.java (original)
+++ incubator/isis/trunk/framework/core/metamodel/src/test/java/org/apache/isis/core/metamodel/adapter/ResolveState_RespondToChangesInPersistentObjectsTest.java Mon Jul  9 21:05:16 2012
@@ -22,12 +22,8 @@ package org.apache.isis.core.metamodel.a
 import static org.apache.isis.core.metamodel.adapter.ResolveState.DESTROYED;
 import static org.apache.isis.core.metamodel.adapter.ResolveState.GHOST;
 import static org.apache.isis.core.metamodel.adapter.ResolveState.NEW;
-import static org.apache.isis.core.metamodel.adapter.ResolveState.PART_RESOLVED;
 import static org.apache.isis.core.metamodel.adapter.ResolveState.RESOLVED;
 import static org.apache.isis.core.metamodel.adapter.ResolveState.RESOLVING;
-import static org.apache.isis.core.metamodel.adapter.ResolveState.RESOLVING_PART;
-import static org.apache.isis.core.metamodel.adapter.ResolveState.SERIALIZING_GHOST;
-import static org.apache.isis.core.metamodel.adapter.ResolveState.SERIALIZING_PART_RESOLVED;
 import static org.apache.isis.core.metamodel.adapter.ResolveState.SERIALIZING_RESOLVED;
 import static org.apache.isis.core.metamodel.adapter.ResolveState.SERIALIZING_TRANSIENT;
 import static org.apache.isis.core.metamodel.adapter.ResolveState.TRANSIENT;
@@ -49,8 +45,14 @@ public class ResolveState_RespondToChang
 
     @Parameters
     public static Collection<Object[]> data() {
-        return Arrays.asList(new Object[][] { { true, GHOST }, { false, NEW }, { true, PART_RESOLVED }, { true, RESOLVED }, { false, RESOLVING }, { false, RESOLVING_PART }, { false, TRANSIENT }, { true, DESTROYED }, { false, UPDATING }, { false, SERIALIZING_TRANSIENT },
-                { false, SERIALIZING_GHOST }, { false, SERIALIZING_PART_RESOLVED }, { false, SERIALIZING_RESOLVED }, { true, VALUE }, });
+        return Arrays.asList(new Object[][] { { true, GHOST }, { false, NEW }, 
+                // { true, PART_RESOLVED }, 
+                { true, RESOLVED }, { false, RESOLVING },
+                // { false, RESOLVING_PART },
+                { false, TRANSIENT }, { true, DESTROYED }, { false, UPDATING }, { false, SERIALIZING_TRANSIENT },
+                // { false, SERIALIZING_GHOST },
+                // { false, SERIALIZING_PART_RESOLVED },
+                { false, SERIALIZING_RESOLVED }, { true, VALUE }, });
     }
 
     private final boolean whetherIs;

Modified: incubator/isis/trunk/framework/core/progmodel/src/main/java/org/apache/isis/core/progmodel/facets/members/disable/DisabledFacetImpl.java
URL: http://svn.apache.org/viewvc/incubator/isis/trunk/framework/core/progmodel/src/main/java/org/apache/isis/core/progmodel/facets/members/disable/DisabledFacetImpl.java?rev=1359393&r1=1359392&r2=1359393&view=diff
==============================================================================
--- incubator/isis/trunk/framework/core/progmodel/src/main/java/org/apache/isis/core/progmodel/facets/members/disable/DisabledFacetImpl.java (original)
+++ incubator/isis/trunk/framework/core/progmodel/src/main/java/org/apache/isis/core/progmodel/facets/members/disable/DisabledFacetImpl.java Mon Jul  9 21:05:16 2012
@@ -43,7 +43,7 @@ public class DisabledFacetImpl extends D
         }
 
         if (value() == When.UNTIL_PERSISTED) {
-            return targetAdapter.isTransient() ? "Disabled until persisted" : null;
+            return targetAdapter.representsTransient() ? "Disabled until persisted" : null;
         } else if (value() == When.ONCE_PERSISTED) {
             return targetAdapter.isPersistent() ? "Disabled once persisted" : null;
         }

Modified: incubator/isis/trunk/framework/core/progmodel/src/main/java/org/apache/isis/core/progmodel/facets/members/hide/HiddenFacetImpl.java
URL: http://svn.apache.org/viewvc/incubator/isis/trunk/framework/core/progmodel/src/main/java/org/apache/isis/core/progmodel/facets/members/hide/HiddenFacetImpl.java?rev=1359393&r1=1359392&r2=1359393&view=diff
==============================================================================
--- incubator/isis/trunk/framework/core/progmodel/src/main/java/org/apache/isis/core/progmodel/facets/members/hide/HiddenFacetImpl.java (original)
+++ incubator/isis/trunk/framework/core/progmodel/src/main/java/org/apache/isis/core/progmodel/facets/members/hide/HiddenFacetImpl.java Mon Jul  9 21:05:16 2012
@@ -43,7 +43,7 @@ public class HiddenFacetImpl extends Hid
         }
 
         if (value() == When.UNTIL_PERSISTED) {
-            return targetAdapter.isTransient() ? "Hidden until persisted" : null;
+            return targetAdapter.representsTransient() ? "Hidden until persisted" : null;
         } else if (value() == When.ONCE_PERSISTED) {
             return targetAdapter.isPersistent() ? "Hidden once persisted" : null;
         }

Modified: incubator/isis/trunk/framework/progmodels/wrapper/wrapper-metamodel/src/main/java/org/apache/isis/progmodel/wrapper/metamodel/internal/DomainObjectInvocationHandler.java
URL: http://svn.apache.org/viewvc/incubator/isis/trunk/framework/progmodels/wrapper/wrapper-metamodel/src/main/java/org/apache/isis/progmodel/wrapper/metamodel/internal/DomainObjectInvocationHandler.java?rev=1359393&r1=1359392&r2=1359393&view=diff
==============================================================================
--- incubator/isis/trunk/framework/progmodels/wrapper/wrapper-metamodel/src/main/java/org/apache/isis/progmodel/wrapper/metamodel/internal/DomainObjectInvocationHandler.java (original)
+++ incubator/isis/trunk/framework/progmodels/wrapper/wrapper-metamodel/src/main/java/org/apache/isis/progmodel/wrapper/metamodel/internal/DomainObjectInvocationHandler.java Mon Jul  9 21:05:16 2012
@@ -292,7 +292,7 @@ public class DomainObjectInvocationHandl
         notifyListenersAndVetoIfRequired(interactionResult);
 
         if (getExecutionMode() == ExecutionMode.EXECUTE) {
-            if (targetAdapter.isTransient()) {
+            if (targetAdapter.representsTransient()) {
                 getObjectPersistor().makePersistent(targetAdapter);
             }
         }

Modified: incubator/isis/trunk/framework/runtimes/dflt/objectstores/dflt/src/main/java/org/apache/isis/runtimes/dflt/objectstores/dflt/InMemoryObjectStore.java
URL: http://svn.apache.org/viewvc/incubator/isis/trunk/framework/runtimes/dflt/objectstores/dflt/src/main/java/org/apache/isis/runtimes/dflt/objectstores/dflt/InMemoryObjectStore.java?rev=1359393&r1=1359392&r2=1359393&view=diff
==============================================================================
--- incubator/isis/trunk/framework/runtimes/dflt/objectstores/dflt/src/main/java/org/apache/isis/runtimes/dflt/objectstores/dflt/InMemoryObjectStore.java (original)
+++ incubator/isis/trunk/framework/runtimes/dflt/objectstores/dflt/src/main/java/org/apache/isis/runtimes/dflt/objectstores/dflt/InMemoryObjectStore.java Mon Jul  9 21:05:16 2012
@@ -260,8 +260,8 @@ public class InMemoryObjectStore impleme
         if (adapter.getResolveState().canChangeTo(ResolveState.RESOLVING)) {
             LOG.debug("resolve " + adapter);
 
-            PersistorUtil.start(adapter, ResolveState.RESOLVING);
-            PersistorUtil.end(adapter); // moves to RESOLVED
+            PersistorUtil.startStateTransition(adapter, ResolveState.RESOLVING);
+            PersistorUtil.endStateTransition(adapter); // moves to RESOLVED
         } else {
             LOG.warn("resolveImmediately ignored, " + "adapter's current state is: " + adapter.getResolveState() + " ; oid: " + adapter.getOid());
         }
@@ -270,8 +270,8 @@ public class InMemoryObjectStore impleme
     @Override
     public void resolveField(final ObjectAdapter object, final ObjectAssociation field) throws ObjectPersistenceException {
         final ObjectAdapter reference = field.get(object);
-        PersistorUtil.start(reference, ResolveState.RESOLVING);
-        PersistorUtil.end(reference);
+        PersistorUtil.startStateTransition(reference, ResolveState.RESOLVING);
+        PersistorUtil.endStateTransition(reference);
     }
 
 
@@ -325,8 +325,8 @@ public class InMemoryObjectStore impleme
     private static List<ObjectAdapter> resolved(final List<ObjectAdapter> instances) {
         for (ObjectAdapter adapter: instances) {
             if (adapter.getResolveState().canChangeTo(ResolveState.RESOLVING)) {
-                PersistorUtil.start(adapter, ResolveState.RESOLVING);
-                PersistorUtil.end(adapter);
+                PersistorUtil.startStateTransition(adapter, ResolveState.RESOLVING);
+                PersistorUtil.endStateTransition(adapter);
             }
         }
         return instances;

Modified: incubator/isis/trunk/framework/runtimes/dflt/objectstores/jdo/jdo-datanucleus/src/main/java/org/apache/isis/runtimes/dflt/objectstores/datanucleus/DataNucleusObjectStore.java
URL: http://svn.apache.org/viewvc/incubator/isis/trunk/framework/runtimes/dflt/objectstores/jdo/jdo-datanucleus/src/main/java/org/apache/isis/runtimes/dflt/objectstores/datanucleus/DataNucleusObjectStore.java?rev=1359393&r1=1359392&r2=1359393&view=diff
==============================================================================
--- incubator/isis/trunk/framework/runtimes/dflt/objectstores/jdo/jdo-datanucleus/src/main/java/org/apache/isis/runtimes/dflt/objectstores/datanucleus/DataNucleusObjectStore.java (original)
+++ incubator/isis/trunk/framework/runtimes/dflt/objectstores/jdo/jdo-datanucleus/src/main/java/org/apache/isis/runtimes/dflt/objectstores/datanucleus/DataNucleusObjectStore.java Mon Jul  9 21:05:16 2012
@@ -397,7 +397,7 @@ public class DataNucleusObjectStore impl
             LOG.debug("resolveImmediately; oid=" + adapter.getOid().enString());
         }
 
-        if (adapter.getResolveState().isResolved()) {
+        if (adapter.isResolved()) {
             if (LOG.isDebugEnabled()) {
                 LOG.debug("; already resolved - ignoring");
             }

Modified: incubator/isis/trunk/framework/runtimes/dflt/objectstores/jdo/jdo-datanucleus/src/main/java/org/apache/isis/runtimes/dflt/objectstores/datanucleus/persistence/IsisLifecycleListener.java
URL: http://svn.apache.org/viewvc/incubator/isis/trunk/framework/runtimes/dflt/objectstores/jdo/jdo-datanucleus/src/main/java/org/apache/isis/runtimes/dflt/objectstores/datanucleus/persistence/IsisLifecycleListener.java?rev=1359393&r1=1359392&r2=1359393&view=diff
==============================================================================
--- incubator/isis/trunk/framework/runtimes/dflt/objectstores/jdo/jdo-datanucleus/src/main/java/org/apache/isis/runtimes/dflt/objectstores/datanucleus/persistence/IsisLifecycleListener.java (original)
+++ incubator/isis/trunk/framework/runtimes/dflt/objectstores/jdo/jdo-datanucleus/src/main/java/org/apache/isis/runtimes/dflt/objectstores/datanucleus/persistence/IsisLifecycleListener.java Mon Jul  9 21:05:16 2012
@@ -278,7 +278,7 @@ public class IsisLifecycleListener imple
 
         if(!pojo.jdoIsPersistent()) {
             // make sure the adapter is transient
-            if (!adapter.getResolveState().isTransient()) {
+            if (!adapter.getResolveState().representsTransient()) {
                 throw new IsisException(MessageFormat.format("adapter is in invalid state; should be {0} but is {1}", ResolveState.TRANSIENT, adapter.getResolveState()));
             }
 
@@ -289,7 +289,7 @@ public class IsisLifecycleListener imple
 
         } else {
             // make sure the adapter is persistent
-            if (!adapter.getResolveState().isPersistent()) {
+            if (!adapter.getResolveState().representsPersistent()) {
                 throw new IsisException(MessageFormat.format("adapter is in invalid state; should be in a persistent state but is {1}", ResolveState.RESOLVED, adapter.getResolveState()));
             }
 

Modified: incubator/isis/trunk/framework/runtimes/dflt/objectstores/jdo/jdo-datanucleus/src/main/java/org/apache/isis/runtimes/dflt/objectstores/datanucleus/persistence/spi/ResolveStateUtil.java
URL: http://svn.apache.org/viewvc/incubator/isis/trunk/framework/runtimes/dflt/objectstores/jdo/jdo-datanucleus/src/main/java/org/apache/isis/runtimes/dflt/objectstores/datanucleus/persistence/spi/ResolveStateUtil.java?rev=1359393&r1=1359392&r2=1359393&view=diff
==============================================================================
--- incubator/isis/trunk/framework/runtimes/dflt/objectstores/jdo/jdo-datanucleus/src/main/java/org/apache/isis/runtimes/dflt/objectstores/datanucleus/persistence/spi/ResolveStateUtil.java (original)
+++ incubator/isis/trunk/framework/runtimes/dflt/objectstores/jdo/jdo-datanucleus/src/main/java/org/apache/isis/runtimes/dflt/objectstores/datanucleus/persistence/spi/ResolveStateUtil.java Mon Jul  9 21:05:16 2012
@@ -19,17 +19,16 @@ public final class ResolveStateUtil {
 
         // move to ResolveState.RESOLVED;
 
-        if (adapter.getResolveState().isResolving()) { // either RESOLVING or
-            // PART_RESOLVING
+        if (adapter.isResolving()) { 
             adapter.changeState(ResolveState.RESOLVED);
 
-        } else if (adapter.getResolveState().isResolved()) {
+        } else if (adapter.isResolved()) {
             // nothing to do.
 
-        } else if (adapter.getResolveState().isPartlyResolved()) {
-            adapter.changeState(ResolveState.RESOLVED);
+//        } else if (adapter.getResolveState().isPartlyResolved()) {
+//            adapter.changeState(ResolveState.RESOLVED);
 
-        } else if (adapter.getResolveState().isUpdating()) {
+        } else if (adapter.isUpdating()) {
             adapter.changeState(ResolveState.RESOLVED);
         }
     }
@@ -37,53 +36,53 @@ public final class ResolveStateUtil {
 
     private static void moveUpToResolving(final ObjectAdapter adapter) {
         // move these on so we can get to part_resolved or resolved.
-        if (adapter.isTransient()) {
+        if (adapter.representsTransient()) {
             adapter.changeState(ResolveState.RESOLVED);
             adapter.changeState(ResolveState.GHOST);
             adapter.changeState(ResolveState.RESOLVING);
 
-        } else if (adapter.getResolveState().isNew()) {
+        } else if (adapter.isNew()) {
             adapter.changeState(ResolveState.GHOST);
             adapter.changeState(ResolveState.RESOLVING);
 
-        } else if (adapter.getResolveState().isGhost()) {
+        } else if (adapter.isGhost()) {
             adapter.changeState(ResolveState.RESOLVING);
         }
     }
 
     public static void markAsGhost(final ObjectAdapter adapter) {
 
-        if (adapter.getResolveState().isValue()) {
+        if (adapter.isValue()) {
             // TODO: what should we do here? throw exception?
         }
-        if (adapter.getResolveState().isDestroyed()) {
+        if (adapter.isDestroyed()) {
             // TODO: what should we do here? throw exception?
         }
 
-        if (adapter.isTransient()) {
+        if (adapter.representsTransient()) {
             adapter.changeState(ResolveState.RESOLVED);
             adapter.changeState(ResolveState.GHOST);
 
-        } else if (adapter.getResolveState().isNew()) {
+        } else if (adapter.isNew()) {
             adapter.changeState(ResolveState.GHOST);
 
-        } else if (adapter.getResolveState().isPartlyResolved()) {
-            adapter.changeState(ResolveState.RESOLVING);
-            adapter.changeState(ResolveState.RESOLVED);
-            adapter.changeState(ResolveState.GHOST);
+//        } else if (adapter.getResolveState().isPartlyResolved()) {
+//            adapter.changeState(ResolveState.RESOLVING);
+//            adapter.changeState(ResolveState.RESOLVED);
+//            adapter.changeState(ResolveState.GHOST);
 
-        } else if (adapter.getResolveState().isResolving()) {
+        } else if (adapter.isResolving()) {
             adapter.changeState(ResolveState.RESOLVED);
             adapter.changeState(ResolveState.GHOST);
 
-        } else if (adapter.getResolveState().isUpdating()) {
+        } else if (adapter.isUpdating()) {
             adapter.changeState(ResolveState.RESOLVED);
             adapter.changeState(ResolveState.GHOST);
 
-        } else if (adapter.getResolveState().isResolved()) {
+        } else if (adapter.isResolved()) {
             adapter.changeState(ResolveState.GHOST);
 
-        } else if (adapter.getResolveState().isGhost()) {
+        } else if (adapter.isGhost()) {
             // nothing to do.
         }
     }
@@ -91,10 +90,10 @@ public final class ResolveStateUtil {
 
     public static void markAsUpdating(final ObjectAdapter adapter) {
 
-        if (adapter.getResolveState() == ResolveState.TRANSIENT) {
+        if (adapter.isTransient()) {
             adapter.changeState(ResolveState.RESOLVED);
         }
-        if (adapter.getResolveState() == ResolveState.RESOLVED) {
+        if (adapter.isResolved()) {
             adapter.changeState(ResolveState.UPDATING);
         }
     }

Modified: incubator/isis/trunk/framework/runtimes/dflt/objectstores/jdo/jdo-datanucleus/src/test/java/org/apache/isis/runtimes/dflt/objectstores/datanucleus/DataNucleusPersistenceMechanismInstallerTest_persist.java
URL: http://svn.apache.org/viewvc/incubator/isis/trunk/framework/runtimes/dflt/objectstores/jdo/jdo-datanucleus/src/test/java/org/apache/isis/runtimes/dflt/objectstores/datanucleus/DataNucleusPersistenceMechanismInstallerTest_persist.java?rev=1359393&r1=1359392&r2=1359393&view=diff
==============================================================================
--- incubator/isis/trunk/framework/runtimes/dflt/objectstores/jdo/jdo-datanucleus/src/test/java/org/apache/isis/runtimes/dflt/objectstores/datanucleus/DataNucleusPersistenceMechanismInstallerTest_persist.java (original)
+++ incubator/isis/trunk/framework/runtimes/dflt/objectstores/jdo/jdo-datanucleus/src/test/java/org/apache/isis/runtimes/dflt/objectstores/datanucleus/DataNucleusPersistenceMechanismInstallerTest_persist.java Mon Jul  9 21:05:16 2012
@@ -71,7 +71,7 @@ public class DataNucleusPersistenceMecha
         PrimitiveValuedEntity entity = repo.newEntity();
         ObjectAdapter adapter = iswf.adapterFor(entity);
         
-        assertThat(adapter.isTransient(), is(true));
+        assertThat(adapter.representsTransient(), is(true));
         assertThat(adapter.getResolveState(), is(ResolveState.TRANSIENT));
         assertThat(adapter.getOid().isTransient(), is(true));
         
@@ -86,7 +86,7 @@ public class DataNucleusPersistenceMecha
         
         adapter = iswf.adapterFor(list.get(0));
         assertThat(adapter.getResolveState(), is(ResolveState.GHOST));
-        assertThat(adapter.isTransient(), is(false));
+        assertThat(adapter.representsTransient(), is(false));
         assertThat(adapter.getOid().enString(), is("PRMV:1"));
 
         iswf.commitTran();

Modified: incubator/isis/trunk/framework/runtimes/dflt/objectstores/jpa/jpa-openjpa/src/main/java/org/apache/isis/runtimes/dflt/objectstores/jpa/openjpa/OpenJpaObjectStore.java
URL: http://svn.apache.org/viewvc/incubator/isis/trunk/framework/runtimes/dflt/objectstores/jpa/jpa-openjpa/src/main/java/org/apache/isis/runtimes/dflt/objectstores/jpa/openjpa/OpenJpaObjectStore.java?rev=1359393&r1=1359392&r2=1359393&view=diff
==============================================================================
--- incubator/isis/trunk/framework/runtimes/dflt/objectstores/jpa/jpa-openjpa/src/main/java/org/apache/isis/runtimes/dflt/objectstores/jpa/openjpa/OpenJpaObjectStore.java (original)
+++ incubator/isis/trunk/framework/runtimes/dflt/objectstores/jpa/jpa-openjpa/src/main/java/org/apache/isis/runtimes/dflt/objectstores/jpa/openjpa/OpenJpaObjectStore.java Mon Jul  9 21:05:16 2012
@@ -400,7 +400,7 @@ public class OpenJpaObjectStore implemen
             LOG.debug("resolveImmediately; oid=" + adapter.getOid().enString());
         }
 
-        if (adapter.getResolveState().isResolved()) {
+        if (adapter.isResolved()) {
             if (LOG.isDebugEnabled()) {
                 LOG.debug("; already resolved - ignoring");
             }

Modified: incubator/isis/trunk/framework/runtimes/dflt/objectstores/jpa/jpa-openjpa/src/main/java/org/apache/isis/runtimes/dflt/objectstores/jpa/openjpa/persistence/IsisLifecycleListener.java
URL: http://svn.apache.org/viewvc/incubator/isis/trunk/framework/runtimes/dflt/objectstores/jpa/jpa-openjpa/src/main/java/org/apache/isis/runtimes/dflt/objectstores/jpa/openjpa/persistence/IsisLifecycleListener.java?rev=1359393&r1=1359392&r2=1359393&view=diff
==============================================================================
--- incubator/isis/trunk/framework/runtimes/dflt/objectstores/jpa/jpa-openjpa/src/main/java/org/apache/isis/runtimes/dflt/objectstores/jpa/openjpa/persistence/IsisLifecycleListener.java (original)
+++ incubator/isis/trunk/framework/runtimes/dflt/objectstores/jpa/jpa-openjpa/src/main/java/org/apache/isis/runtimes/dflt/objectstores/jpa/openjpa/persistence/IsisLifecycleListener.java Mon Jul  9 21:05:16 2012
@@ -44,7 +44,7 @@ public class IsisLifecycleListener exten
         final Oid oid = adapter.getOid();
         
         // make sure the adapter is transient
-        if (!adapter.getResolveState().isTransient()) {
+        if (!adapter.representsTransient()) {
             throw new IsisException(MessageFormat.format("adapter is in invalid state; should be {0} but is {1}", ResolveState.TRANSIENT, adapter.getResolveState()));
         }
 

Modified: incubator/isis/trunk/framework/runtimes/dflt/objectstores/jpa/jpa-openjpa/src/main/java/org/apache/isis/runtimes/dflt/objectstores/jpa/openjpa/persistence/spi/ResolveStateUtil.java
URL: http://svn.apache.org/viewvc/incubator/isis/trunk/framework/runtimes/dflt/objectstores/jpa/jpa-openjpa/src/main/java/org/apache/isis/runtimes/dflt/objectstores/jpa/openjpa/persistence/spi/ResolveStateUtil.java?rev=1359393&r1=1359392&r2=1359393&view=diff
==============================================================================
--- incubator/isis/trunk/framework/runtimes/dflt/objectstores/jpa/jpa-openjpa/src/main/java/org/apache/isis/runtimes/dflt/objectstores/jpa/openjpa/persistence/spi/ResolveStateUtil.java (original)
+++ incubator/isis/trunk/framework/runtimes/dflt/objectstores/jpa/jpa-openjpa/src/main/java/org/apache/isis/runtimes/dflt/objectstores/jpa/openjpa/persistence/spi/ResolveStateUtil.java Mon Jul  9 21:05:16 2012
@@ -19,17 +19,16 @@ public final class ResolveStateUtil {
 
         // move to ResolveState.RESOLVED;
 
-        if (adapter.getResolveState().isResolving()) { // either RESOLVING or
-            // PART_RESOLVING
+        if (adapter.isResolving()) {
             adapter.changeState(ResolveState.RESOLVED);
 
-        } else if (adapter.getResolveState().isResolved()) {
+        } else if (adapter.isResolved()) {
             // nothing to do.
 
-        } else if (adapter.getResolveState().isPartlyResolved()) {
-            adapter.changeState(ResolveState.RESOLVED);
+//        } else if (adapter.getResolveState().isPartlyResolved()) {
+//            adapter.changeState(ResolveState.RESOLVED);
 
-        } else if (adapter.getResolveState().isUpdating()) {
+        } else if (adapter.isUpdating()) {
             adapter.changeState(ResolveState.RESOLVED);
         }
     }
@@ -37,53 +36,53 @@ public final class ResolveStateUtil {
 
     private static void moveUpToResolving(final ObjectAdapter adapter) {
         // move these on so we can get to part_resolved or resolved.
-        if (adapter.isTransient()) {
+        if (adapter.representsTransient()) {
             adapter.changeState(ResolveState.RESOLVED);
             adapter.changeState(ResolveState.GHOST);
             adapter.changeState(ResolveState.RESOLVING);
 
-        } else if (adapter.getResolveState().isNew()) {
+        } else if (adapter.isNew()) {
             adapter.changeState(ResolveState.GHOST);
             adapter.changeState(ResolveState.RESOLVING);
 
-        } else if (adapter.getResolveState().isGhost()) {
+        } else if (adapter.isGhost()) {
             adapter.changeState(ResolveState.RESOLVING);
         }
     }
 
     public static void markAsGhost(final ObjectAdapter adapter) {
 
-        if (adapter.getResolveState().isValue()) {
+        if (adapter.isValue()) {
             // TODO: what should we do here? throw exception?
         }
-        if (adapter.getResolveState().isDestroyed()) {
+        if (adapter.isDestroyed()) {
             // TODO: what should we do here? throw exception?
         }
 
-        if (adapter.isTransient()) {
+        if (adapter.representsTransient()) {
             adapter.changeState(ResolveState.RESOLVED);
             adapter.changeState(ResolveState.GHOST);
 
-        } else if (adapter.getResolveState().isNew()) {
+        } else if (adapter.isNew()) {
             adapter.changeState(ResolveState.GHOST);
 
-        } else if (adapter.getResolveState().isPartlyResolved()) {
-            adapter.changeState(ResolveState.RESOLVING);
-            adapter.changeState(ResolveState.RESOLVED);
-            adapter.changeState(ResolveState.GHOST);
+//        } else if (adapter.getResolveState().isPartlyResolved()) {
+//            adapter.changeState(ResolveState.RESOLVING);
+//            adapter.changeState(ResolveState.RESOLVED);
+//            adapter.changeState(ResolveState.GHOST);
 
-        } else if (adapter.getResolveState().isResolving()) {
+        } else if (adapter.isResolving()) {
             adapter.changeState(ResolveState.RESOLVED);
             adapter.changeState(ResolveState.GHOST);
 
-        } else if (adapter.getResolveState().isUpdating()) {
+        } else if (adapter.isUpdating()) {
             adapter.changeState(ResolveState.RESOLVED);
             adapter.changeState(ResolveState.GHOST);
 
-        } else if (adapter.getResolveState().isResolved()) {
+        } else if (adapter.isResolved()) {
             adapter.changeState(ResolveState.GHOST);
 
-        } else if (adapter.getResolveState().isGhost()) {
+        } else if (adapter.isGhost()) {
             // nothing to do.
         }
     }
@@ -91,10 +90,10 @@ public final class ResolveStateUtil {
 
     public static void markAsUpdating(final ObjectAdapter adapter) {
 
-        if (adapter.getResolveState() == ResolveState.TRANSIENT) {
+        if (adapter.isTransient()) {
             adapter.changeState(ResolveState.RESOLVED);
         }
-        if (adapter.getResolveState() == ResolveState.RESOLVED) {
+        if (adapter.isResolved()) {
             adapter.changeState(ResolveState.UPDATING);
         }
     }

Modified: incubator/isis/trunk/framework/runtimes/dflt/objectstores/jpa/jpa-openjpa/src/test/java/org/apache/isis/runtimes/dflt/objectstores/jpa/openjpa/OpenJpaPersistenceMechanismInstallerTest_persist.java
URL: http://svn.apache.org/viewvc/incubator/isis/trunk/framework/runtimes/dflt/objectstores/jpa/jpa-openjpa/src/test/java/org/apache/isis/runtimes/dflt/objectstores/jpa/openjpa/OpenJpaPersistenceMechanismInstallerTest_persist.java?rev=1359393&r1=1359392&r2=1359393&view=diff
==============================================================================
--- incubator/isis/trunk/framework/runtimes/dflt/objectstores/jpa/jpa-openjpa/src/test/java/org/apache/isis/runtimes/dflt/objectstores/jpa/openjpa/OpenJpaPersistenceMechanismInstallerTest_persist.java (original)
+++ incubator/isis/trunk/framework/runtimes/dflt/objectstores/jpa/jpa-openjpa/src/test/java/org/apache/isis/runtimes/dflt/objectstores/jpa/openjpa/OpenJpaPersistenceMechanismInstallerTest_persist.java Mon Jul  9 21:05:16 2012
@@ -71,7 +71,7 @@ public class OpenJpaPersistenceMechanism
         PrimitiveValuedEntity entity = repo.newEntity();
         ObjectAdapter adapter = iswf.adapterFor(entity);
         
-        assertThat(adapter.isTransient(), is(true));
+        assertThat(adapter.representsTransient(), is(true));
         assertThat(adapter.getResolveState(), is(ResolveState.TRANSIENT));
         assertThat(adapter.getOid().isTransient(), is(true));
         
@@ -86,7 +86,7 @@ public class OpenJpaPersistenceMechanism
         
         adapter = iswf.adapterFor(list.get(0));
         assertThat(adapter.getResolveState(), is(ResolveState.GHOST));
-        assertThat(adapter.isTransient(), is(false));
+        assertThat(adapter.representsTransient(), is(false));
         assertThat(adapter.getOid().enString(), is("PRMV:1"));
 
         iswf.commitTran();

Modified: incubator/isis/trunk/framework/runtimes/dflt/objectstores/nosql/src/main/java/org/apache/isis/runtimes/dflt/objectstores/nosql/NoSqlObjectStore.java
URL: http://svn.apache.org/viewvc/incubator/isis/trunk/framework/runtimes/dflt/objectstores/nosql/src/main/java/org/apache/isis/runtimes/dflt/objectstores/nosql/NoSqlObjectStore.java?rev=1359393&r1=1359392&r2=1359393&view=diff
==============================================================================
--- incubator/isis/trunk/framework/runtimes/dflt/objectstores/nosql/src/main/java/org/apache/isis/runtimes/dflt/objectstores/nosql/NoSqlObjectStore.java (original)
+++ incubator/isis/trunk/framework/runtimes/dflt/objectstores/nosql/src/main/java/org/apache/isis/runtimes/dflt/objectstores/nosql/NoSqlObjectStore.java Mon Jul  9 21:05:16 2012
@@ -179,7 +179,7 @@ public class NoSqlObjectStore implements
     @Override
     public void resolveField(final ObjectAdapter object, final ObjectAssociation field) {
         final ObjectAdapter fieldValue = field.get(object);
-        if (fieldValue != null && !fieldValue.getResolveState().isResolved() && !fieldValue.getSpecification().isParented()) {
+        if (fieldValue != null && !fieldValue.isResolved() && !fieldValue.getSpecification().isParented()) {
             resolveImmediately(fieldValue);
         }
     }

Modified: incubator/isis/trunk/framework/runtimes/dflt/objectstores/nosql/src/main/java/org/apache/isis/runtimes/dflt/objectstores/nosql/ObjectReader.java
URL: http://svn.apache.org/viewvc/incubator/isis/trunk/framework/runtimes/dflt/objectstores/nosql/src/main/java/org/apache/isis/runtimes/dflt/objectstores/nosql/ObjectReader.java?rev=1359393&r1=1359392&r2=1359393&view=diff
==============================================================================
--- incubator/isis/trunk/framework/runtimes/dflt/objectstores/nosql/src/main/java/org/apache/isis/runtimes/dflt/objectstores/nosql/ObjectReader.java (original)
+++ incubator/isis/trunk/framework/runtimes/dflt/objectstores/nosql/src/main/java/org/apache/isis/runtimes/dflt/objectstores/nosql/ObjectReader.java Mon Jul  9 21:05:16 2012
@@ -139,7 +139,7 @@ public class ObjectReader {
         final ObjectSpecification specification = getSpecificationLoader().lookupBySpecId(aggregatedOid.getObjectSpecId());
 
         final ObjectAdapter fieldObject = getAdapter(specification, aggregatedOid);
-        if (fieldObject.getResolveState().isGhost()) {
+        if (fieldObject.isGhost()) {
             final ResolveState resolveState = ResolveState.RESOLVING;
             fieldObject.changeState(resolveState);
             readFields(aggregateReader, fieldObject, dataEncrypter);

Modified: incubator/isis/trunk/framework/runtimes/dflt/objectstores/sql/sql-impl/src/main/java/org/apache/isis/runtimes/dflt/objectstores/sql/auto/AutoCollectionMapper.java
URL: http://svn.apache.org/viewvc/incubator/isis/trunk/framework/runtimes/dflt/objectstores/sql/sql-impl/src/main/java/org/apache/isis/runtimes/dflt/objectstores/sql/auto/AutoCollectionMapper.java?rev=1359393&r1=1359392&r2=1359393&view=diff
==============================================================================
--- incubator/isis/trunk/framework/runtimes/dflt/objectstores/sql/sql-impl/src/main/java/org/apache/isis/runtimes/dflt/objectstores/sql/auto/AutoCollectionMapper.java (original)
+++ incubator/isis/trunk/framework/runtimes/dflt/objectstores/sql/sql-impl/src/main/java/org/apache/isis/runtimes/dflt/objectstores/sql/auto/AutoCollectionMapper.java Mon Jul  9 21:05:16 2012
@@ -83,33 +83,40 @@ public class AutoCollectionMapper extend
     }
 
     @Override
-    public void loadInternalCollection(final DatabaseConnector connector, final ObjectAdapter parent, final boolean makeResolved) {
-        final ObjectAdapter collection = field.get(parent);
-        if (collection.getResolveState().canChangeTo(ResolveState.RESOLVING)) {
+    public void loadInternalCollection(final DatabaseConnector connector, final ObjectAdapter parentAdapter, final boolean makeResolved) {
+        final ObjectAdapter collectionAdapter = field.get(parentAdapter);
+        if (!collectionAdapter.getResolveState().canChangeTo(ResolveState.RESOLVING)) {
+            return;
+        } 
+        
+        if(LOG.isDebugEnabled()) {
             LOG.debug("loading internal collection " + field);
-            collection.changeState(ResolveState.RESOLVING);
+        }
+        collectionAdapter.changeState(ResolveState.RESOLVING);
 
-            final StringBuffer sql = new StringBuffer();
-            sql.append("select ");
-            idMapping.appendColumnNames(sql);
-            sql.append(", ");
-            elementMapping.appendColumnNames(sql);
-            sql.append(" from ");
-            sql.append(tableName);
-
-            final Results rs = connector.select(sql.toString());
-            final List<ObjectAdapter> list = new ArrayList<ObjectAdapter>();
-            while (rs.next()) {
-                final ObjectAdapter element = ((JdbcObjectReferenceMapping) elementMapping).initializeField(rs);
+        final StringBuffer sql = new StringBuffer();
+        sql.append("select ");
+        idMapping.appendColumnNames(sql);
+        sql.append(", ");
+        elementMapping.appendColumnNames(sql);
+        sql.append(" from ");
+        sql.append(tableName);
+
+        final Results rs = connector.select(sql.toString());
+        final List<ObjectAdapter> list = new ArrayList<ObjectAdapter>();
+        while (rs.next()) {
+            final ObjectAdapter element = ((JdbcObjectReferenceMapping) elementMapping).initializeField(rs);
+            if(LOG.isDebugEnabled()) {
                 LOG.debug("  element  " + element.getOid());
-                list.add(element);
-            }
-            final CollectionFacet collectionFacet = collection.getSpecification().getFacet(CollectionFacet.class);
-            collectionFacet.init(collection, list.toArray(new ObjectAdapter[list.size()]));
-            rs.close();
-            if (makeResolved) {
-                PersistorUtil.end(collection);
             }
+            list.add(element);
+        }
+        final CollectionFacet collectionFacet = collectionAdapter.getSpecification().getFacet(CollectionFacet.class);
+        collectionFacet.init(collectionAdapter, list.toArray(new ObjectAdapter[list.size()]));
+        rs.close();
+        
+        if (makeResolved) {
+            PersistorUtil.endStateTransition(collectionAdapter);
         }
     }
 

Modified: incubator/isis/trunk/framework/runtimes/dflt/objectstores/sql/sql-impl/src/main/java/org/apache/isis/runtimes/dflt/objectstores/sql/auto/AutoMapper.java
URL: http://svn.apache.org/viewvc/incubator/isis/trunk/framework/runtimes/dflt/objectstores/sql/sql-impl/src/main/java/org/apache/isis/runtimes/dflt/objectstores/sql/auto/AutoMapper.java?rev=1359393&r1=1359392&r2=1359393&view=diff
==============================================================================
--- incubator/isis/trunk/framework/runtimes/dflt/objectstores/sql/sql-impl/src/main/java/org/apache/isis/runtimes/dflt/objectstores/sql/auto/AutoMapper.java (original)
+++ incubator/isis/trunk/framework/runtimes/dflt/objectstores/sql/sql-impl/src/main/java/org/apache/isis/runtimes/dflt/objectstores/sql/auto/AutoMapper.java Mon Jul  9 21:05:16 2012
@@ -307,7 +307,7 @@ public class AutoMapper extends Abstract
     }
 
     protected void loadFields(final ObjectAdapter object, final Results rs) {
-        PersistorUtil.start(object, ResolveState.RESOLVING);
+        PersistorUtil.startStateTransition(object, ResolveState.RESOLVING);
         for (final FieldMapping mapping : fieldMappingByField.values()) {
             mapping.initializeField(object, rs);
         }
@@ -320,7 +320,7 @@ public class AutoMapper extends Abstract
          * oneToManyProperties[i].get(object); }
          */
         object.setVersion(versionMapping.getLock(rs));
-        PersistorUtil.end(object);
+        PersistorUtil.endStateTransition(object);
     }
 
     // KAM
@@ -351,13 +351,13 @@ public class AutoMapper extends Abstract
 
     private ObjectAdapter loadObject(final DatabaseConnector connector, final ObjectSpecification cls, final Results rs) {
         final Oid oid = idMapping.recreateOid(rs, specification);
-        final ObjectAdapter instance = getAdapter(cls, oid);
+        final ObjectAdapter adapter = getAdapter(cls, oid);
 
-        if (instance.getResolveState().isValidToChangeTo(ResolveState.RESOLVING)) {
-            loadFields(instance, rs);
-            loadCollections(connector, instance); // KAM
+        if (adapter.getResolveState().isValidToChangeTo(ResolveState.RESOLVING)) {
+            loadFields(adapter, rs);
+            loadCollections(connector, adapter); // KAM
         }
-        return instance;
+        return adapter;
     }
 
     @Override

Modified: incubator/isis/trunk/framework/runtimes/dflt/objectstores/sql/sql-impl/src/main/java/org/apache/isis/runtimes/dflt/objectstores/sql/auto/ForeignKeyCollectionMapper.java
URL: http://svn.apache.org/viewvc/incubator/isis/trunk/framework/runtimes/dflt/objectstores/sql/sql-impl/src/main/java/org/apache/isis/runtimes/dflt/objectstores/sql/auto/ForeignKeyCollectionMapper.java?rev=1359393&r1=1359392&r2=1359393&view=diff
==============================================================================
--- incubator/isis/trunk/framework/runtimes/dflt/objectstores/sql/sql-impl/src/main/java/org/apache/isis/runtimes/dflt/objectstores/sql/auto/ForeignKeyCollectionMapper.java (original)
+++ incubator/isis/trunk/framework/runtimes/dflt/objectstores/sql/sql-impl/src/main/java/org/apache/isis/runtimes/dflt/objectstores/sql/auto/ForeignKeyCollectionMapper.java Mon Jul  9 21:05:16 2012
@@ -189,32 +189,36 @@ public class ForeignKeyCollectionMapper 
     }
 
     @Override
-    public void loadInternalCollection(final DatabaseConnector connector, final ObjectAdapter parent, final boolean makeResolved) {
+    public void loadInternalCollection(final DatabaseConnector connector, final ObjectAdapter parentAdapter, final boolean makeResolved) {
 
-        final ObjectAdapter collection = field.get(parent);
-        if (collection.getResolveState().canChangeTo(ResolveState.RESOLVING)) {
+        final ObjectAdapter collectionAdapter = field.get(parentAdapter);
+        if (!collectionAdapter.getResolveState().canChangeTo(ResolveState.RESOLVING)) {
+            return;
+        } 
+        
+        if(LOG.isDebugEnabled()) {
             LOG.debug("loading internal collection " + field);
-            PersistorUtil.start(collection, ResolveState.RESOLVING);
+        }
+        PersistorUtil.startStateTransition(collectionAdapter, ResolveState.RESOLVING);
 
-            final List<ObjectAdapter> list = new ArrayList<ObjectAdapter>();
+        final List<ObjectAdapter> list = new ArrayList<ObjectAdapter>();
 
-            loadCollectionIntoList(connector, parent, makeResolved, table, specification, getIdMapping(), fieldMappingByField, versionMapping, list);
+        loadCollectionIntoList(connector, parentAdapter, makeResolved, table, specification, getIdMapping(), fieldMappingByField, versionMapping, list);
 
-            final CollectionFacet collectionFacet = collection.getSpecification().getFacet(CollectionFacet.class);
-            collectionFacet.init(collection, list.toArray(new ObjectAdapter[list.size()]));
-            PersistorUtil.end(collection);
-
-            // TODO: Need to finalise this behaviour. At the moment, all
-            // collections will get infinitely resolved. I
-            // don't think this is desirable. Sub-collections should be left
-            // "Partially Resolved".
-            if (makeResolved) {
-                for (final ObjectAdapter field : list) {
-                    // final ObjectMapping mapping =
-                    // objectMappingLookup.getMapping(field, connector);
-                    if (field.getSpecification().isOfType(parent.getSpecification())) {
-                        loadInternalCollection(connector, field, true);
-                    }
+        final CollectionFacet collectionFacet = collectionAdapter.getSpecification().getFacet(CollectionFacet.class);
+        collectionFacet.init(collectionAdapter, list.toArray(new ObjectAdapter[list.size()]));
+        PersistorUtil.endStateTransition(collectionAdapter);
+
+        // TODO: Need to finalise this behaviour. At the moment, all
+        // collections will get infinitely resolved. I
+        // don't think this is desirable. Sub-collections should be left
+        // "Partially Resolved".
+        if (makeResolved) {
+            for (final ObjectAdapter field : list) {
+                // final ObjectMapping mapping =
+                // objectMappingLookup.getMapping(field, connector);
+                if (field.getSpecification().isOfType(parentAdapter.getSpecification())) {
+                    loadInternalCollection(connector, field, true);
                 }
             }
         }
@@ -250,16 +254,18 @@ public class ForeignKeyCollectionMapper 
         rs.close();
     }
 
-    protected void loadFields(final ObjectAdapter object, final Results rs, final boolean makeResolved, final Map<ObjectAssociation, FieldMapping> fieldMappingByField) {
-        if (object.getResolveState().canChangeTo(ResolveState.RESOLVING)) {
-            PersistorUtil.start(object, ResolveState.RESOLVING);
-            for (final FieldMapping mapping : fieldMappingByField.values()) {
-                mapping.initializeField(object, rs);
-            }
-            object.setVersion(versionMapping.getLock(rs));
-            if (makeResolved) {
-                PersistorUtil.end(object);
-            }
+    protected void loadFields(final ObjectAdapter adapter, final Results rs, final boolean makeResolved, final Map<ObjectAssociation, FieldMapping> fieldMappingByField) {
+        if (!adapter.getResolveState().canChangeTo(ResolveState.RESOLVING)) {
+            return;
+        }
+        
+        PersistorUtil.startStateTransition(adapter, ResolveState.RESOLVING);
+        for (final FieldMapping mapping : fieldMappingByField.values()) {
+            mapping.initializeField(adapter, rs);
+        }
+        adapter.setVersion(versionMapping.getLock(rs));
+        if (makeResolved) {
+            PersistorUtil.endStateTransition(adapter);
         }
     }
 
@@ -279,7 +285,9 @@ public class ForeignKeyCollectionMapper 
     @Override
     public void saveInternalCollection(final DatabaseConnector connector, final ObjectAdapter parent) {
         final ObjectAdapter collection = field.get(parent);
-        LOG.debug("Saving internal collection " + collection);
+        if(LOG.isDebugEnabled()) {
+            LOG.debug("Saving internal collection " + collection);
+        }
 
         final Iterator<ObjectAdapter> elements = getElementsForCollectionAsIterator(collection);
 

Modified: incubator/isis/trunk/framework/runtimes/dflt/objectstores/sql/sql-impl/src/main/java/org/apache/isis/runtimes/dflt/objectstores/sql/auto/ReversedAutoAssociationMapper.java
URL: http://svn.apache.org/viewvc/incubator/isis/trunk/framework/runtimes/dflt/objectstores/sql/sql-impl/src/main/java/org/apache/isis/runtimes/dflt/objectstores/sql/auto/ReversedAutoAssociationMapper.java?rev=1359393&r1=1359392&r2=1359393&view=diff
==============================================================================
--- incubator/isis/trunk/framework/runtimes/dflt/objectstores/sql/sql-impl/src/main/java/org/apache/isis/runtimes/dflt/objectstores/sql/auto/ReversedAutoAssociationMapper.java (original)
+++ incubator/isis/trunk/framework/runtimes/dflt/objectstores/sql/sql-impl/src/main/java/org/apache/isis/runtimes/dflt/objectstores/sql/auto/ReversedAutoAssociationMapper.java Mon Jul  9 21:05:16 2012
@@ -88,39 +88,45 @@ public class ReversedAutoAssociationMapp
     }
 
     @Override
-    public void loadInternalCollection(final DatabaseConnector connector, final ObjectAdapter parent, final boolean makeResolved) {
-        final ObjectAdapter collection = field.get(parent);
-        if (collection.getResolveState().canChangeTo(ResolveState.RESOLVING)) {
+    public void loadInternalCollection(final DatabaseConnector connector, final ObjectAdapter parentAdapter, final boolean makeResolved) {
+        final ObjectAdapter collectionAdapter = field.get(parentAdapter);
+        
+        if (!collectionAdapter.getResolveState().canChangeTo(ResolveState.RESOLVING)) {
+            return;
+        } 
+        if(LOG.isDebugEnabled()) {
             LOG.debug("loading internal collection " + field);
+        }
 
-            final StringBuffer sql = new StringBuffer();
-            sql.append("select ");
-            idMapping.appendColumnNames(sql);
-            sql.append(", ");
-            sql.append(columnList(fieldMappingByField));
-            sql.append(" from ");
-            sql.append(table);
-            sql.append(" where ");
-            idMapping.appendUpdateValues(connector, sql, parent);
-
-            final Results rs = connector.select(sql.toString());
-            final List<ObjectAdapter> list = new ArrayList<ObjectAdapter>();
-            while (rs.next()) {
-                final Oid oid = idMapping.recreateOid(rs, specification);
-                final ObjectAdapter element = getAdapter(specification, oid);
-                loadFields(element, rs, makeResolved);
+        final StringBuffer sql = new StringBuffer();
+        sql.append("select ");
+        idMapping.appendColumnNames(sql);
+        sql.append(", ");
+        sql.append(columnList(fieldMappingByField));
+        sql.append(" from ");
+        sql.append(table);
+        sql.append(" where ");
+        idMapping.appendUpdateValues(connector, sql, parentAdapter);
+
+        final Results rs = connector.select(sql.toString());
+        final List<ObjectAdapter> list = new ArrayList<ObjectAdapter>();
+        while (rs.next()) {
+            final Oid oid = idMapping.recreateOid(rs, specification);
+            final ObjectAdapter element = getAdapter(specification, oid);
+            loadFields(element, rs, makeResolved);
+            if(LOG.isDebugEnabled()) {
                 LOG.debug("  element  " + element.getOid());
-                list.add(element);
             }
-            final CollectionFacet collectionFacet = collection.getSpecification().getFacet(CollectionFacet.class);
-            collectionFacet.init(collection, list.toArray(new ObjectAdapter[list.size()]));
-            rs.close();
-            PersistorUtil.end(collection);
+            list.add(element);
         }
+        final CollectionFacet collectionFacet = collectionAdapter.getSpecification().getFacet(CollectionFacet.class);
+        collectionFacet.init(collectionAdapter, list.toArray(new ObjectAdapter[list.size()]));
+        rs.close();
+        PersistorUtil.endStateTransition(collectionAdapter);
     }
 
     protected void loadFields(final ObjectAdapter object, final Results rs, final boolean makeResolved) {
-        PersistorUtil.start(object, ResolveState.RESOLVING);
+        PersistorUtil.startStateTransition(object, ResolveState.RESOLVING);
         for (final FieldMapping mapping : fieldMappingByField.values()) {
             mapping.initializeField(object, rs);
         }
@@ -135,7 +141,7 @@ public class ReversedAutoAssociationMapp
 
         object.setVersion(versionMapping.getLock(rs));
         if (makeResolved) {
-            PersistorUtil.end(object);
+            PersistorUtil.endStateTransition(object);
         }
 
     }

Modified: incubator/isis/trunk/framework/runtimes/dflt/objectstores/xml/src/main/java/org/apache/isis/runtimes/dflt/objectstores/xml/XmlObjectStore.java
URL: http://svn.apache.org/viewvc/incubator/isis/trunk/framework/runtimes/dflt/objectstores/xml/src/main/java/org/apache/isis/runtimes/dflt/objectstores/xml/XmlObjectStore.java?rev=1359393&r1=1359392&r2=1359393&view=diff
==============================================================================
--- incubator/isis/trunk/framework/runtimes/dflt/objectstores/xml/src/main/java/org/apache/isis/runtimes/dflt/objectstores/xml/XmlObjectStore.java (original)
+++ incubator/isis/trunk/framework/runtimes/dflt/objectstores/xml/src/main/java/org/apache/isis/runtimes/dflt/objectstores/xml/XmlObjectStore.java Mon Jul  9 21:05:16 2012
@@ -143,44 +143,47 @@ public class XmlObjectStore implements O
         return isFixturesInstalled;
     }
 
-    private void initObject(final ObjectAdapter object, final ObjectData data) {
-        if (object.getResolveState().canChangeTo(ResolveState.RESOLVING)) {
-            PersistorUtil.start(object, ResolveState.RESOLVING);
-
-            final List<ObjectAssociation> fields = object.getSpecification().getAssociations();
-            for (int i = 0; i < fields.size(); i++) {
-                final ObjectAssociation field = fields.get(i);
-                if (field.isNotPersisted()) {
-                    continue;
-                }
+    private void initObject(final ObjectAdapter adapter, final ObjectData data) {
+        if (!adapter.getResolveState().canChangeTo(ResolveState.RESOLVING)) {
+            return;
+        } 
+        PersistorUtil.startStateTransition(adapter, ResolveState.RESOLVING);
 
-                final ObjectSpecification fieldSpecification = field.getSpecification();
-                if (fieldSpecification.isEncodeable()) {
-                    final EncodableFacet encoder = fieldSpecification.getFacet(EncodableFacet.class);
-                    ObjectAdapter value;
-                    final String valueData = data.value(field.getId());
-                    if (valueData != null) {
-                        if (valueData.equals("NULL")) {
-                            value = null;
-                        } else {
-                            value = encoder.fromEncodedString(valueData);
-                        }
-                        ((OneToOneAssociation) field).initAssociation(object, value);
+        final List<ObjectAssociation> fields = adapter.getSpecification().getAssociations();
+        for (int i = 0; i < fields.size(); i++) {
+            final ObjectAssociation field = fields.get(i);
+            if (field.isNotPersisted()) {
+                continue;
+            }
+
+            final ObjectSpecification fieldSpecification = field.getSpecification();
+            if (fieldSpecification.isEncodeable()) {
+                final EncodableFacet encoder = fieldSpecification.getFacet(EncodableFacet.class);
+                ObjectAdapter value;
+                final String valueData = data.value(field.getId());
+                if (valueData != null) {
+                    if (valueData.equals("NULL")) {
+                        value = null;
+                    } else {
+                        value = encoder.fromEncodedString(valueData);
                     }
-                } else if (field.isOneToManyAssociation()) {
-                    initObjectSetupCollection(object, data, field);
-                } else if (field.isOneToOneAssociation()) {
-                    initObjectSetupReference(object, data, field);
+                    ((OneToOneAssociation) field).initAssociation(adapter, value);
                 }
+            } else if (field.isOneToManyAssociation()) {
+                initObjectSetupCollection(adapter, data, field);
+            } else if (field.isOneToOneAssociation()) {
+                initObjectSetupReference(adapter, data, field);
             }
-            object.setVersion(data.getVersion());
-            PersistorUtil.end(object);
         }
+        adapter.setVersion(data.getVersion());
+        PersistorUtil.endStateTransition(adapter);
     }
 
     private void initObjectSetupReference(final ObjectAdapter object, final ObjectData data, final ObjectAssociation field) {
         final RootOidDefault referenceOid = (RootOidDefault) data.get(field.getId());
-        LOG.debug("setting up field " + field + " with " + referenceOid);
+        if(LOG.isDebugEnabled()) {
+            LOG.debug("setting up field " + field + " with " + referenceOid);
+        }
         if (referenceOid == null) {
             return;
         }
@@ -189,7 +192,7 @@ public class XmlObjectStore implements O
 
         if (fieldData == null) {
             final ObjectAdapter adapter = getPersistenceSession().recreateAdapter(field.getSpecification(), referenceOid);
-            if (!adapter.getResolveState().isDestroyed()) {
+            if (!adapter.isDestroyed()) {
                 adapter.changeState(ResolveState.DESTROYED);
             }
             ((OneToOneAssociation) field).initAssociation(object, adapter);
@@ -222,30 +225,33 @@ public class XmlObjectStore implements O
          */
     }
 
-    private void initObjectSetupCollection(final ObjectAdapter object, final ObjectData data, final ObjectAssociation field) {
+    private void initObjectSetupCollection(final ObjectAdapter objectAdapter, final ObjectData data, final ObjectAssociation field) {
         /*
          * The internal collection is already a part of the object, and
          * therefore cannot be recreated, but its oid must be set
          */
         final ListOfRootOid refs = (ListOfRootOid) data.get(field.getId());
-        final ObjectAdapter collection = field.get(object);
-        if (collection.getResolveState().canChangeTo(ResolveState.RESOLVING)) {
-            PersistorUtil.start(collection, ResolveState.RESOLVING);
-            final int size = refs == null ? 0 : refs.size();
-            final ObjectAdapter[] elements = new ObjectAdapter[size];
-            for (int j = 0; j < size; j++) {
-                final RootOid elementOid = refs.elementAt(j);
-                ObjectAdapter adapter;
-                adapter = getAdapterManager().getAdapterFor(elementOid);
-                if (adapter == null) {
-                    adapter = getObject(elementOid);
-                }
-                elements[j] = adapter;
+        
+        final ObjectAdapter collectionAdapter = field.get(objectAdapter);
+        if (!collectionAdapter.getResolveState().canChangeTo(ResolveState.RESOLVING)) {
+            return;
+        } 
+        
+        PersistorUtil.startStateTransition(collectionAdapter, ResolveState.RESOLVING);
+        final int size = refs == null ? 0 : refs.size();
+        final ObjectAdapter[] elements = new ObjectAdapter[size];
+        for (int j = 0; j < size; j++) {
+            final RootOid elementOid = refs.elementAt(j);
+            ObjectAdapter adapter;
+            adapter = getAdapterManager().getAdapterFor(elementOid);
+            if (adapter == null) {
+                adapter = getObject(elementOid);
             }
-            final CollectionFacet facet = CollectionFacetUtils.getCollectionFacetFromSpec(collection);
-            facet.init(collection, elements);
-            PersistorUtil.end(collection);
+            elements[j] = adapter;
         }
+        final CollectionFacet facet = CollectionFacetUtils.getCollectionFacetFromSpec(collectionAdapter);
+        facet.init(collectionAdapter, elements);
+        PersistorUtil.endStateTransition(collectionAdapter);
     }
 
     // /////////////////////////////////////////////////////////

Modified: incubator/isis/trunk/framework/runtimes/dflt/objectstores/xml/src/main/java/org/apache/isis/runtimes/dflt/objectstores/xml/internal/data/ObjectData.java
URL: http://svn.apache.org/viewvc/incubator/isis/trunk/framework/runtimes/dflt/objectstores/xml/src/main/java/org/apache/isis/runtimes/dflt/objectstores/xml/internal/data/ObjectData.java?rev=1359393&r1=1359392&r2=1359393&view=diff
==============================================================================
--- incubator/isis/trunk/framework/runtimes/dflt/objectstores/xml/src/main/java/org/apache/isis/runtimes/dflt/objectstores/xml/internal/data/ObjectData.java (original)
+++ incubator/isis/trunk/framework/runtimes/dflt/objectstores/xml/src/main/java/org/apache/isis/runtimes/dflt/objectstores/xml/internal/data/ObjectData.java Mon Jul  9 21:05:16 2012
@@ -112,7 +112,7 @@ public class ObjectData extends Data {
     }
 
     public void addAssociation(final ObjectAdapter fieldContent, final String fieldId, final boolean ensurePersistent) {
-        final boolean notAlreadyPersistent = fieldContent != null && fieldContent.isTransient();
+        final boolean notAlreadyPersistent = fieldContent != null && fieldContent.representsTransient();
         if (ensurePersistent && notAlreadyPersistent) {
             throw new IllegalStateException("Cannot save an object that is not persistent: " + fieldContent);
         }

Modified: incubator/isis/trunk/framework/runtimes/dflt/runtime/src/main/java/org/apache/isis/runtimes/dflt/runtime/memento/Memento.java
URL: http://svn.apache.org/viewvc/incubator/isis/trunk/framework/runtimes/dflt/runtime/src/main/java/org/apache/isis/runtimes/dflt/runtime/memento/Memento.java?rev=1359393&r1=1359392&r2=1359393&view=diff
==============================================================================
--- incubator/isis/trunk/framework/runtimes/dflt/runtime/src/main/java/org/apache/isis/runtimes/dflt/runtime/memento/Memento.java (original)
+++ incubator/isis/trunk/framework/runtimes/dflt/runtime/src/main/java/org/apache/isis/runtimes/dflt/runtime/memento/Memento.java Mon Jul  9 21:05:16 2012
@@ -280,19 +280,19 @@ public class Memento implements Serializ
 
     }
 
-    private void updateObject(final ObjectAdapter object, final ResolveState resolveState, final Data state) {
-        if (object.getResolveState().isValidToChangeTo(resolveState)) {
-            PersistorUtil.start(object, resolveState);
-            updateFields(object, state);
-            PersistorUtil.end(object);
-        } else if (object.getResolveState() == ResolveState.TRANSIENT && resolveState == ResolveState.TRANSIENT) {
-            updateFields(object, state);
-        } else if (object.isParented()) {
-            updateFields(object, state);
+    private void updateObject(final ObjectAdapter objectAdapter, final ResolveState targetResolveState, final Data state) {
+        if (objectAdapter.getResolveState().isValidToChangeTo(targetResolveState)) {
+            PersistorUtil.startStateTransition(objectAdapter, targetResolveState);
+            updateFields(objectAdapter, state);
+            PersistorUtil.endStateTransition(objectAdapter);
+        } else if (objectAdapter.isTransient() && targetResolveState == ResolveState.TRANSIENT) {
+            updateFields(objectAdapter, state);
+        } else if (objectAdapter.isParented()) {
+            updateFields(objectAdapter, state);
         } else {
             final ObjectData od = (ObjectData) state;
             if (od.containsField()) {
-                throw new IsisException("Resolve state (for " + object + ") inconsistent with fact that data exists for fields");
+                throw new IsisException("Resolve state (for " + objectAdapter + ") inconsistent with fact that data exists for fields");
             }
         }
     }

Modified: incubator/isis/trunk/framework/runtimes/dflt/runtime/src/main/java/org/apache/isis/runtimes/dflt/runtime/persistence/PersistorUtil.java
URL: http://svn.apache.org/viewvc/incubator/isis/trunk/framework/runtimes/dflt/runtime/src/main/java/org/apache/isis/runtimes/dflt/runtime/persistence/PersistorUtil.java?rev=1359393&r1=1359392&r2=1359393&view=diff
==============================================================================
--- incubator/isis/trunk/framework/runtimes/dflt/runtime/src/main/java/org/apache/isis/runtimes/dflt/runtime/persistence/PersistorUtil.java (original)
+++ incubator/isis/trunk/framework/runtimes/dflt/runtime/src/main/java/org/apache/isis/runtimes/dflt/runtime/persistence/PersistorUtil.java Mon Jul  9 21:05:16 2012
@@ -36,7 +36,7 @@ public class PersistorUtil {
     // update resolve state
     // //////////////////////////////////////////////////////////////////
 
-    public static void start(final ObjectAdapter object, final ResolveState state) {
+    public static void startStateTransition(final ObjectAdapter object, final ResolveState state) {
         if (LOG.isTraceEnabled()) {
             LOG.trace("start " + object + " as " + state.name());
         }
@@ -48,7 +48,7 @@ public class PersistorUtil {
      * as specified by the second parameter. Attempting to specify any other
      * state throws a run time exception.
      */
-    public static void end(final ObjectAdapter object) {
+    public static void endStateTransition(final ObjectAdapter object) {
         final ResolveState endState = object.getResolveState().getEndState();
         Assert.assertNotNull("end state required", endState);
         if (LOG.isTraceEnabled()) {

Modified: incubator/isis/trunk/framework/runtimes/dflt/runtime/src/main/java/org/apache/isis/runtimes/dflt/runtime/persistence/adapterfactory/pojo/PojoAdapter.java
URL: http://svn.apache.org/viewvc/incubator/isis/trunk/framework/runtimes/dflt/runtime/src/main/java/org/apache/isis/runtimes/dflt/runtime/persistence/adapterfactory/pojo/PojoAdapter.java?rev=1359393&r1=1359392&r2=1359393&view=diff
==============================================================================
--- incubator/isis/trunk/framework/runtimes/dflt/runtime/src/main/java/org/apache/isis/runtimes/dflt/runtime/persistence/adapterfactory/pojo/PojoAdapter.java (original)
+++ incubator/isis/trunk/framework/runtimes/dflt/runtime/src/main/java/org/apache/isis/runtimes/dflt/runtime/persistence/adapterfactory/pojo/PojoAdapter.java Mon Jul  9 21:05:16 2012
@@ -162,38 +162,91 @@ public class PojoAdapter extends Instanc
     }
 
     private boolean elementsLoaded() {
-        return isTransient() || this.getResolveState().isResolved();
+        return representsTransient() || this.isResolved();
     }
 
     // ///////////////////////////////////////////////////////////////////
-    // isPersistent, isTransient
+    // ResolveState
     // ///////////////////////////////////////////////////////////////////
 
     /**
      * Just delegates to {@link #getResolveState() resolve state}.
      * 
-     * @see ResolveState#isPersistent()
-     * @see #isTransient()
+     * @see ResolveState#representsPersistent()
+     * @see #representsTransient()
      */
     @Override
     public boolean isPersistent() {
-        if(isParented()) {
-            
-        }
-        return getResolveState().isPersistent();
+        return getResolveState().representsPersistent();
     }
 
+
     /**
      * Just delegates to {@link #getResolveState() resolve state}.
      * 
-     * @see ResolveState#isTransient()
+     * @see ResolveState#representsTransient()
      * @see #isPersistent()
      */
     @Override
+    public boolean representsTransient() {
+        return getResolveState().representsTransient();
+    }
+
+    @Override
+    public boolean isNew() {
+        return getResolveState().isNew();
+    }
+
+    @Override
+    public boolean isResolving() {
+        return getResolveState().isResolving();
+    }
+
+    @Override
+    public boolean isResolved() {
+        return getResolveState().isResolved();
+    }
+
+    @Override
+    public boolean isGhost() {
+        return getResolveState().isGhost();
+    }
+
+    @Override
+    public boolean isUpdating() {
+        return getResolveState().isUpdating();
+    }
+
+    @Override
+    public boolean isDestroyed() {
+        return getResolveState().isDestroyed();
+    }
+
+    @Override
     public boolean isTransient() {
         return getResolveState().isTransient();
     }
 
+
+    @Override
+    public boolean isTitleAvailable() {
+        final ResolveState resolveState = getResolveState();
+        return resolveState.isValue() || resolveState.isResolved();
+    }
+
+    /**
+     * If {@link #isGhost()}, then will become resolved.
+     */
+    @Override
+    public void markAsResolvedIfPossible() {
+        if (getResolveState().canChangeTo(ResolveState.RESOLVING)) {
+            changeState(ResolveState.RESOLVING);
+            changeState(ResolveState.RESOLVED);
+        }
+    }
+
+
+    
     // ///////////////////////////////////////////////////////////////////
     // Oid
     // ///////////////////////////////////////////////////////////////////
@@ -221,6 +274,7 @@ public class PojoAdapter extends Instanc
 
     @Override
     public boolean isValue() {
+        // equivalently: getResolveState().isValue();
         return oid == null;
     }
 
@@ -459,6 +513,4 @@ public class PojoAdapter extends Instanc
 
 
 
-
-
 }

Modified: incubator/isis/trunk/framework/runtimes/dflt/runtime/src/main/java/org/apache/isis/runtimes/dflt/runtime/persistence/adaptermanager/AdapterManagerDefault.java
URL: http://svn.apache.org/viewvc/incubator/isis/trunk/framework/runtimes/dflt/runtime/src/main/java/org/apache/isis/runtimes/dflt/runtime/persistence/adaptermanager/AdapterManagerDefault.java?rev=1359393&r1=1359392&r2=1359393&view=diff
==============================================================================
--- incubator/isis/trunk/framework/runtimes/dflt/runtime/src/main/java/org/apache/isis/runtimes/dflt/runtime/persistence/adaptermanager/AdapterManagerDefault.java (original)
+++ incubator/isis/trunk/framework/runtimes/dflt/runtime/src/main/java/org/apache/isis/runtimes/dflt/runtime/persistence/adaptermanager/AdapterManagerDefault.java Mon Jul  9 21:05:16 2012
@@ -376,7 +376,7 @@ public class AdapterManagerDefault exten
         final ObjectAdapter rootAdapter = adapter.getAggregateRoot();  // REVIEW: think this is redundant; would seem this method is only ever called for roots anyway.
         final RootOid transientRootOid = (RootOid) rootAdapter.getOid();
 
-        Ensure.ensureThatArg(rootAdapter.isTransient(), is(true), "root adapter should be transient; oid:" + transientRootOid);
+        Ensure.ensureThatArg(rootAdapter.representsTransient(), is(true), "root adapter should be transient; oid:" + transientRootOid);
         Ensure.ensureThatArg(transientRootOid.isTransient(), is(true), "root adapter's OID should be transient; oid:" + transientRootOid);
         
         final RootAndCollectionAdapters rootAndCollectionAdapters = new RootAndCollectionAdapters(adapter, this);
@@ -636,7 +636,7 @@ public class AdapterManagerDefault exten
      * Fail early if any problems.
      */
     private void ensureMapsConsistent(final ObjectAdapter adapter) {
-        if (adapter.getResolveState().isValue()) {
+        if (adapter.isValue()) {
             return;
         }
         if (adapter.isParented()) {

Modified: incubator/isis/trunk/framework/runtimes/dflt/runtime/src/main/java/org/apache/isis/runtimes/dflt/runtime/persistence/adaptermanager/internal/PojoAdapterHashMap.java
URL: http://svn.apache.org/viewvc/incubator/isis/trunk/framework/runtimes/dflt/runtime/src/main/java/org/apache/isis/runtimes/dflt/runtime/persistence/adaptermanager/internal/PojoAdapterHashMap.java?rev=1359393&r1=1359392&r2=1359393&view=diff
==============================================================================
--- incubator/isis/trunk/framework/runtimes/dflt/runtime/src/main/java/org/apache/isis/runtimes/dflt/runtime/persistence/adaptermanager/internal/PojoAdapterHashMap.java (original)
+++ incubator/isis/trunk/framework/runtimes/dflt/runtime/src/main/java/org/apache/isis/runtimes/dflt/runtime/persistence/adaptermanager/internal/PojoAdapterHashMap.java Mon Jul  9 21:05:16 2012
@@ -120,7 +120,7 @@ public class PojoAdapterHashMap implemen
             LOG.debug("add adapter: #" + Long.toHexString(pojo.hashCode()) + " -> #" + Long.toHexString(adapter.hashCode()));
         }
         // log at end so that if toString needs adapters they're in maps.
-        if (adapter.getResolveState().isResolved()) {
+        if (adapter.isResolved()) {
             if (LOG.isDebugEnabled()) {
                 LOG.debug("add " + new ToString(pojo) + " as " + adapter);
             }

Modified: incubator/isis/trunk/framework/runtimes/dflt/runtime/src/main/java/org/apache/isis/runtimes/dflt/runtime/persistence/objectstore/algorithm/PersistAlgorithmAbstract.java
URL: http://svn.apache.org/viewvc/incubator/isis/trunk/framework/runtimes/dflt/runtime/src/main/java/org/apache/isis/runtimes/dflt/runtime/persistence/objectstore/algorithm/PersistAlgorithmAbstract.java?rev=1359393&r1=1359392&r2=1359393&view=diff
==============================================================================
--- incubator/isis/trunk/framework/runtimes/dflt/runtime/src/main/java/org/apache/isis/runtimes/dflt/runtime/persistence/objectstore/algorithm/PersistAlgorithmAbstract.java (original)
+++ incubator/isis/trunk/framework/runtimes/dflt/runtime/src/main/java/org/apache/isis/runtimes/dflt/runtime/persistence/objectstore/algorithm/PersistAlgorithmAbstract.java Mon Jul  9 21:05:16 2012
@@ -61,7 +61,7 @@ public abstract class PersistAlgorithmAb
      * <b><i>REVIEW: should try to combine and remove the other method</i></b>.
      */
     protected static boolean alreadyPersistedOrNotPersistableOrServiceOrStandalone(final ObjectAdapter adapter) {
-        return objectIsStandalone(adapter) || objectSpecIsService(adapter) || alreadyPersistedOrNotPersistable(adapter);
+        return adapter.isValue() || objectSpecIsService(adapter) || alreadyPersistedOrNotPersistable(adapter);
     }
 
     /**
@@ -85,10 +85,6 @@ public abstract class PersistAlgorithmAb
         }
     }
 
-    private static boolean objectIsStandalone(final ObjectAdapter adapter) {
-        return adapter.getResolveState().isValue();
-    }
-
     private static boolean objectSpecNotPersistable(final ObjectAdapter adapter) {
         return !adapter.getSpecification().persistability().isPersistable() || adapter.isParented();
     }

Modified: incubator/isis/trunk/framework/runtimes/dflt/runtime/src/main/java/org/apache/isis/runtimes/dflt/runtime/persistence/objectstore/algorithm/dflt/DefaultPersistAlgorithm.java
URL: http://svn.apache.org/viewvc/incubator/isis/trunk/framework/runtimes/dflt/runtime/src/main/java/org/apache/isis/runtimes/dflt/runtime/persistence/objectstore/algorithm/dflt/DefaultPersistAlgorithm.java?rev=1359393&r1=1359392&r2=1359393&view=diff
==============================================================================
--- incubator/isis/trunk/framework/runtimes/dflt/runtime/src/main/java/org/apache/isis/runtimes/dflt/runtime/persistence/objectstore/algorithm/dflt/DefaultPersistAlgorithm.java (original)
+++ incubator/isis/trunk/framework/runtimes/dflt/runtime/src/main/java/org/apache/isis/runtimes/dflt/runtime/persistence/objectstore/algorithm/dflt/DefaultPersistAlgorithm.java Mon Jul  9 21:05:16 2012
@@ -50,10 +50,10 @@ public class DefaultPersistAlgorithm ext
             if(LOG.isDebugEnabled()) {
                 LOG.debug("persist " + adapter);
             }
-            if (adapter.getResolveState() == ResolveState.GHOST) {
+            if (adapter.isGhost()) {
                 adapter.changeState(ResolveState.RESOLVING);
                 adapter.changeState(ResolveState.RESOLVED);
-            } else if (adapter.getResolveState() == ResolveState.TRANSIENT) {
+            } else if (adapter.isTransient()) {
                 adapter.changeState(ResolveState.RESOLVED);
             }
             final CollectionFacet facet = CollectionFacetUtils.getCollectionFacetFromSpec(adapter);

Modified: incubator/isis/trunk/framework/runtimes/dflt/runtime/src/main/java/org/apache/isis/runtimes/dflt/runtime/persistence/objectstore/algorithm/topdown/TopDownPersistAlgorithm.java
URL: http://svn.apache.org/viewvc/incubator/isis/trunk/framework/runtimes/dflt/runtime/src/main/java/org/apache/isis/runtimes/dflt/runtime/persistence/objectstore/algorithm/topdown/TopDownPersistAlgorithm.java?rev=1359393&r1=1359392&r2=1359393&view=diff
==============================================================================
--- incubator/isis/trunk/framework/runtimes/dflt/runtime/src/main/java/org/apache/isis/runtimes/dflt/runtime/persistence/objectstore/algorithm/topdown/TopDownPersistAlgorithm.java (original)
+++ incubator/isis/trunk/framework/runtimes/dflt/runtime/src/main/java/org/apache/isis/runtimes/dflt/runtime/persistence/objectstore/algorithm/topdown/TopDownPersistAlgorithm.java Mon Jul  9 21:05:16 2012
@@ -85,13 +85,13 @@ public class TopDownPersistAlgorithm ext
         }
     }
 
-    private void makeCollectionPersistent(final ObjectAdapter collection, final ToPersistObjectSet toPersistObjectSet) {
-        LOG.info("persist " + collection);
-        if (collection.getResolveState() == ResolveState.TRANSIENT) {
-            collection.changeState(ResolveState.RESOLVED);
+    private void makeCollectionPersistent(final ObjectAdapter collectionAdapter, final ToPersistObjectSet toPersistObjectSet) {
+        LOG.info("persist " + collectionAdapter);
+        if (collectionAdapter.isTransient()) {
+            collectionAdapter.changeState(ResolveState.RESOLVED);
         }
-        final CollectionFacet facet = CollectionFacetUtils.getCollectionFacetFromSpec(collection);
-        for(ObjectAdapter element: facet.iterable(collection)) {
+        final CollectionFacet facet = CollectionFacetUtils.getCollectionFacetFromSpec(collectionAdapter);
+        for(ObjectAdapter element: facet.iterable(collectionAdapter)) {
             makePersistent(element, toPersistObjectSet);
         }
     }

Modified: incubator/isis/trunk/framework/runtimes/dflt/runtime/src/main/java/org/apache/isis/runtimes/dflt/runtime/persistence/objectstore/algorithm/twopass/TwoPassPersistAlgorithm.java
URL: http://svn.apache.org/viewvc/incubator/isis/trunk/framework/runtimes/dflt/runtime/src/main/java/org/apache/isis/runtimes/dflt/runtime/persistence/objectstore/algorithm/twopass/TwoPassPersistAlgorithm.java?rev=1359393&r1=1359392&r2=1359393&view=diff
==============================================================================
--- incubator/isis/trunk/framework/runtimes/dflt/runtime/src/main/java/org/apache/isis/runtimes/dflt/runtime/persistence/objectstore/algorithm/twopass/TwoPassPersistAlgorithm.java (original)
+++ incubator/isis/trunk/framework/runtimes/dflt/runtime/src/main/java/org/apache/isis/runtimes/dflt/runtime/persistence/objectstore/algorithm/twopass/TwoPassPersistAlgorithm.java Mon Jul  9 21:05:16 2012
@@ -114,7 +114,7 @@ public class TwoPassPersistAlgorithm ext
 
     private void makeCollectionPersistent(final ObjectAdapter collection, final ToPersistObjectSet toPersistObjectSet) {
         LOG.info("persist " + collection);
-        if (collection.getResolveState() == ResolveState.TRANSIENT) {
+        if (collection.isTransient()) {
             collection.changeState(ResolveState.RESOLVED);
         }
         final CollectionFacet facet = CollectionFacetUtils.getCollectionFacetFromSpec(collection);

Modified: incubator/isis/trunk/framework/runtimes/dflt/runtime/src/main/java/org/apache/isis/runtimes/dflt/runtime/system/persistence/PersistenceSession.java
URL: http://svn.apache.org/viewvc/incubator/isis/trunk/framework/runtimes/dflt/runtime/src/main/java/org/apache/isis/runtimes/dflt/runtime/system/persistence/PersistenceSession.java?rev=1359393&r1=1359392&r2=1359393&view=diff
==============================================================================
--- incubator/isis/trunk/framework/runtimes/dflt/runtime/src/main/java/org/apache/isis/runtimes/dflt/runtime/system/persistence/PersistenceSession.java (original)
+++ incubator/isis/trunk/framework/runtimes/dflt/runtime/src/main/java/org/apache/isis/runtimes/dflt/runtime/system/persistence/PersistenceSession.java Mon Jul  9 21:05:16 2012
@@ -312,10 +312,7 @@ public class PersistenceSession implemen
                 adapterManager.remapAsPersistent(serviceAdapter, null);
             }
 
-            if (serviceAdapter.getResolveState().canChangeTo(ResolveState.RESOLVING)) {
-                serviceAdapter.changeState(ResolveState.RESOLVING);
-                serviceAdapter.changeState(ResolveState.RESOLVED);
-            }
+            serviceAdapter.markAsResolvedIfPossible();
             if (existingOid == null) {
                 final RootOid persistentOid = (RootOid) serviceAdapter.getOid();
                 registerService(persistentOid);
@@ -395,7 +392,7 @@ public class PersistenceSession implemen
         final Object pojo = objectSpec.createObject();
         final ObjectAdapter adapter = getAdapterManager().adapterFor(pojo, parentAdapter);
         objectSpec.initialize(adapter); 
-        if (adapter.getResolveState().isGhost()) {
+        if (adapter.isGhost()) {
             adapter.changeState(ResolveState.RESOLVING);
         }
         if (adapter.getResolveState().isValidToChangeTo(ResolveState.RESOLVED)) {
@@ -644,10 +641,8 @@ public class PersistenceSession implemen
         final ObjectSpecification serviceSpecification = getSpecificationLoader().loadSpecification(servicePojo.getClass());
         final RootOid oid = getOidForService(serviceSpecification);
         final ObjectAdapter serviceAdapter = getAdapterManager().recreateAdapter(oid, servicePojo);
-        if (serviceAdapter.getResolveState().canChangeTo(ResolveState.RESOLVING)) {
-            serviceAdapter.changeState(ResolveState.RESOLVING);
-            serviceAdapter.changeState(ResolveState.RESOLVED);
-        }
+        
+        serviceAdapter.markAsResolvedIfPossible();
         return serviceAdapter;
     }
 
@@ -970,7 +965,7 @@ public class PersistenceSession implemen
             return;
         }
         final ObjectAdapter referenceAdapter = field.get(objectAdapter);
-        if (referenceAdapter == null || referenceAdapter.getResolveState().isResolved()) {
+        if (referenceAdapter == null || referenceAdapter.isResolved()) {
             return;
         }
         if (!referenceAdapter.isPersistent()) {
@@ -1065,7 +1060,7 @@ public class PersistenceSession implemen
     @Override
     public void objectChanged(final ObjectAdapter adapter) {
 
-        if (adapter.isTransient() || (adapter.isParented() && adapter.getAggregateRoot().isTransient())) {
+        if (adapter.representsTransient() || (adapter.isParented() && adapter.getAggregateRoot().representsTransient())) {
             addObjectChangedForPresentationLayer(adapter);
             return;
         }
@@ -1085,7 +1080,7 @@ public class PersistenceSession implemen
             addObjectChangedForPersistenceLayer(adapter);
             addObjectChangedForPresentationLayer(adapter);
         }
-        if (adapter.getResolveState().respondToChangesInPersistentObjects() || adapter.isTransient()) {
+        if (adapter.getResolveState().respondToChangesInPersistentObjects() || adapter.representsTransient()) {
             addObjectChangedForPresentationLayer(adapter);
         }
     }

Modified: incubator/isis/trunk/framework/runtimes/dflt/runtime/src/main/java/org/apache/isis/runtimes/dflt/runtime/transaction/facets/CollectionAddToFacetWrapTransaction.java
URL: http://svn.apache.org/viewvc/incubator/isis/trunk/framework/runtimes/dflt/runtime/src/main/java/org/apache/isis/runtimes/dflt/runtime/transaction/facets/CollectionAddToFacetWrapTransaction.java?rev=1359393&r1=1359392&r2=1359393&view=diff
==============================================================================
--- incubator/isis/trunk/framework/runtimes/dflt/runtime/src/main/java/org/apache/isis/runtimes/dflt/runtime/transaction/facets/CollectionAddToFacetWrapTransaction.java (original)
+++ incubator/isis/trunk/framework/runtimes/dflt/runtime/src/main/java/org/apache/isis/runtimes/dflt/runtime/transaction/facets/CollectionAddToFacetWrapTransaction.java Mon Jul  9 21:05:16 2012
@@ -44,7 +44,7 @@ public class CollectionAddToFacetWrapTra
 
     @Override
     public void add(final ObjectAdapter adapter, final ObjectAdapter referencedAdapter) {
-        if (adapter.isTransient()) {
+        if (adapter.representsTransient()) {
             // NOT !adapter.isPersistent();
             // (value adapters are neither persistent or transient)
             underlyingFacet.add(adapter, referencedAdapter);

Modified: incubator/isis/trunk/framework/runtimes/dflt/runtime/src/main/java/org/apache/isis/runtimes/dflt/runtime/transaction/facets/CollectionClearFacetWrapTransaction.java
URL: http://svn.apache.org/viewvc/incubator/isis/trunk/framework/runtimes/dflt/runtime/src/main/java/org/apache/isis/runtimes/dflt/runtime/transaction/facets/CollectionClearFacetWrapTransaction.java?rev=1359393&r1=1359392&r2=1359393&view=diff
==============================================================================
--- incubator/isis/trunk/framework/runtimes/dflt/runtime/src/main/java/org/apache/isis/runtimes/dflt/runtime/transaction/facets/CollectionClearFacetWrapTransaction.java (original)
+++ incubator/isis/trunk/framework/runtimes/dflt/runtime/src/main/java/org/apache/isis/runtimes/dflt/runtime/transaction/facets/CollectionClearFacetWrapTransaction.java Mon Jul  9 21:05:16 2012
@@ -44,7 +44,7 @@ public class CollectionClearFacetWrapTra
 
     @Override
     public void clear(final ObjectAdapter adapter) {
-        if (adapter.isTransient()) {
+        if (adapter.representsTransient()) {
             // NOT !adapter.isPersistent();
             // (value adapters are neither persistent or transient)
             underlyingFacet.clear(adapter);

Modified: incubator/isis/trunk/framework/runtimes/dflt/runtime/src/main/java/org/apache/isis/runtimes/dflt/runtime/transaction/facets/CollectionRemoveFromFacetWrapTransaction.java
URL: http://svn.apache.org/viewvc/incubator/isis/trunk/framework/runtimes/dflt/runtime/src/main/java/org/apache/isis/runtimes/dflt/runtime/transaction/facets/CollectionRemoveFromFacetWrapTransaction.java?rev=1359393&r1=1359392&r2=1359393&view=diff
==============================================================================
--- incubator/isis/trunk/framework/runtimes/dflt/runtime/src/main/java/org/apache/isis/runtimes/dflt/runtime/transaction/facets/CollectionRemoveFromFacetWrapTransaction.java (original)
+++ incubator/isis/trunk/framework/runtimes/dflt/runtime/src/main/java/org/apache/isis/runtimes/dflt/runtime/transaction/facets/CollectionRemoveFromFacetWrapTransaction.java Mon Jul  9 21:05:16 2012
@@ -44,7 +44,7 @@ public class CollectionRemoveFromFacetWr
 
     @Override
     public void remove(final ObjectAdapter adapter, final ObjectAdapter referencedAdapter) {
-        if (adapter.isTransient()) {
+        if (adapter.representsTransient()) {
             // NOT !adapter.isPersistent();
             // (value adapters are neither persistent or transient)
             underlyingFacet.remove(adapter, referencedAdapter);

Modified: incubator/isis/trunk/framework/runtimes/dflt/runtime/src/main/java/org/apache/isis/runtimes/dflt/runtime/transaction/facets/PropertyClearFacetWrapTransaction.java
URL: http://svn.apache.org/viewvc/incubator/isis/trunk/framework/runtimes/dflt/runtime/src/main/java/org/apache/isis/runtimes/dflt/runtime/transaction/facets/PropertyClearFacetWrapTransaction.java?rev=1359393&r1=1359392&r2=1359393&view=diff
==============================================================================
--- incubator/isis/trunk/framework/runtimes/dflt/runtime/src/main/java/org/apache/isis/runtimes/dflt/runtime/transaction/facets/PropertyClearFacetWrapTransaction.java (original)
+++ incubator/isis/trunk/framework/runtimes/dflt/runtime/src/main/java/org/apache/isis/runtimes/dflt/runtime/transaction/facets/PropertyClearFacetWrapTransaction.java Mon Jul  9 21:05:16 2012
@@ -44,7 +44,7 @@ public class PropertyClearFacetWrapTrans
 
     @Override
     public void clearProperty(final ObjectAdapter adapter) {
-        if (adapter.isTransient()) {
+        if (adapter.representsTransient()) {
             // NOT !adapter.isPersistent();
             // (value adapters are neither persistent or transient)
             underlyingFacet.clearProperty(adapter);

Modified: incubator/isis/trunk/framework/runtimes/dflt/runtime/src/main/java/org/apache/isis/runtimes/dflt/runtime/transaction/facets/PropertySetterFacetWrapTransaction.java
URL: http://svn.apache.org/viewvc/incubator/isis/trunk/framework/runtimes/dflt/runtime/src/main/java/org/apache/isis/runtimes/dflt/runtime/transaction/facets/PropertySetterFacetWrapTransaction.java?rev=1359393&r1=1359392&r2=1359393&view=diff
==============================================================================
--- incubator/isis/trunk/framework/runtimes/dflt/runtime/src/main/java/org/apache/isis/runtimes/dflt/runtime/transaction/facets/PropertySetterFacetWrapTransaction.java (original)
+++ incubator/isis/trunk/framework/runtimes/dflt/runtime/src/main/java/org/apache/isis/runtimes/dflt/runtime/transaction/facets/PropertySetterFacetWrapTransaction.java Mon Jul  9 21:05:16 2012
@@ -44,7 +44,7 @@ public class PropertySetterFacetWrapTran
 
     @Override
     public void setProperty(final ObjectAdapter adapter, final ObjectAdapter referencedAdapter) {
-        if (adapter.isTransient()) {
+        if (adapter.representsTransient()) {
             // NOT !adapter.isPersistent();
             // (value adapters are neither persistent or transient)
             underlyingFacet.setProperty(adapter, referencedAdapter);

Modified: incubator/isis/trunk/framework/runtimes/dflt/runtime/src/main/java/org/apache/isis/runtimes/dflt/runtime/transaction/updatenotifier/UpdateNotifierDefault.java
URL: http://svn.apache.org/viewvc/incubator/isis/trunk/framework/runtimes/dflt/runtime/src/main/java/org/apache/isis/runtimes/dflt/runtime/transaction/updatenotifier/UpdateNotifierDefault.java?rev=1359393&r1=1359392&r2=1359393&view=diff
==============================================================================
--- incubator/isis/trunk/framework/runtimes/dflt/runtime/src/main/java/org/apache/isis/runtimes/dflt/runtime/transaction/updatenotifier/UpdateNotifierDefault.java (original)
+++ incubator/isis/trunk/framework/runtimes/dflt/runtime/src/main/java/org/apache/isis/runtimes/dflt/runtime/transaction/updatenotifier/UpdateNotifierDefault.java Mon Jul  9 21:05:16 2012
@@ -52,8 +52,7 @@ public class UpdateNotifierDefault exten
 
     @Override
     public synchronized void addChangedObject(final ObjectAdapter adapter) {
-        final ResolveState resolveState = adapter.getResolveState();
-        if (!resolveState.isResolved() && !adapter.isTransient()) {
+        if (!adapter.isResolved() && !adapter.representsTransient()) {
             return;
         }
 

Modified: incubator/isis/trunk/framework/runtimes/dflt/runtime/src/test/java/org/apache/isis/runtimes/dflt/runtime/system/OneToManyAssociationImplTest.java
URL: http://svn.apache.org/viewvc/incubator/isis/trunk/framework/runtimes/dflt/runtime/src/test/java/org/apache/isis/runtimes/dflt/runtime/system/OneToManyAssociationImplTest.java?rev=1359393&r1=1359392&r2=1359393&view=diff
==============================================================================
--- incubator/isis/trunk/framework/runtimes/dflt/runtime/src/test/java/org/apache/isis/runtimes/dflt/runtime/system/OneToManyAssociationImplTest.java (original)
+++ incubator/isis/trunk/framework/runtimes/dflt/runtime/src/test/java/org/apache/isis/runtimes/dflt/runtime/system/OneToManyAssociationImplTest.java Mon Jul  9 21:05:16 2012
@@ -138,7 +138,7 @@ public class OneToManyAssociationImplTes
                 one(mockOwnerAdapter).isPersistent();
                 will(returnValue(true));
 
-                one(mockAssociatedAdapter).isTransient();
+                one(mockAssociatedAdapter).representsTransient();
                 will(returnValue(false));
 
                 one(mockPeer).getFacet(CollectionAddToFacet.class);

Modified: incubator/isis/trunk/framework/viewer/dnd/src/main/java/org/apache/isis/viewer/dnd/form/ExpandableViewBorder.java
URL: http://svn.apache.org/viewvc/incubator/isis/trunk/framework/viewer/dnd/src/main/java/org/apache/isis/viewer/dnd/form/ExpandableViewBorder.java?rev=1359393&r1=1359392&r2=1359393&view=diff
==============================================================================
--- incubator/isis/trunk/framework/viewer/dnd/src/main/java/org/apache/isis/viewer/dnd/form/ExpandableViewBorder.java (original)
+++ incubator/isis/trunk/framework/viewer/dnd/src/main/java/org/apache/isis/viewer/dnd/form/ExpandableViewBorder.java Mon Jul  9 21:05:16 2012
@@ -186,7 +186,7 @@ public class ExpandableViewBorder extend
 
     private int canOpenCollection(final Content content) {
         final ObjectAdapter collection = ((CollectionContent) content).getCollection();
-        if (collection.getResolveState().isGhost()) {
+        if (collection.isGhost()) {
             return UNKNOWN;
         } else {
             final CollectionFacet facet = CollectionFacetUtils.getCollectionFacetFromSpec(collection);