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 2020/06/05 09:57:42 UTC

[isis] branch master updated: ISIS-2340: move object loading logic from utility to RootOid

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

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


The following commit(s) were added to refs/heads/master by this push:
     new f4b9e97  ISIS-2340: move object loading logic from utility to RootOid
f4b9e97 is described below

commit f4b9e97a330ce763f7a3afaad27d722312c77830
Author: Andi Huber <ah...@apache.org>
AuthorDate: Fri Jun 5 11:57:30 2020 +0200

    ISIS-2340: move object loading logic from utility to RootOid
---
 .../isis/core/metamodel/adapter/oid/RootOid.java     | 20 ++++++++++++++++++++
 .../isis/core/metamodel/spec/ManagedObject.java      | 17 -----------------
 .../restfulobjects/rendering/IResourceContext.java   |  2 +-
 .../viewer/resources/ResourceAbstract.java           |  2 +-
 .../wicket/model/models/PageParameterUtil.java       |  2 +-
 .../ui/components/tree/IsisToWicketTreeAdapter.java  |  2 +-
 .../services/mementos/ObjectMementoLegacy.java       |  2 +-
 7 files changed, 25 insertions(+), 22 deletions(-)

diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/adapter/oid/RootOid.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/adapter/oid/RootOid.java
index 712d128..cb263c5 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/adapter/oid/RootOid.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/adapter/oid/RootOid.java
@@ -21,8 +21,14 @@ package org.apache.isis.core.metamodel.adapter.oid;
 
 import org.apache.isis.applib.services.bookmark.Bookmark;
 import org.apache.isis.core.commons.internal.codec._UrlDecoderUtil;
+import org.apache.isis.core.metamodel.objectmanager.load.ObjectLoader;
+import org.apache.isis.core.metamodel.spec.ManagedObject;
+import org.apache.isis.core.metamodel.specloader.SpecificationLoader;
+import org.apache.isis.core.metamodel.specloader.SpecificationLoaderDefault;
 import org.apache.isis.schema.common.v2.OidDto;
 
