You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@isis.apache.org by ah...@apache.org on 2018/09/28 13:58:46 UTC

[isis] 04/07: ISIS-1976: minor: simplify OA for viewmodel creation when via mamentoString

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

ahuber pushed a commit to branch v2
in repository https://gitbox.apache.org/repos/asf/isis.git

commit c18fb53ae08d68cd8399d96f26d92590455e5804
Author: Andi Huber <ah...@apache.org>
AuthorDate: Fri Sep 28 11:07:11 2018 +0200

    ISIS-1976: minor: simplify OA for viewmodel creation when via
    mamentoString
    
    Task-Url: https://issues.apache.org/jira/browse/ISIS-1976
---
 .../isis/core/metamodel/adapter/ObjectAdapterProvider.java   | 12 +++---------
 ...ecreatableObjectFacetDeclarativeInitializingAbstract.java |  7 +------
 .../persistence/adaptermanager/ObjectAdapterContext.java     |  6 +++---
 .../ObjectAdapterContext_ObjectAdapterProvider.java          |  5 ++---
 4 files changed, 9 insertions(+), 21 deletions(-)

diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/adapter/ObjectAdapterProvider.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/adapter/ObjectAdapterProvider.java
index 4edfbee..8ed331c 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/adapter/ObjectAdapterProvider.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/adapter/ObjectAdapterProvider.java
@@ -21,14 +21,12 @@ package org.apache.isis.core.metamodel.adapter;
 import static org.apache.isis.commons.internal.base._With.mapIfPresentElse;
 
 import java.util.List;
-import java.util.function.Function;
 
 import javax.annotation.Nullable;
 
 import org.apache.isis.applib.annotation.Programmatic;
 import org.apache.isis.core.metamodel.adapter.oid.Oid;
 import org.apache.isis.core.metamodel.adapter.oid.RootOid;
-import org.apache.isis.core.metamodel.spec.ObjectSpecId;
 import org.apache.isis.core.metamodel.spec.ObjectSpecification;
 import org.apache.isis.core.metamodel.spec.feature.OneToManyAssociation;
 
