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:39:22 UTC

svn commit: r1359415 - /incubator/isis/trunk/framework/runtimes/dflt/runtime/src/main/java/org/apache/isis/runtimes/dflt/runtime/memento/Memento.java

Author: danhaywood
Date: Mon Jul  9 21:39:22 2012
New Revision: 1359415

URL: http://svn.apache.org/viewvc?rev=1359415&view=rev
Log:
ISIS-14: ResolveState refactoring (working on Memento)

Changing the Memento rehydration logic, to see if can resolve aggregated adapters to RESOLVING (like everywhere else) instead of GHOST.  Seems to work (no tests fail...)

Modified:
    incubator/isis/trunk/framework/runtimes/dflt/runtime/src/main/java/org/apache/isis/runtimes/dflt/runtime/memento/Memento.java

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=1359415&r1=1359414&r2=1359415&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:39:22 2012
@@ -228,23 +228,26 @@ public class Memento implements Serializ
         if (data instanceof StandaloneData) {
             final StandaloneData standaloneData = (StandaloneData) data;
             return standaloneData.getAdapter();
-        } else {
-            final Oid oid = data.getOid();
-            if (oid == null) {
-                return null;
-            }
-            ObjectAdapter referencedAdapter = getHydrator().recreateAdapter(spec, oid);
-            if (data instanceof ObjectData) {
-                if (oid.isTransient() || spec.isParented()) {
-                    final ResolveState resolveState = spec.isParented() ? ResolveState.GHOST : ResolveState.TRANSIENT;
-                    if (referencedAdapter.getResolveState().isValidToChangeTo(resolveState)) {
-                        referencedAdapter.changeState(resolveState);
-                    }
-                    updateObject(referencedAdapter, data, resolveState);
-                }
+        } 
+        final Oid oid = data.getOid();
+        if (oid == null) {
+            return null;
+        }
+        
+        ObjectAdapter referencedAdapter = getHydrator().recreateAdapter(spec, oid);
+        if (data instanceof ObjectData) {
+            if (spec.isParented()) {
+                // rather than the following, is it equivalent to pass in RESOLVING (like everywhere else?)
+//                final ResolveState targetState = ResolveState.GHOST;
+//                if (referencedAdapter.getResolveState().isValidToChangeTo(targetState)) {
+//                    referencedAdapter.changeState(targetState);
+//                }
+                updateObject(referencedAdapter, data, ResolveState.RESOLVING);
+            } else if (oid.isTransient()) {
+                updateObject(referencedAdapter, data, ResolveState.TRANSIENT);
             }
-            return referencedAdapter;
         }
+        return referencedAdapter;
     }