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:13:42 UTC
svn commit: r1359404 - in /incubator/isis/trunk/framework:
core/metamodel/src/main/java/org/apache/isis/core/metamodel/adapter/
core/metamodel/src/test/java/org/apache/isis/core/metamodel/adapter/
runtimes/dflt/runtime/src/main/java/org/apache/isis/run...
Author: danhaywood
Date: Mon Jul 9 21:13:41 2012
New Revision: 1359404
URL: http://svn.apache.org/viewvc?rev=1359404&view=rev
Log:
ISIS-14: ResolveState simplifications; combining SERIALIZING_TRANSIENT with TRANSIENT.
Modified:
incubator/isis/trunk/framework/core/metamodel/src/main/java/org/apache/isis/core/metamodel/adapter/ResolveState.java
incubator/isis/trunk/framework/core/metamodel/src/test/java/org/apache/isis/core/metamodel/adapter/ResolveState_GetEndStateTest.java
incubator/isis/trunk/framework/core/metamodel/src/test/java/org/apache/isis/core/metamodel/adapter/ResolveState_IsDestroyedTest.java
incubator/isis/trunk/framework/core/metamodel/src/test/java/org/apache/isis/core/metamodel/adapter/ResolveState_IsGhostTest.java
incubator/isis/trunk/framework/core/metamodel/src/test/java/org/apache/isis/core/metamodel/adapter/ResolveState_IsNewTest.java
incubator/isis/trunk/framework/core/metamodel/src/test/java/org/apache/isis/core/metamodel/adapter/ResolveState_IsPersistentTest.java
incubator/isis/trunk/framework/core/metamodel/src/test/java/org/apache/isis/core/metamodel/adapter/ResolveState_IsResolvedTest.java
incubator/isis/trunk/framework/core/metamodel/src/test/java/org/apache/isis/core/metamodel/adapter/ResolveState_IsResolvingTest.java
incubator/isis/trunk/framework/core/metamodel/src/test/java/org/apache/isis/core/metamodel/adapter/ResolveState_IsTransientTest.java
incubator/isis/trunk/framework/core/metamodel/src/test/java/org/apache/isis/core/metamodel/adapter/ResolveState_IsValidToChangeToTest.java
incubator/isis/trunk/framework/core/metamodel/src/test/java/org/apache/isis/core/metamodel/adapter/ResolveState_RespondToChangesInPersistentObjectsTest.java
incubator/isis/trunk/framework/runtimes/dflt/runtime/src/main/java/org/apache/isis/runtimes/dflt/runtime/memento/Memento.java
Modified: incubator/isis/trunk/framework/core/metamodel/src/main/java/org/apache/isis/core/metamodel/adapter/ResolveState.java
URL: http://svn.apache.org/viewvc/incubator/isis/trunk/framework/core/metamodel/src/main/java/org/apache/isis/core/metamodel/adapter/ResolveState.java?rev=1359404&r1=1359403&r2=1359404&view=diff
==============================================================================
--- incubator/isis/trunk/framework/core/metamodel/src/main/java/org/apache/isis/core/metamodel/adapter/ResolveState.java (original)
+++ incubator/isis/trunk/framework/core/metamodel/src/main/java/org/apache/isis/core/metamodel/adapter/ResolveState.java Mon Jul 9 21:13:41 2012
@@ -67,10 +67,10 @@ public final class ResolveState {
public static final ResolveState DESTROYED = new ResolveState("Destroyed", "D~~", null, CANNOT_TRANSITION_FROM, RESPONDS_TO_CHANGES, DOES_NOT_REPRESENT_TRANSIENT, DOES_NOT_REPRESENT_PERSISTENT);
public static final ResolveState VALUE = new ResolveState("Value", "V~~", null, CANNOT_TRANSITION_FROM, RESPONDS_TO_CHANGES, DOES_NOT_REPRESENT_TRANSIENT, DOES_NOT_REPRESENT_PERSISTENT);
- /**
- * 20120709: used only in <tt>Memento</tt>, when recreating a transient object.
- */
- public static final ResolveState SERIALIZING_TRANSIENT = new ResolveState("Serializing Transient", "T~S", TRANSIENT, CANNOT_TRANSITION_FROM, DOES_NOT_RESPOND_TO_CHANGES, REPRESENTS_TRANSIENT, DOES_NOT_REPRESENT_PERSISTENT);
+ // 20120709: used only in <tt>Memento</tt>, when recreating a transient object.
+ // however, analysis is that could equally set to TRANSIENT, rendering this state
+ // surplus to requirements.
+ // public static final ResolveState SERIALIZING_TRANSIENT = new ResolveState("Serializing Transient", "T~S", TRANSIENT, CANNOT_TRANSITION_FROM, DOES_NOT_RESPOND_TO_CHANGES, REPRESENTS_TRANSIENT, DOES_NOT_REPRESENT_PERSISTENT);
// no longer seem to be used
@@ -113,12 +113,13 @@ public final class ResolveState {
// previously also RESOLVING_PART and SERIALIZING_GHOST
put(GHOST, new ResolveState[] { DESTROYED, RESOLVING, UPDATING });
put(NEW, new ResolveState[] { TRANSIENT, GHOST, VALUE });
- put(TRANSIENT, new ResolveState[] { RESOLVED, SERIALIZING_TRANSIENT });
+ // previously also SERIALIZING_TRANSIENT
+ put(TRANSIENT, new ResolveState[] { RESOLVED });
put(RESOLVING, new ResolveState[] { RESOLVED });
// previously also SERIALIZING_RESOLVED
put(RESOLVED, new ResolveState[] { GHOST, UPDATING, DESTROYED });
//put(SERIALIZING_RESOLVED, new ResolveState[] { RESOLVED });
- put(SERIALIZING_TRANSIENT, new ResolveState[] { TRANSIENT });
+ //put(SERIALIZING_TRANSIENT, new ResolveState[] { TRANSIENT });
put(UPDATING, new ResolveState[] { RESOLVED });
put(DESTROYED, new ResolveState[] {});
put(VALUE, new ResolveState[] {});
Modified: incubator/isis/trunk/framework/core/metamodel/src/test/java/org/apache/isis/core/metamodel/adapter/ResolveState_GetEndStateTest.java
URL: http://svn.apache.org/viewvc/incubator/isis/trunk/framework/core/metamodel/src/test/java/org/apache/isis/core/metamodel/adapter/ResolveState_GetEndStateTest.java?rev=1359404&r1=1359403&r2=1359404&view=diff
==============================================================================
--- incubator/isis/trunk/framework/core/metamodel/src/test/java/org/apache/isis/core/metamodel/adapter/ResolveState_GetEndStateTest.java (original)
+++ incubator/isis/trunk/framework/core/metamodel/src/test/java/org/apache/isis/core/metamodel/adapter/ResolveState_GetEndStateTest.java Mon Jul 9 21:13:41 2012
@@ -24,7 +24,6 @@ import static org.apache.isis.core.metam
import static org.apache.isis.core.metamodel.adapter.ResolveState.NEW;
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.SERIALIZING_TRANSIENT;
import static org.apache.isis.core.metamodel.adapter.ResolveState.TRANSIENT;
import static org.apache.isis.core.metamodel.adapter.ResolveState.UPDATING;
import static org.apache.isis.core.metamodel.adapter.ResolveState.VALUE;
@@ -44,14 +43,21 @@ public class ResolveState_GetEndStateTes
@Parameters
public static Collection<Object[]> data() {
- return Arrays.asList(new Object[][] { { NEW, null }, { GHOST, null }, { TRANSIENT, null },
+ return Arrays.asList(new Object[][] { { NEW, null }, //
+ { GHOST, null }, //
+ { TRANSIENT, null }, //
// { RESOLVING_PART, PART_RESOLVED },
// { PART_RESOLVED, null },
- { RESOLVING, RESOLVED }, { RESOLVED, null }, { UPDATING, RESOLVED }, { SERIALIZING_TRANSIENT, TRANSIENT },
+ { RESOLVING, RESOLVED }, //
+ { RESOLVED, null }, //
+ { UPDATING, RESOLVED }, //
+ // { SERIALIZING_TRANSIENT, TRANSIENT },
// { SERIALIZING_PART_RESOLVED, PART_RESOLVED },
// { SERIALIZING_GHOST, GHOST },
- // { SERIALIZING_RESOLVED, RESOLVED },
- { VALUE, null }, { DESTROYED, null }, });
+ // { SERIALIZING_RESOLVED, RESOLVED },
+ { VALUE, null }, //
+ { DESTROYED, null }, //
+ });
}
private final ResolveState from;
Modified: incubator/isis/trunk/framework/core/metamodel/src/test/java/org/apache/isis/core/metamodel/adapter/ResolveState_IsDestroyedTest.java
URL: http://svn.apache.org/viewvc/incubator/isis/trunk/framework/core/metamodel/src/test/java/org/apache/isis/core/metamodel/adapter/ResolveState_IsDestroyedTest.java?rev=1359404&r1=1359403&r2=1359404&view=diff
==============================================================================
--- incubator/isis/trunk/framework/core/metamodel/src/test/java/org/apache/isis/core/metamodel/adapter/ResolveState_IsDestroyedTest.java (original)
+++ incubator/isis/trunk/framework/core/metamodel/src/test/java/org/apache/isis/core/metamodel/adapter/ResolveState_IsDestroyedTest.java Mon Jul 9 21:13:41 2012
@@ -24,7 +24,6 @@ import static org.apache.isis.core.metam
import static org.apache.isis.core.metamodel.adapter.ResolveState.NEW;
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.SERIALIZING_TRANSIENT;
import static org.apache.isis.core.metamodel.adapter.ResolveState.TRANSIENT;
import static org.apache.isis.core.metamodel.adapter.ResolveState.UPDATING;
import static org.apache.isis.core.metamodel.adapter.ResolveState.VALUE;
@@ -54,7 +53,7 @@ public class ResolveState_IsDestroyedTes
{ false, TRANSIENT }, //
{ true, DESTROYED }, //
{ false, UPDATING }, //
- { false, SERIALIZING_TRANSIENT },
+ // { false, SERIALIZING_TRANSIENT },
// { false, SERIALIZING_GHOST },
// { false, SERIALIZING_PART_RESOLVED },
// { false, SERIALIZING_RESOLVED },
Modified: incubator/isis/trunk/framework/core/metamodel/src/test/java/org/apache/isis/core/metamodel/adapter/ResolveState_IsGhostTest.java
URL: http://svn.apache.org/viewvc/incubator/isis/trunk/framework/core/metamodel/src/test/java/org/apache/isis/core/metamodel/adapter/ResolveState_IsGhostTest.java?rev=1359404&r1=1359403&r2=1359404&view=diff
==============================================================================
--- incubator/isis/trunk/framework/core/metamodel/src/test/java/org/apache/isis/core/metamodel/adapter/ResolveState_IsGhostTest.java (original)
+++ incubator/isis/trunk/framework/core/metamodel/src/test/java/org/apache/isis/core/metamodel/adapter/ResolveState_IsGhostTest.java Mon Jul 9 21:13:41 2012
@@ -24,7 +24,6 @@ import static org.apache.isis.core.metam
import static org.apache.isis.core.metamodel.adapter.ResolveState.NEW;
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.SERIALIZING_TRANSIENT;
import static org.apache.isis.core.metamodel.adapter.ResolveState.TRANSIENT;
import static org.apache.isis.core.metamodel.adapter.ResolveState.UPDATING;
import static org.apache.isis.core.metamodel.adapter.ResolveState.VALUE;
@@ -54,7 +53,7 @@ public class ResolveState_IsGhostTest {
{ false, TRANSIENT }, //
{ false, DESTROYED }, //
{ false, UPDATING }, //
- { false, SERIALIZING_TRANSIENT }, //
+ // { false, SERIALIZING_TRANSIENT }, //
// { false, SERIALIZING_GHOST },
// { false, SERIALIZING_PART_RESOLVED },
// { false, SERIALIZING_RESOLVED },
Modified: incubator/isis/trunk/framework/core/metamodel/src/test/java/org/apache/isis/core/metamodel/adapter/ResolveState_IsNewTest.java
URL: http://svn.apache.org/viewvc/incubator/isis/trunk/framework/core/metamodel/src/test/java/org/apache/isis/core/metamodel/adapter/ResolveState_IsNewTest.java?rev=1359404&r1=1359403&r2=1359404&view=diff
==============================================================================
--- incubator/isis/trunk/framework/core/metamodel/src/test/java/org/apache/isis/core/metamodel/adapter/ResolveState_IsNewTest.java (original)
+++ incubator/isis/trunk/framework/core/metamodel/src/test/java/org/apache/isis/core/metamodel/adapter/ResolveState_IsNewTest.java Mon Jul 9 21:13:41 2012
@@ -24,7 +24,6 @@ import static org.apache.isis.core.metam
import static org.apache.isis.core.metamodel.adapter.ResolveState.NEW;
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.SERIALIZING_TRANSIENT;
import static org.apache.isis.core.metamodel.adapter.ResolveState.TRANSIENT;
import static org.apache.isis.core.metamodel.adapter.ResolveState.UPDATING;
import static org.apache.isis.core.metamodel.adapter.ResolveState.VALUE;
@@ -44,8 +43,7 @@ public class ResolveState_IsNewTest {
@Parameters
public static Collection<Object[]> data() {
- return Arrays.asList(new Object[][] {
- { false, GHOST }, //
+ return Arrays.asList(new Object[][] { { false, GHOST }, //
{ true, NEW }, //
// { false, PART_RESOLVED },
{ false, RESOLVED }, //
@@ -54,12 +52,12 @@ public class ResolveState_IsNewTest {
{ false, TRANSIENT }, //
{ false, DESTROYED }, //
{ false, UPDATING }, //
- { false, SERIALIZING_TRANSIENT }, //
+ // { false, SERIALIZING_TRANSIENT }, //
// { false, SERIALIZING_GHOST },
// { false, SERIALIZING_PART_RESOLVED },
- // { false, SERIALIZING_RESOLVED },
+ // { false, SERIALIZING_RESOLVED },
{ false, VALUE }, //
- });
+ });
}
private final boolean whetherIs;
Modified: incubator/isis/trunk/framework/core/metamodel/src/test/java/org/apache/isis/core/metamodel/adapter/ResolveState_IsPersistentTest.java
URL: http://svn.apache.org/viewvc/incubator/isis/trunk/framework/core/metamodel/src/test/java/org/apache/isis/core/metamodel/adapter/ResolveState_IsPersistentTest.java?rev=1359404&r1=1359403&r2=1359404&view=diff
==============================================================================
--- incubator/isis/trunk/framework/core/metamodel/src/test/java/org/apache/isis/core/metamodel/adapter/ResolveState_IsPersistentTest.java (original)
+++ incubator/isis/trunk/framework/core/metamodel/src/test/java/org/apache/isis/core/metamodel/adapter/ResolveState_IsPersistentTest.java Mon Jul 9 21:13:41 2012
@@ -24,7 +24,6 @@ import static org.apache.isis.core.metam
import static org.apache.isis.core.metamodel.adapter.ResolveState.NEW;
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.SERIALIZING_TRANSIENT;
import static org.apache.isis.core.metamodel.adapter.ResolveState.TRANSIENT;
import static org.apache.isis.core.metamodel.adapter.ResolveState.UPDATING;
import static org.apache.isis.core.metamodel.adapter.ResolveState.VALUE;
@@ -44,8 +43,7 @@ public class ResolveState_IsPersistentTe
@Parameters
public static Collection<Object[]> data() {
- return Arrays.asList(new Object[][] {
- { true, GHOST }, //
+ return Arrays.asList(new Object[][] { { true, GHOST }, //
{ false, NEW }, //
// { true, PART_RESOLVED },
{ true, RESOLVED }, //
@@ -54,12 +52,12 @@ public class ResolveState_IsPersistentTe
{ false, TRANSIENT }, //
{ false, DESTROYED }, //
{ true, UPDATING }, //
- { false, SERIALIZING_TRANSIENT }, //
+ // { false, SERIALIZING_TRANSIENT }, //
// { true, SERIALIZING_GHOST },
// { true, SERIALIZING_PART_RESOLVED },
- // { true, SERIALIZING_RESOLVED },
+ // { true, SERIALIZING_RESOLVED },
{ false, VALUE }, //
- });
+ });
}
private final boolean whetherIs;
Modified: incubator/isis/trunk/framework/core/metamodel/src/test/java/org/apache/isis/core/metamodel/adapter/ResolveState_IsResolvedTest.java
URL: http://svn.apache.org/viewvc/incubator/isis/trunk/framework/core/metamodel/src/test/java/org/apache/isis/core/metamodel/adapter/ResolveState_IsResolvedTest.java?rev=1359404&r1=1359403&r2=1359404&view=diff
==============================================================================
--- incubator/isis/trunk/framework/core/metamodel/src/test/java/org/apache/isis/core/metamodel/adapter/ResolveState_IsResolvedTest.java (original)
+++ incubator/isis/trunk/framework/core/metamodel/src/test/java/org/apache/isis/core/metamodel/adapter/ResolveState_IsResolvedTest.java Mon Jul 9 21:13:41 2012
@@ -24,7 +24,6 @@ import static org.apache.isis.core.metam
import static org.apache.isis.core.metamodel.adapter.ResolveState.NEW;
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.SERIALIZING_TRANSIENT;
import static org.apache.isis.core.metamodel.adapter.ResolveState.TRANSIENT;
import static org.apache.isis.core.metamodel.adapter.ResolveState.UPDATING;
import static org.apache.isis.core.metamodel.adapter.ResolveState.VALUE;
@@ -44,8 +43,7 @@ public class ResolveState_IsResolvedTest
@Parameters
public static Collection<Object[]> data() {
- return Arrays.asList(new Object[][] {
- { false, GHOST }, //
+ return Arrays.asList(new Object[][] { { false, GHOST }, //
{ false, NEW }, //
// { false, PART_RESOLVED },
{ true, RESOLVED }, //
@@ -54,12 +52,12 @@ public class ResolveState_IsResolvedTest
{ false, TRANSIENT }, //
{ false, DESTROYED }, //
{ false, UPDATING }, //
- { false, SERIALIZING_TRANSIENT }, //
+ // { false, SERIALIZING_TRANSIENT }, //
// { false, SERIALIZING_GHOST },
// { false, SERIALIZING_PART_RESOLVED },
- // { false, SERIALIZING_RESOLVED },
+ // { false, SERIALIZING_RESOLVED },
{ false, VALUE }, //
- });
+ });
}
private final boolean whetherIs;
Modified: incubator/isis/trunk/framework/core/metamodel/src/test/java/org/apache/isis/core/metamodel/adapter/ResolveState_IsResolvingTest.java
URL: http://svn.apache.org/viewvc/incubator/isis/trunk/framework/core/metamodel/src/test/java/org/apache/isis/core/metamodel/adapter/ResolveState_IsResolvingTest.java?rev=1359404&r1=1359403&r2=1359404&view=diff
==============================================================================
--- incubator/isis/trunk/framework/core/metamodel/src/test/java/org/apache/isis/core/metamodel/adapter/ResolveState_IsResolvingTest.java (original)
+++ incubator/isis/trunk/framework/core/metamodel/src/test/java/org/apache/isis/core/metamodel/adapter/ResolveState_IsResolvingTest.java Mon Jul 9 21:13:41 2012
@@ -24,7 +24,6 @@ import static org.apache.isis.core.metam
import static org.apache.isis.core.metamodel.adapter.ResolveState.NEW;
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.SERIALIZING_TRANSIENT;
import static org.apache.isis.core.metamodel.adapter.ResolveState.TRANSIENT;
import static org.apache.isis.core.metamodel.adapter.ResolveState.UPDATING;
import static org.apache.isis.core.metamodel.adapter.ResolveState.VALUE;
@@ -44,8 +43,7 @@ public class ResolveState_IsResolvingTes
@Parameters
public static Collection<Object[]> data() {
- return Arrays.asList(new Object[][] {
- { false, GHOST }, //
+ return Arrays.asList(new Object[][] { { false, GHOST }, //
{ false, NEW }, //
// { false, PART_RESOLVED },
{ false, RESOLVED }, //
@@ -53,12 +51,13 @@ public class ResolveState_IsResolvingTes
// { true, RESOLVING_PART },
{ false, TRANSIENT }, //
{ false, DESTROYED }, //
- { false, UPDATING }, { false, SERIALIZING_TRANSIENT },
+ { false, UPDATING }, //
+ // { false, SERIALIZING_TRANSIENT },
// { false, SERIALIZING_GHOST },
// { false, SERIALIZING_PART_RESOLVED },
- // { false, SERIALIZING_RESOLVED },
+ // { false, SERIALIZING_RESOLVED },
{ false, VALUE }, //
- });
+ });
}
private final boolean whetherIs;
Modified: incubator/isis/trunk/framework/core/metamodel/src/test/java/org/apache/isis/core/metamodel/adapter/ResolveState_IsTransientTest.java
URL: http://svn.apache.org/viewvc/incubator/isis/trunk/framework/core/metamodel/src/test/java/org/apache/isis/core/metamodel/adapter/ResolveState_IsTransientTest.java?rev=1359404&r1=1359403&r2=1359404&view=diff
==============================================================================
--- incubator/isis/trunk/framework/core/metamodel/src/test/java/org/apache/isis/core/metamodel/adapter/ResolveState_IsTransientTest.java (original)
+++ incubator/isis/trunk/framework/core/metamodel/src/test/java/org/apache/isis/core/metamodel/adapter/ResolveState_IsTransientTest.java Mon Jul 9 21:13:41 2012
@@ -24,7 +24,6 @@ import static org.apache.isis.core.metam
import static org.apache.isis.core.metamodel.adapter.ResolveState.NEW;
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.SERIALIZING_TRANSIENT;
import static org.apache.isis.core.metamodel.adapter.ResolveState.TRANSIENT;
import static org.apache.isis.core.metamodel.adapter.ResolveState.UPDATING;
import static org.apache.isis.core.metamodel.adapter.ResolveState.VALUE;
@@ -44,8 +43,7 @@ public class ResolveState_IsTransientTes
@Parameters
public static Collection<Object[]> data() {
- return Arrays.asList(new Object[][] {
- { false, GHOST }, //
+ return Arrays.asList(new Object[][] { { false, GHOST }, //
{ false, NEW }, //
// { false, PART_RESOLVED },
{ false, RESOLVED }, //
@@ -54,12 +52,12 @@ public class ResolveState_IsTransientTes
{ true, TRANSIENT }, //
{ false, DESTROYED }, //
{ false, UPDATING }, //
- { true, SERIALIZING_TRANSIENT }, //
+ // { true, SERIALIZING_TRANSIENT },
// { false, SERIALIZING_GHOST },
// { false, SERIALIZING_PART_RESOLVED },
- // { false, SERIALIZING_RESOLVED },
+ // { false, SERIALIZING_RESOLVED },
{ false, VALUE }, //
- });
+ });
}
private final boolean whetherIs;
Modified: incubator/isis/trunk/framework/core/metamodel/src/test/java/org/apache/isis/core/metamodel/adapter/ResolveState_IsValidToChangeToTest.java
URL: http://svn.apache.org/viewvc/incubator/isis/trunk/framework/core/metamodel/src/test/java/org/apache/isis/core/metamodel/adapter/ResolveState_IsValidToChangeToTest.java?rev=1359404&r1=1359403&r2=1359404&view=diff
==============================================================================
--- incubator/isis/trunk/framework/core/metamodel/src/test/java/org/apache/isis/core/metamodel/adapter/ResolveState_IsValidToChangeToTest.java (original)
+++ incubator/isis/trunk/framework/core/metamodel/src/test/java/org/apache/isis/core/metamodel/adapter/ResolveState_IsValidToChangeToTest.java Mon Jul 9 21:13:41 2012
@@ -24,7 +24,6 @@ import static org.apache.isis.core.metam
import static org.apache.isis.core.metamodel.adapter.ResolveState.NEW;
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.SERIALIZING_TRANSIENT;
import static org.apache.isis.core.metamodel.adapter.ResolveState.TRANSIENT;
import static org.apache.isis.core.metamodel.adapter.ResolveState.UPDATING;
import static org.apache.isis.core.metamodel.adapter.ResolveState.VALUE;
@@ -53,7 +52,7 @@ public class ResolveState_IsValidToChang
{ true, NEW, TRANSIENT },//
{ false, NEW, DESTROYED },//
{ false, NEW, UPDATING },//
- { false, NEW, SERIALIZING_TRANSIENT },//
+ // { false, NEW, SERIALIZING_TRANSIENT },
// { false, NEW, SERIALIZING_GHOST },
// { false, NEW, SERIALIZING_PART_RESOLVED },
// { false, NEW, SERIALIZING_RESOLVED },//
@@ -68,7 +67,7 @@ public class ResolveState_IsValidToChang
{ false, GHOST, TRANSIENT },//
{ true, GHOST, DESTROYED },//
{ true, GHOST, UPDATING },//
- { false, GHOST, SERIALIZING_TRANSIENT },//
+ // { false, GHOST, SERIALIZING_TRANSIENT },
// { true, GHOST, SERIALIZING_GHOST },
// { false, GHOST, SERIALIZING_PART_RESOLVED },
// { false, GHOST, SERIALIZING_RESOLVED }, //
@@ -83,7 +82,7 @@ public class ResolveState_IsValidToChang
{ false, TRANSIENT, TRANSIENT },//
{ false, TRANSIENT, DESTROYED },//
{ false, TRANSIENT, UPDATING },//
- { true, TRANSIENT, SERIALIZING_TRANSIENT },//
+ // { true, TRANSIENT, SERIALIZING_TRANSIENT },
// { false, TRANSIENT, SERIALIZING_GHOST },
// { false, TRANSIENT, SERIALIZING_PART_RESOLVED },
// { false, TRANSIENT, SERIALIZING_RESOLVED },//
@@ -128,7 +127,7 @@ public class ResolveState_IsValidToChang
{ false, RESOLVING, TRANSIENT },//
{ false, RESOLVING, DESTROYED },//
{ false, RESOLVING, UPDATING },//
- { false, RESOLVING, SERIALIZING_TRANSIENT },//
+ // { false, RESOLVING, SERIALIZING_TRANSIENT },
// { false, RESOLVING, SERIALIZING_GHOST },
// { false, RESOLVING, SERIALIZING_PART_RESOLVED },
// { false, RESOLVING, SERIALIZING_RESOLVED },//
@@ -143,7 +142,7 @@ public class ResolveState_IsValidToChang
{ false, RESOLVED, TRANSIENT },//
{ true, RESOLVED, DESTROYED },//
{ true, RESOLVED, UPDATING },//
- { false, RESOLVED, SERIALIZING_TRANSIENT },//
+ // { false, RESOLVED, SERIALIZING_TRANSIENT },
// { false, RESOLVED, SERIALIZING_GHOST },
// { false, RESOLVED, SERIALIZING_PART_RESOLVED },
// { true, RESOLVED, SERIALIZING_RESOLVED }, //
@@ -158,26 +157,27 @@ public class ResolveState_IsValidToChang
{ false, UPDATING, TRANSIENT },//
{ false, UPDATING, DESTROYED },//
{ false, UPDATING, UPDATING },//
- { false, UPDATING, SERIALIZING_TRANSIENT },//
+ // { false, UPDATING, SERIALIZING_TRANSIENT },
// { false, UPDATING, SERIALIZING_GHOST },
// { false, UPDATING, SERIALIZING_PART_RESOLVED },
// { false, UPDATING, SERIALIZING_RESOLVED }, //
{ false, UPDATING, VALUE },//
- { false, SERIALIZING_TRANSIENT, GHOST },//
- { false, SERIALIZING_TRANSIENT, NEW }, //
- // { false, SERIALIZING_TRANSIENT, PART_RESOLVED }, //
- { false, SERIALIZING_TRANSIENT, RESOLVED }, //
- { false, SERIALIZING_TRANSIENT, RESOLVING }, //
- // { false, SERIALIZING_TRANSIENT, RESOLVING_PART },
- { true, SERIALIZING_TRANSIENT, TRANSIENT }, //
- { false, SERIALIZING_TRANSIENT, DESTROYED }, //
- { false, SERIALIZING_TRANSIENT, UPDATING }, //
- { false, SERIALIZING_TRANSIENT, SERIALIZING_TRANSIENT },//
- // { false, SERIALIZING_TRANSIENT, SERIALIZING_GHOST },
- // { false, SERIALIZING_TRANSIENT, SERIALIZING_PART_RESOLVED },
- // { false, SERIALIZING_TRANSIENT, SERIALIZING_RESOLVED }, //
- { false, SERIALIZING_TRANSIENT, VALUE },//
+ // { false, SERIALIZING_TRANSIENT, GHOST },//
+ // { false, SERIALIZING_TRANSIENT, NEW }, //
+ // // { false, SERIALIZING_TRANSIENT, PART_RESOLVED }, //
+ // { false, SERIALIZING_TRANSIENT, RESOLVED }, //
+ // { false, SERIALIZING_TRANSIENT, RESOLVING }, //
+ // // { false, SERIALIZING_TRANSIENT, RESOLVING_PART },
+ // { true, SERIALIZING_TRANSIENT, TRANSIENT }, //
+ // { false, SERIALIZING_TRANSIENT, DESTROYED }, //
+ // { false, SERIALIZING_TRANSIENT, UPDATING }, //
+ // { false, SERIALIZING_TRANSIENT, SERIALIZING_TRANSIENT },//
+ // // { false, SERIALIZING_TRANSIENT, SERIALIZING_GHOST },
+ // // { false, SERIALIZING_TRANSIENT, SERIALIZING_PART_RESOLVED
+ // },
+ // // { false, SERIALIZING_TRANSIENT, SERIALIZING_RESOLVED }, //
+ // { false, SERIALIZING_TRANSIENT, VALUE },//
// { false, SERIALIZING_PART_RESOLVED, GHOST }, { false,
// SERIALIZING_PART_RESOLVED, NEW }, { true,
@@ -194,20 +194,21 @@ public class ResolveState_IsValidToChang
// }, { false, SERIALIZING_PART_RESOLVED, SERIALIZING_RESOLVED
// }, { false, SERIALIZING_PART_RESOLVED, VALUE },
-// { false, SERIALIZING_RESOLVED, GHOST }, //
-// { false, SERIALIZING_RESOLVED, NEW }, //
-// // { false, SERIALIZING_RESOLVED, PART_RESOLVED }, //
-// { true, SERIALIZING_RESOLVED, RESOLVED }, //
-// { false, SERIALIZING_RESOLVED, RESOLVING }, //
-// // { false, SERIALIZING_RESOLVED, RESOLVING_PART }, //
-// { false, SERIALIZING_RESOLVED, TRANSIENT }, //
-// { false, SERIALIZING_RESOLVED, DESTROYED }, //
-// { false, SERIALIZING_RESOLVED, UPDATING }, //
-// { false, SERIALIZING_RESOLVED, SERIALIZING_TRANSIENT },
-// // { false, SERIALIZING_RESOLVED, SERIALIZING_GHOST },
-// // { false, SERIALIZING_RESOLVED, SERIALIZING_PART_RESOLVED },
-// { false, SERIALIZING_RESOLVED, SERIALIZING_RESOLVED }, //
-// { false, SERIALIZING_RESOLVED, VALUE },
+ // { false, SERIALIZING_RESOLVED, GHOST }, //
+ // { false, SERIALIZING_RESOLVED, NEW }, //
+ // // { false, SERIALIZING_RESOLVED, PART_RESOLVED }, //
+ // { true, SERIALIZING_RESOLVED, RESOLVED }, //
+ // { false, SERIALIZING_RESOLVED, RESOLVING }, //
+ // // { false, SERIALIZING_RESOLVED, RESOLVING_PART }, //
+ // { false, SERIALIZING_RESOLVED, TRANSIENT }, //
+ // { false, SERIALIZING_RESOLVED, DESTROYED }, //
+ // { false, SERIALIZING_RESOLVED, UPDATING }, //
+ // { false, SERIALIZING_RESOLVED, SERIALIZING_TRANSIENT },
+ // // { false, SERIALIZING_RESOLVED, SERIALIZING_GHOST },
+ // // { false, SERIALIZING_RESOLVED, SERIALIZING_PART_RESOLVED
+ // },
+ // { false, SERIALIZING_RESOLVED, SERIALIZING_RESOLVED }, //
+ // { false, SERIALIZING_RESOLVED, VALUE },
// { true, SERIALIZING_GHOST, GHOST }, { false,
// SERIALIZING_GHOST, NEW }, { false, SERIALIZING_GHOST,
@@ -232,7 +233,7 @@ public class ResolveState_IsValidToChang
{ false, VALUE, TRANSIENT }, //
{ false, VALUE, DESTROYED }, //
{ false, VALUE, UPDATING }, //
- { false, VALUE, SERIALIZING_TRANSIENT },
+ // { false, VALUE, SERIALIZING_TRANSIENT },
// { false, VALUE, SERIALIZING_GHOST },
// { false, VALUE, SERIALIZING_PART_RESOLVED },
// { false, VALUE, SERIALIZING_RESOLVED }, //
@@ -247,7 +248,7 @@ public class ResolveState_IsValidToChang
{ false, DESTROYED, TRANSIENT }, //
{ false, DESTROYED, DESTROYED }, //
{ false, DESTROYED, UPDATING }, //
- { false, DESTROYED, SERIALIZING_TRANSIENT },
+ // { false, DESTROYED, SERIALIZING_TRANSIENT },
// { false, DESTROYED, SERIALIZING_GHOST },
// { false, DESTROYED, SERIALIZING_PART_RESOLVED },
// { false, DESTROYED, SERIALIZING_RESOLVED }, //
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=1359404&r1=1359403&r2=1359404&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:13:41 2012
@@ -24,7 +24,6 @@ import static org.apache.isis.core.metam
import static org.apache.isis.core.metamodel.adapter.ResolveState.NEW;
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.SERIALIZING_TRANSIENT;
import static org.apache.isis.core.metamodel.adapter.ResolveState.TRANSIENT;
import static org.apache.isis.core.metamodel.adapter.ResolveState.UPDATING;
import static org.apache.isis.core.metamodel.adapter.ResolveState.VALUE;
@@ -44,22 +43,21 @@ public class ResolveState_RespondToChang
@Parameters
public static Collection<Object[]> data() {
- return Arrays.asList(new Object[][] {
- { true, GHOST }, //
- { false, NEW }, //
- // { true, PART_RESOLVED },
+ 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_TRANSIENT },
// { false, SERIALIZING_GHOST },
// { false, SERIALIZING_PART_RESOLVED },
- // { false, SERIALIZING_RESOLVED },
+ // { false, SERIALIZING_RESOLVED },
{ true, VALUE }, //
- });
+ });
}
private final boolean whetherIs;
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=1359404&r1=1359403&r2=1359404&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:13:41 2012
@@ -65,15 +65,15 @@ public class Memento implements Serializ
private final List<Oid> transientObjects = Lists.newArrayList();
- private Data state;
+ private Data data;
////////////////////////////////////////////////
// constructor, Encodeable
////////////////////////////////////////////////
- public Memento(final ObjectAdapter object) {
- state = object == null ? null : createData(object);
+ public Memento(final ObjectAdapter adapter) {
+ data = adapter == null ? null : createData(adapter);
if (LOG.isDebugEnabled()) {
LOG.debug("created memento for " + this);
}
@@ -84,80 +84,80 @@ public class Memento implements Serializ
// createData
////////////////////////////////////////////////
- private Data createData(final ObjectAdapter object) {
- if (object.getSpecification().isParentedOrFreeCollection()) {
- return createCollectionData(object);
+ private Data createData(final ObjectAdapter adapter) {
+ if (adapter.getSpecification().isParentedOrFreeCollection()) {
+ return createCollectionData(adapter);
} else {
- return createObjectData(object);
+ return createObjectData(adapter);
}
}
- private Data createCollectionData(final ObjectAdapter object) {
- final CollectionFacet facet = CollectionFacetUtils.getCollectionFacetFromSpec(object);
- final Data[] collData = new Data[facet.size(object)];
+ private Data createCollectionData(final ObjectAdapter adapter) {
+ final CollectionFacet facet = CollectionFacetUtils.getCollectionFacetFromSpec(adapter);
+ final Data[] collData = new Data[facet.size(adapter)];
int i = 0;
- for (final ObjectAdapter ref : facet.iterable(object)) {
+ for (final ObjectAdapter ref : facet.iterable(adapter)) {
collData[i++] = createReferenceData(ref);
}
- final String elementTypeSpecName = object.getSpecification().getFullIdentifier();
- return new CollectionData(object.getOid(), object.getResolveState(), elementTypeSpecName, collData);
+ final String elementTypeSpecName = adapter.getSpecification().getFullIdentifier();
+ return new CollectionData(adapter.getOid(), adapter.getResolveState(), elementTypeSpecName, collData);
}
private ObjectData createObjectData(final ObjectAdapter adapter) {
transientObjects.add(adapter.getOid());
final ObjectSpecification cls = adapter.getSpecification();
- final List<ObjectAssociation> fields = cls.getAssociations();
+ final List<ObjectAssociation> associations = cls.getAssociations();
final ObjectData data = new ObjectData(adapter.getOid(), adapter.getResolveState().name(), cls.getFullIdentifier());
- for (int i = 0; i < fields.size(); i++) {
- if (fields.get(i).isNotPersisted()) {
- if (fields.get(i).isOneToManyAssociation()) {
+ for (int i = 0; i < associations.size(); i++) {
+ if (associations.get(i).isNotPersisted()) {
+ if (associations.get(i).isOneToManyAssociation()) {
continue;
}
- if (fields.get(i).containsFacet(PropertyOrCollectionAccessorFacet.class) && !fields.get(i).containsFacet(PropertySetterFacet.class)) {
- LOG.debug("ignoring not-settable field " + fields.get(i).getName());
+ if (associations.get(i).containsFacet(PropertyOrCollectionAccessorFacet.class) && !associations.get(i).containsFacet(PropertySetterFacet.class)) {
+ LOG.debug("ignoring not-settable field " + associations.get(i).getName());
continue;
}
}
- createFieldData(adapter, data, fields.get(i));
+ createAssociationData(adapter, data, associations.get(i));
}
return data;
}
- private void createFieldData(final ObjectAdapter object, final ObjectData data, final ObjectAssociation field) {
- Object fieldData;
- if (field.isOneToManyAssociation()) {
- final ObjectAdapter coll = field.get(object);
- fieldData = createCollectionData(coll);
- } else if (field.getSpecification().isEncodeable()) {
- final EncodableFacet facet = field.getSpecification().getFacet(EncodableFacet.class);
- final ObjectAdapter value = field.get(object);
- fieldData = facet.toEncodedString(value);
- } else if (field.isOneToOneAssociation()) {
- final ObjectAdapter ref = ((OneToOneAssociation) field).get(object);
- fieldData = createReferenceData(ref);
+ private void createAssociationData(final ObjectAdapter adapter, final ObjectData data, final ObjectAssociation objectAssoc) {
+ Object assocData;
+ if (objectAssoc.isOneToManyAssociation()) {
+ final ObjectAdapter collAdapter = objectAssoc.get(adapter);
+ assocData = createCollectionData(collAdapter);
+ } else if (objectAssoc.getSpecification().isEncodeable()) {
+ final EncodableFacet facet = objectAssoc.getSpecification().getFacet(EncodableFacet.class);
+ final ObjectAdapter value = objectAssoc.get(adapter);
+ assocData = facet.toEncodedString(value);
+ } else if (objectAssoc.isOneToOneAssociation()) {
+ final ObjectAdapter referencedAdapter = ((OneToOneAssociation) objectAssoc).get(adapter);
+ assocData = createReferenceData(referencedAdapter);
} else {
- throw new UnknownTypeException(field);
+ throw new UnknownTypeException(objectAssoc);
}
- data.addField(field.getId(), fieldData);
+ data.addField(objectAssoc.getId(), assocData);
}
- private Data createReferenceData(final ObjectAdapter ref) {
- if (ref == null) {
+ private Data createReferenceData(final ObjectAdapter referencedAdapter) {
+ if (referencedAdapter == null) {
return null;
}
- final Oid refOid = ref.getOid();
+ final Oid refOid = referencedAdapter.getOid();
if (refOid == null) {
- return createStandaloneData(ref);
+ return createStandaloneData(referencedAdapter);
}
- if ((ref.getSpecification().isParented() || refOid.isTransient()) && !transientObjects.contains(refOid)) {
+ if ((referencedAdapter.getSpecification().isParented() || refOid.isTransient()) && !transientObjects.contains(refOid)) {
transientObjects.add(refOid);
- return createObjectData(ref);
+ return createObjectData(referencedAdapter);
}
- final String resolvedState = ref.getResolveState().name();
- final String specification = ref.getSpecification().getFullIdentifier();
+ final String resolvedState = referencedAdapter.getResolveState().name();
+ final String specification = referencedAdapter.getSpecification().getFullIdentifier();
return new Data(refOid, resolvedState, specification);
}
@@ -171,11 +171,11 @@ public class Memento implements Serializ
////////////////////////////////////////////////
public Oid getOid() {
- return state.getOid();
+ return data.getOid();
}
protected Data getData() {
- return state;
+ return data;
}
////////////////////////////////////////////////
@@ -183,40 +183,43 @@ public class Memento implements Serializ
////////////////////////////////////////////////
public ObjectAdapter recreateObject() {
- if (state == null) {
+ if (data == null) {
return null;
}
- final ObjectSpecification spec = getSpecificationLoader().loadSpecification(state.getClassName());
+ final ObjectSpecification spec = getSpecificationLoader().loadSpecification(data.getClassName());
ObjectAdapter adapter;
ResolveState targetState;
if (getOid().isTransient()) {
adapter = getHydrator().recreateAdapter(spec, getOid());
- targetState = ResolveState.SERIALIZING_TRANSIENT;
+ // was previously SERIALIZING_TRANSIENT; however #updateFieldsAndResolveState()
+ // seems to be written such that setting to TRANSIENT would also be ok.
+ targetState = ResolveState.TRANSIENT;
} else {
adapter = getHydrator().recreateAdapter(spec, getOid());
targetState = ResolveState.UPDATING;
}
if (adapter.getSpecification().isParentedOrFreeCollection()) {
- populateCollection(adapter, (CollectionData) state, targetState);
+ populateCollection(adapter, (CollectionData) data, targetState);
} else {
- updateObject(adapter, state, targetState);
+ updateObject(adapter, data, targetState);
}
+
if (LOG.isDebugEnabled()) {
LOG.debug("recreated object " + adapter.getOid());
}
return adapter;
}
- private void populateCollection(final ObjectAdapter collection, final CollectionData state, final ResolveState targetState) {
+ private void populateCollection(final ObjectAdapter collectionAdapter, final CollectionData state, final ResolveState targetState) {
final ObjectAdapter[] initData = new ObjectAdapter[state.elements.length];
int i = 0;
for (final Data elementData : state.elements) {
initData[i++] = recreateReference(elementData);
}
- final CollectionFacet facet = collection.getSpecification().getFacet(CollectionFacet.class);
- facet.init(collection, initData);
+ final CollectionFacet facet = collectionAdapter.getSpecification().getFacet(CollectionFacet.class);
+ facet.init(collectionAdapter, initData);
}
private ObjectAdapter recreateReference(final Data data) {
@@ -230,18 +233,17 @@ public class Memento implements Serializ
if (oid == null) {
return null;
}
- ObjectAdapter ref;
- ref = getHydrator().recreateAdapter(spec, oid);
+ 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 (ref.getResolveState().isValidToChangeTo(resolveState)) {
- ref.changeState(resolveState);
+ if (referencedAdapter.getResolveState().isValidToChangeTo(resolveState)) {
+ referencedAdapter.changeState(resolveState);
}
- updateObject(ref, data, resolveState);
+ updateObject(referencedAdapter, data, resolveState);
}
}
- return ref;
+ return referencedAdapter;
}
}
@@ -258,39 +260,37 @@ public class Memento implements Serializ
* if the memento was created from different logical object to
* the one specified (i.e. its oid differs).
*/
- public void updateObject(final ObjectAdapter object) {
- updateObject(object, state, ResolveState.RESOLVING);
+ public void updateObject(final ObjectAdapter adapter) {
+ updateObject(adapter, data, ResolveState.RESOLVING);
}
- private void updateObject(final ObjectAdapter object, final Data state, final ResolveState resolveState) {
- final Object oid = object.getOid();
- if (oid != null && !oid.equals(state.getOid())) {
- throw new IllegalArgumentException("This memento can only be used to update the ObjectAdapter with the Oid " + state.getOid() + " but is " + oid);
-
- } else {
- if (!(state instanceof ObjectData)) {
- throw new IsisException("Expected an ObjectData but got " + state.getClass());
- } else {
- updateObject(object, resolveState, state);
- }
- if (LOG.isDebugEnabled()) {
- LOG.debug("object updated " + object.getOid());
- }
+ private void updateObject(final ObjectAdapter adapter, final Data data, final ResolveState targetState) {
+ final Object oid = adapter.getOid();
+ if (oid != null && !oid.equals(data.getOid())) {
+ throw new IllegalArgumentException("This memento can only be used to update the ObjectAdapter with the Oid " + data.getOid() + " but is " + oid);
+ }
+ if (!(data instanceof ObjectData)) {
+ throw new IsisException("Expected an ObjectData but got " + data.getClass());
+ }
+
+ updateFieldsAndResolveState(adapter, data, targetState);
+
+ if (LOG.isDebugEnabled()) {
+ LOG.debug("object updated " + adapter.getOid());
}
-
}
- private void updateObject(final ObjectAdapter objectAdapter, final ResolveState targetResolveState, final Data state) {
- if (objectAdapter.getResolveState().isValidToChangeTo(targetResolveState)) {
- PersistorUtil.startStateTransition(objectAdapter, targetResolveState);
- updateFields(objectAdapter, state);
+ private void updateFieldsAndResolveState(final ObjectAdapter objectAdapter, final Data data, final ResolveState targetState) {
+ if (objectAdapter.getResolveState().isValidToChangeTo(targetState)) {
+ PersistorUtil.startStateTransition(objectAdapter, targetState);
+ updateFields(objectAdapter, data);
PersistorUtil.endStateTransition(objectAdapter);
- } else if (objectAdapter.isTransient() && targetResolveState == ResolveState.TRANSIENT) {
- updateFields(objectAdapter, state);
+ } else if (objectAdapter.isTransient() && targetState == ResolveState.TRANSIENT) {
+ updateFields(objectAdapter, data);
} else if (objectAdapter.isParented()) {
- updateFields(objectAdapter, state);
+ updateFields(objectAdapter, data);
} else {
- final ObjectData od = (ObjectData) state;
+ final ObjectData od = (ObjectData) data;
if (od.containsField()) {
throw new IsisException("Resolve state (for " + objectAdapter + ") inconsistent with fact that data exists for fields");
}
@@ -314,24 +314,24 @@ public class Memento implements Serializ
}
}
- private void updateField(final ObjectAdapter object, final ObjectData od, final ObjectAssociation field) {
- final Object fieldData = od.getEntry(field.getId());
+ private void updateField(final ObjectAdapter objectAdapter, final ObjectData objectData, final ObjectAssociation objectAssoc) {
+ final Object fieldData = objectData.getEntry(objectAssoc.getId());
- if (field.isOneToManyAssociation()) {
- updateOneToManyAssociation(object, (OneToManyAssociation) field, (CollectionData) fieldData);
+ if (objectAssoc.isOneToManyAssociation()) {
+ updateOneToManyAssociation(objectAdapter, (OneToManyAssociation) objectAssoc, (CollectionData) fieldData);
- } else if (field.getSpecification().containsFacet(EncodableFacet.class)) {
- final EncodableFacet facet = field.getSpecification().getFacet(EncodableFacet.class);
+ } else if (objectAssoc.getSpecification().containsFacet(EncodableFacet.class)) {
+ final EncodableFacet facet = objectAssoc.getSpecification().getFacet(EncodableFacet.class);
final ObjectAdapter value = facet.fromEncodedString((String) fieldData);
- ((OneToOneAssociation) field).initAssociation(object, value);
+ ((OneToOneAssociation) objectAssoc).initAssociation(objectAdapter, value);
- } else if (field.isOneToOneAssociation()) {
- updateOneToOneAssociation(object, (OneToOneAssociation) field, (Data) fieldData);
+ } else if (objectAssoc.isOneToOneAssociation()) {
+ updateOneToOneAssociation(objectAdapter, (OneToOneAssociation) objectAssoc, (Data) fieldData);
}
}
- private void updateOneToManyAssociation(final ObjectAdapter object, final OneToManyAssociation field, final CollectionData collectionData) {
- final ObjectAdapter collection = field.get(object);
+ private void updateOneToManyAssociation(final ObjectAdapter objectAdapter, final OneToManyAssociation otma, final CollectionData collectionData) {
+ final ObjectAdapter collection = otma.get(objectAdapter);
final CollectionFacet facet = CollectionFacetUtils.getCollectionFacetFromSpec(collection);
final List<ObjectAdapter> original = Lists.newArrayList();
for (final ObjectAdapter adapter : facet.iterable(collection)) {
@@ -340,35 +340,35 @@ public class Memento implements Serializ
final Data[] elements = collectionData.elements;
for (final Data data : elements) {
- final ObjectAdapter element = recreateReference(data);
- if (!facet.contains(collection, element)) {
+ final ObjectAdapter elementAdapter = recreateReference(data);
+ if (!facet.contains(collection, elementAdapter)) {
if (LOG.isDebugEnabled()) {
- LOG.debug(" association " + field + " changed, added " + element.getOid());
+ LOG.debug(" association " + otma + " changed, added " + elementAdapter.getOid());
}
- field.addElement(object, element);
+ otma.addElement(objectAdapter, elementAdapter);
} else {
- field.removeElement(object, element);
+ otma.removeElement(objectAdapter, elementAdapter);
}
}
for (final ObjectAdapter element : original) {
if (LOG.isDebugEnabled()) {
- LOG.debug(" association " + field + " changed, removed " + element.getOid());
+ LOG.debug(" association " + otma + " changed, removed " + element.getOid());
}
- field.removeElement(object, element);
+ otma.removeElement(objectAdapter, element);
}
}
- private void updateOneToOneAssociation(final ObjectAdapter object, final OneToOneAssociation field, final Data fieldData) {
- if (fieldData == null) {
- field.initAssociation(object, null);
+ private void updateOneToOneAssociation(final ObjectAdapter objectAdapter, final OneToOneAssociation otoa, final Data assocData) {
+ if (assocData == null) {
+ otoa.initAssociation(objectAdapter, null);
} else {
- final ObjectAdapter ref = recreateReference(fieldData);
- if (field.get(object) != ref) {
+ final ObjectAdapter ref = recreateReference(assocData);
+ if (otoa.get(objectAdapter) != ref) {
if (LOG.isDebugEnabled()) {
- LOG.debug(" association " + field + " changed to " + ref.getOid());
+ LOG.debug(" association " + otoa + " changed to " + ref.getOid());
}
- field.initAssociation(object, ref);
+ otoa.initAssociation(objectAdapter, ref);
}
}
}
@@ -378,11 +378,11 @@ public class Memento implements Serializ
////////////////////////////////////////////////
public void encodedData(final DataOutputStreamExtended outputImpl) throws IOException {
- outputImpl.writeEncodable(state);
+ outputImpl.writeEncodable(data);
}
public void restore(final DataInputStreamExtended input) throws IOException {
- state = input.readEncodable(Data.class);
+ data = input.readEncodable(Data.class);
}
@@ -399,12 +399,12 @@ public class Memento implements Serializ
@Override
public String toString() {
- return "[" + (state == null ? null : state.getClassName() + "/" + state.getOid() + state) + "]";
+ return "[" + (data == null ? null : data.getClassName() + "/" + data.getOid() + data) + "]";
}
public void debug(final DebugBuilder debug) {
- if (state != null) {
- state.debug(debug);
+ if (data != null) {
+ data.debug(debug);
}
}