@@ -78,9 +76,7 @@ public interface ObjectAdapterProvider {
     
     ObjectSpecification specificationForViewModel(Object viewModelPojo);
 
-    ObjectAdapter adapterForViewModel(
-            Object viewModelPojo, 
-            Function<ObjectSpecId, RootOid> rootOidFactory);
+    ObjectAdapter adapterForViewModel(Object viewModelPojo, String mementoStr);
     
 
     // -- DOMAIN OBJECT CREATION SUPPORT
@@ -138,10 +134,8 @@ public interface ObjectAdapterProvider {
         }
 
         @Programmatic
-        default ObjectAdapter adapterForViewModel(
-                final Object viewModelPojo, 
-                final Function<ObjectSpecId, RootOid> rootOidFactory) {
-            return getObjectAdapterProvider().adapterForViewModel(viewModelPojo, rootOidFactory);
+        default ObjectAdapter adapterForViewModel(final Object viewModelPojo, final String mementoString) {
+            return getObjectAdapterProvider().adapterForViewModel(viewModelPojo, mementoString);
         }
         
         @Programmatic
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/recreatable/RecreatableObjectFacetDeclarativeInitializingAbstract.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/recreatable/RecreatableObjectFacetDeclarativeInitializingAbstract.java
index edcf474..0c74be9 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/recreatable/RecreatableObjectFacetDeclarativeInitializingAbstract.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/recreatable/RecreatableObjectFacetDeclarativeInitializingAbstract.java
@@ -27,13 +27,11 @@ import org.apache.isis.commons.internal.memento._Mementos;
 import org.apache.isis.commons.internal.memento._Mementos.SerializingAdapter;
 import org.apache.isis.core.metamodel.adapter.ObjectAdapter;
 import org.apache.isis.core.metamodel.adapter.ObjectAdapterProvider;
-import org.apache.isis.core.metamodel.adapter.oid.Oid;
 import org.apache.isis.core.metamodel.consent.InteractionInitiatedBy;
 import org.apache.isis.core.metamodel.facetapi.FacetHolder;
 import org.apache.isis.core.metamodel.facets.PostConstructMethodCache;
 import org.apache.isis.core.metamodel.facets.properties.update.modify.PropertySetterFacet;
 import org.apache.isis.core.metamodel.services.ServicesInjector;
-import org.apache.isis.core.metamodel.spec.ObjectSpecId;
 import org.apache.isis.core.metamodel.spec.ObjectSpecification;
 import org.apache.isis.core.metamodel.spec.feature.Contributed;
 import org.apache.isis.core.metamodel.spec.feature.OneToOneAssociation;
@@ -65,10 +63,7 @@ extends RecreatableObjectFacetAbstract {
 
         final Set<String> mementoKeys = memento.keySet();
 
-        final ObjectAdapter viewModelAdapter = adapterProvider.adapterForViewModel(
-                viewModelPojo, 
-                (ObjectSpecId objectSpecId)->
-                    Oid.Factory.viewmodelOf(objectSpecId, mementoStr) );
+        final ObjectAdapter viewModelAdapter = adapterProvider.adapterForViewModel(viewModelPojo, mementoStr);
                     
 
         final ObjectSpecification spec = viewModelAdapter.getSpecification();
diff --git a/core/runtime/src/main/java/org/apache/isis/core/runtime/system/persistence/adaptermanager/ObjectAdapterContext.java b/core/runtime/src/main/java/org/apache/isis/core/runtime/system/persistence/adaptermanager/ObjectAdapterContext.java
index 53748ba..b360f00 100644
--- a/core/runtime/src/main/java/org/apache/isis/core/runtime/system/persistence/adaptermanager/ObjectAdapterContext.java
+++ b/core/runtime/src/main/java/org/apache/isis/core/runtime/system/persistence/adaptermanager/ObjectAdapterContext.java
@@ -19,7 +19,6 @@
 package org.apache.isis.core.runtime.system.persistence.adaptermanager;
 
 import java.util.Objects;
-import java.util.function.Function;
 
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
@@ -254,11 +253,12 @@ final public class ObjectAdapterContext {
     // ------------------------------------------------------------------------------------------------
 
     // package private
-    ObjectAdapter adapterForViewModel(Object viewModelPojo, Function<ObjectSpecId, RootOid> rootOidFactory) {
+    ObjectAdapter adapterForViewModel(Object viewModelPojo, String mementoString) {
+       
         final ObjectSpecification objectSpecification = 
                 specificationLoader.loadSpecification(viewModelPojo.getClass());
         final ObjectSpecId objectSpecId = objectSpecification.getSpecId();
-        final RootOid newRootOid = rootOidFactory.apply(objectSpecId);
+        final RootOid newRootOid = Oid.Factory.viewmodelOf(objectSpecId, mementoString);
 
         final ObjectAdapter viewModelAdapter = recreatePojo(newRootOid, viewModelPojo);
         return viewModelAdapter;
diff --git a/core/runtime/src/main/java/org/apache/isis/core/runtime/system/persistence/adaptermanager/ObjectAdapterContext_ObjectAdapterProvider.java b/core/runtime/src/main/java/org/apache/isis/core/runtime/system/persistence/adaptermanager/ObjectAdapterContext_ObjectAdapterProvider.java
index 5f1c1a8..ff4fff2 100644
--- a/core/runtime/src/main/java/org/apache/isis/core/runtime/system/persistence/adaptermanager/ObjectAdapterContext_ObjectAdapterProvider.java
+++ b/core/runtime/src/main/java/org/apache/isis/core/runtime/system/persistence/adaptermanager/ObjectAdapterContext_ObjectAdapterProvider.java
@@ -22,7 +22,6 @@ import static org.apache.isis.commons.internal.base._With.requires;
 
 import java.util.List;
 import java.util.UUID;
-import java.util.function.Function;
 import java.util.stream.Collectors;
 
 import org.slf4j.Logger;
@@ -120,8 +119,8 @@ class ObjectAdapterContext_ObjectAdapterProvider implements ObjectAdapterProvide
     }
 
     @Override
-    public ObjectAdapter adapterForViewModel(Object viewModelPojo, Function<ObjectSpecId, RootOid> rootOidFactory) {
-        return objectAdapterContext.adapterForViewModel(viewModelPojo, rootOidFactory);
+    public ObjectAdapter adapterForViewModel(Object viewModelPojo, String mementoString) {
+        return objectAdapterContext.adapterForViewModel(viewModelPojo, mementoString);
     }
     
     // -- DOMAIN OBJECT CREATION SUPPORT