This is an automated email from the ASF dual-hosted git repository.

ahuber pushed a commit to branch ISIS-1976-rethink-object-adapters
in repository https://gitbox.apache.org/repos/asf/isis.git

commit afd1fb976912dff321ee1dd105cbcc5e6df33be9
Author: Andi Huber <ahu...@apache.org>
AuthorDate: Wed Sep 5 16:06:51 2018 +0200

    ISIS-1976: let JavaCollectionFacet no longer change OA's pojo
    
    Task-Url: https://issues.apache.org/jira/browse/ISIS-1976
---
 .../facets/collections/javautilcollection/JavaArrayFacet.java    | 3 +--
 .../collections/javautilcollection/JavaCollectionFacet.java      | 9 ---------
 .../adaptermanager/ObjectAdapterContext_MementoSupport.java      | 6 +++---
 3 files changed, 4 insertions(+), 14 deletions(-)

diff --git 
a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/collections/javautilcollection/JavaArrayFacet.java
 
b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/collections/javautilcollection/JavaArrayFacet.java
index 94ffea2..5a86a12 100644
--- 
a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/collections/javautilcollection/JavaArrayFacet.java
+++ 
b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/collections/javautilcollection/JavaArrayFacet.java
@@ -49,8 +49,7 @@ public class JavaArrayFacet extends CollectionFacetAbstract {
         for (int i = 0; i < length; i++) {
             array[i] = initData[i].getObject();
         }
-        arrayAdapter.friend().replacePojo(array);
-        return arrayAdapter;
+        return arrayAdapter.withPojo(array);  
     }
 
     /**
diff --git 
a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/collections/javautilcollection/JavaCollectionFacet.java
 
b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/collections/javautilcollection/JavaCollectionFacet.java
index a1fe10d..63a5f55 100644
--- 
a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/collections/javautilcollection/JavaCollectionFacet.java
+++ 
b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/collections/javautilcollection/JavaCollectionFacet.java
@@ -21,7 +21,6 @@ package 
org.apache.isis.core.metamodel.facets.collections.javautilcollection;
 
 import java.util.Collection;
 import java.util.Iterator;
-import java.util.function.Function;
 
 import com.google.common.collect.Collections2;
 
@@ -79,12 +78,4 @@ public class JavaCollectionFacet extends 
CollectionFacetAbstract {
         return (Collection<? super Object>) collectionAdapter.getObject();
     }
 
-    // //////////////////////////////////////////////////////////////////////
-    // Dependencies (from constructor)
-    // //////////////////////////////////////////////////////////////////////
-
-    private ObjectAdapterProvider getObjectAdapterProvider() {
-        return adapterProvider;
-    }
-
 }
diff --git 
a/core/runtime/src/main/java/org/apache/isis/core/runtime/system/persistence/adaptermanager/ObjectAdapterContext_MementoSupport.java
 
b/core/runtime/src/main/java/org/apache/isis/core/runtime/system/persistence/adaptermanager/ObjectAdapterContext_MementoSupport.java
index acb2e11..beaadae 100644
--- 
a/core/runtime/src/main/java/org/apache/isis/core/runtime/system/persistence/adaptermanager/ObjectAdapterContext_MementoSupport.java
+++ 
b/core/runtime/src/main/java/org/apache/isis/core/runtime/system/persistence/adaptermanager/ObjectAdapterContext_MementoSupport.java
@@ -74,7 +74,7 @@ class ObjectAdapterContext_MementoSupport implements 
MementoRecreateObjectSuppor
 
             final Object recreatedPojo = 
persistenceSession.instantiateAndInjectServices(spec);
             adapter = objectAdapterContext.addRecreatedPojoToCache(oid, 
recreatedPojo);
-            populateCollection(adapter, (CollectionData) data);
+            adapter = populateCollection(adapter, (CollectionData) data);
 
         } else {
             Assert.assertTrue("oid must be a RootOid representing an object 
because spec is not a collection and cannot be a value", oid instanceof 
RootOid);
@@ -138,14 +138,14 @@ class ObjectAdapterContext_MementoSupport implements 
MementoRecreateObjectSuppor
         }
     }
     
-    private void populateCollection(final ObjectAdapter collectionAdapter, 
final CollectionData state) {
+    private ObjectAdapter populateCollection(final ObjectAdapter 
collectionAdapter, final CollectionData state) {
         final ObjectAdapter[] initData = new 
ObjectAdapter[state.getElements().length];
         int i = 0;
         for (final Data elementData : state.getElements()) {
             initData[i++] = recreateReference(elementData);
         }
         final CollectionFacet facet = 
collectionAdapter.getSpecification().getFacet(CollectionFacet.class);
-        facet.init(collectionAdapter, initData);
+        return facet.init(collectionAdapter, initData);
     }
     
     private void updateFieldsAndResolveState(final ObjectAdapter 
objectAdapter, final Data data) {

Reply via email to