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) {