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 08:41:24 UTC
[isis] branch master updated: ISIS-2340: simplify adapter creation
from OidDto
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 ea669d3 ISIS-2340: simplify adapter creation from OidDto
ea669d3 is described below
commit ea669d39580698a5b6ad88dac6a5711d021326a4
Author: Andi Huber <ah...@apache.org>
AuthorDate: Fri Jun 5 10:40:58 2020 +0200
ISIS-2340: simplify adapter creation from OidDto
---
.../java/org/apache/isis/core/metamodel/adapter/oid/Oid.java | 11 +++++++++--
.../command/CommandExecutorServiceDefault.java | 8 +-------
2 files changed, 10 insertions(+), 9 deletions(-)
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/adapter/oid/Oid.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/adapter/oid/Oid.java
index 0a640e1..28cb756 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/adapter/oid/Oid.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/adapter/oid/Oid.java
@@ -25,6 +25,7 @@ import org.apache.isis.applib.annotation.Value;
import org.apache.isis.applib.services.bookmark.Bookmark;
import org.apache.isis.core.metamodel.spec.ObjectSpecId;
import org.apache.isis.core.metamodel.spec.feature.OneToManyAssociation;
+import org.apache.isis.schema.common.v2.OidDto;
/**
@@ -90,13 +91,19 @@ public interface Oid extends Serializable {
return Oid_Value.INSTANCE;
}
- public static RootOid ofBookmark(Bookmark bookmark) {
+ public static RootOid ofBookmark(final Bookmark bookmark) {
return Oid_Root.of(
ObjectSpecId.of(bookmark.getObjectType()),
bookmark.getIdentifier());
}
+
+ public static RootOid ofDto(final OidDto oid) {
+ return Oid_Root.of(
+ ObjectSpecId.of(oid.getType()),
+ oid.getId());
+ }
- public static RootOid root(ObjectSpecId objectSpecId, String identifier) {
+ public static RootOid root(final ObjectSpecId objectSpecId, final String identifier) {
return Oid_Root.of(objectSpecId, identifier);
}
diff --git a/core/runtimeservices/src/main/java/org/apache/isis/core/runtimeservices/command/CommandExecutorServiceDefault.java b/core/runtimeservices/src/main/java/org/apache/isis/core/runtimeservices/command/CommandExecutorServiceDefault.java
index 1d01192..68fb7a0 100644
--- a/core/runtimeservices/src/main/java/org/apache/isis/core/runtimeservices/command/CommandExecutorServiceDefault.java
+++ b/core/runtimeservices/src/main/java/org/apache/isis/core/runtimeservices/command/CommandExecutorServiceDefault.java
@@ -362,7 +362,7 @@ public class CommandExecutorServiceDefault implements CommandExecutorService {
return ManagedObject.unspecified();
}
if(pojo instanceof OidDto) {
- return adapterFor((OidDto)pojo);
+ return adapterFor(Oid.Factory.ofDto((OidDto)pojo));
}
if(pojo instanceof RootOid) {
return adapterFor((RootOid) pojo);
@@ -371,12 +371,6 @@ public class CommandExecutorServiceDefault implements CommandExecutorService {
return ManagedObject.of(getSpecificationLoader()::loadSpecification, pojo);
}
- private ManagedObject adapterFor(final OidDto oid) {
- val oidStr = Oid.marshaller().joinAsOid(oid.getType(), oid.getId());
- val rootOid = Oid.unmarshaller().unmarshal(oidStr, RootOid.class);
- return adapterFor(rootOid);
- }
-
private ManagedObject adapterFor(final RootOid oid) {
val objectSpec = specificationLoader.loadSpecification(oid.getObjectSpecId());
val loadRequest = ObjectLoader.Request.of(objectSpec, oid.getIdentifier());