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;
}