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 ...