+import lombok.val;
+
 public interface RootOid extends Oid {
 
     String getIdentifier();
@@ -42,6 +48,20 @@ public interface RootOid extends Oid {
         return Oid.unmarshaller().unmarshal(oidStr, RootOid.class);
     }
 
+    // -- OBJECT LOADING
+    
+    default public ManagedObject loadObject(SpecificationLoader specificationLoader) {
+        val mmc = ((SpecificationLoaderDefault)specificationLoader).getMetaModelContext();
+
+        val spec = specificationLoader.loadSpecification(this.getObjectSpecId());
+        val objectId = this.getIdentifier();
+
+        val objectLoadRequest = ObjectLoader.Request.of(spec, objectId);
+        val managedObject = mmc.getObjectManager().loadObject(objectLoadRequest);
+        
+        return managedObject;
+    }
+
     
 
 
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/spec/ManagedObject.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/spec/ManagedObject.java
index 4bc1963..2820f7e 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/spec/ManagedObject.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/spec/ManagedObject.java
@@ -31,9 +31,7 @@ import org.apache.isis.core.metamodel.adapter.oid.RootOid;
 import org.apache.isis.core.metamodel.facets.object.entity.EntityFacet;
 import org.apache.isis.core.metamodel.objectmanager.ObjectManager;
 import org.apache.isis.core.metamodel.objectmanager.create.ObjectCreator;
-import org.apache.isis.core.metamodel.objectmanager.load.ObjectLoader;
 import org.apache.isis.core.metamodel.specloader.SpecificationLoader;
-import org.apache.isis.core.metamodel.specloader.SpecificationLoaderDefault;
 
 import lombok.EqualsAndHashCode;
 import lombok.Getter;
@@ -237,21 +235,6 @@ public interface ManagedObject {
 
     // -- DEPRECATIONS (REFACTORING)
 
-    // move this to ObjectManager?
-    static ManagedObject _adapterOfRootOid(SpecificationLoader specificationLoader, RootOid rootOid) {
-
-        val mmc = ((SpecificationLoaderDefault)specificationLoader).getMetaModelContext();
-
-        val spec = specificationLoader.loadSpecification(rootOid.getObjectSpecId());
-        val objectId = rootOid.getIdentifier();
-
-        val objectLoadRequest = ObjectLoader.Request.of(spec, objectId);
-        val managedObject = mmc.getObjectManager().loadObject(objectLoadRequest);
-
-        return managedObject;
-
-    }
-
     static ManagedObject _newTransientInstance(ObjectSpecification spec) {
 
         if(spec == null) {
diff --git a/viewers/restfulobjects/rendering/src/main/java/org/apache/isis/viewer/restfulobjects/rendering/IResourceContext.java b/viewers/restfulobjects/rendering/src/main/java/org/apache/isis/viewer/restfulobjects/rendering/IResourceContext.java
index ff7d8de..b022ef6 100644
--- a/viewers/restfulobjects/rendering/src/main/java/org/apache/isis/viewer/restfulobjects/rendering/IResourceContext.java
+++ b/viewers/restfulobjects/rendering/src/main/java/org/apache/isis/viewer/restfulobjects/rendering/IResourceContext.java
@@ -90,7 +90,7 @@ public interface IResourceContext {
     default Optional<ManagedObject> getObjectAdapterForOidFromHref(String oidFromHref) {
         String oidStrUnencoded = UrlDecoderUtils.urlDecode(oidFromHref);
         val rootOid = RootOid.deString(oidStrUnencoded);
-        return Optional.ofNullable(ManagedObject._adapterOfRootOid(getSpecificationLoader(), rootOid));
+        return Optional.ofNullable(rootOid.loadObject(getSpecificationLoader()));
     }
 
 }
diff --git a/viewers/restfulobjects/viewer/src/main/java/org/apache/isis/viewer/restfulobjects/viewer/resources/ResourceAbstract.java b/viewers/restfulobjects/viewer/src/main/java/org/apache/isis/viewer/restfulobjects/viewer/resources/ResourceAbstract.java
index 8dd8885..ee3d49f 100644
--- a/viewers/restfulobjects/viewer/src/main/java/org/apache/isis/viewer/restfulobjects/viewer/resources/ResourceAbstract.java
+++ b/viewers/restfulobjects/viewer/src/main/java/org/apache/isis/viewer/restfulobjects/viewer/resources/ResourceAbstract.java
@@ -139,7 +139,7 @@ public abstract class ResourceAbstract {
         final String oidStrUnencoded = Oid.marshaller().joinAsOid(domainType, instanceIdUnencoded);
         val rootOid = RootOid.deString(oidStrUnencoded);
         
-        return Optional.ofNullable(ManagedObject._adapterOfRootOid(getSpecificationLoader(), rootOid))
+        return Optional.ofNullable(rootOid.loadObject(getSpecificationLoader()))
                 .orElseThrow(()->RestfulObjectsApplicationException.createWithMessage(HttpStatusCode.NOT_FOUND, 
                         "Could not determine adapter for OID: '%s:%s'", domainType, instanceIdUnencoded));
     }
diff --git a/viewers/wicket/model/src/main/java/org/apache/isis/viewer/wicket/model/models/PageParameterUtil.java b/viewers/wicket/model/src/main/java/org/apache/isis/viewer/wicket/model/models/PageParameterUtil.java
index b78b873..effb51b 100644
--- a/viewers/wicket/model/src/main/java/org/apache/isis/viewer/wicket/model/models/PageParameterUtil.java
+++ b/viewers/wicket/model/src/main/java/org/apache/isis/viewer/wicket/model/models/PageParameterUtil.java
@@ -226,7 +226,7 @@ public class PageParameterUtil {
 
         try {
             val rootOid = RootOid.deStringEncoded(encoded);
-            return ManagedObject._adapterOfRootOid(specificationLoader, rootOid);
+            return rootOid.loadObject(specificationLoader);
         } catch (final Exception e) {
             return null;
         }
diff --git a/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/tree/IsisToWicketTreeAdapter.java b/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/tree/IsisToWicketTreeAdapter.java
index 856fc2a..afdb817 100644
--- a/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/tree/IsisToWicketTreeAdapter.java
+++ b/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/tree/IsisToWicketTreeAdapter.java
@@ -415,7 +415,7 @@ class IsisToWicketTreeAdapter {
         protected TreeModel load() {
 
             val rootOid = id;
-            val objAdapter = ManagedObject._adapterOfRootOid(commonContext.getSpecificationLoader(), rootOid);
+            val objAdapter = rootOid.loadObject(commonContext.getSpecificationLoader()); 
             if(objAdapter==null) {
                 throw new NoSuchElementException(
                         String.format("Tree creation: could not recreate TreeModel from Oid: '%s'", id));
diff --git a/viewers/wicket/viewer/src/main/java/org/apache/isis/viewer/wicket/viewer/services/mementos/ObjectMementoLegacy.java b/viewers/wicket/viewer/src/main/java/org/apache/isis/viewer/wicket/viewer/services/mementos/ObjectMementoLegacy.java
index c1a58bb..4ad12d9 100644
--- a/viewers/wicket/viewer/src/main/java/org/apache/isis/viewer/wicket/viewer/services/mementos/ObjectMementoLegacy.java
+++ b/viewers/wicket/viewer/src/main/java/org/apache/isis/viewer/wicket/viewer/services/mementos/ObjectMementoLegacy.java
@@ -225,7 +225,7 @@ final class ObjectMementoLegacy implements Serializable {
                 try {
 
                     log.debug("lookup by rootOid [{}]", rootOid);
-                    return ManagedObject._adapterOfRootOid(specificationLoader, rootOid);
+                    return rootOid.loadObject(specificationLoader);
 
                 } finally {
                     // possibly out-dated insight ...