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/26 10:53:09 UTC
[isis] 04/06: ISIS-1976: Make OidMarshaller an interface,
then split into 2 interfaces
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 af4f02e69ae4d9bbdae55a680aacb1864ed3bcb4
Author: Andi Huber <ah...@apache.org>
AuthorDate: Wed Sep 26 11:12:04 2018 +0200
ISIS-1976: Make OidMarshaller an interface, then split into 2 interfaces
... Oid.Marshaller and Oid.Unmarshaller
Task-Url: https://issues.apache.org/jira/browse/ISIS-1976
---
.../isis/core/metamodel/adapter/oid/Oid.java | 40 ++++++++++++++++++
.../{OidMarshaller.java => Oid_Marshaller.java} | 49 +++++++++++-----------
.../core/metamodel/adapter/oid/ParentedOid.java | 8 ++--
.../isis/core/metamodel/adapter/oid/RootOid.java | 9 ++--
.../core/metamodel/adapter/version/Version.java | 4 +-
...ObjectFacetDeclarativeInitializingAbstract.java | 1 -
.../adapter/oid/OidMarshallerTest_marshall.java | 4 +-
.../oid/OidMarshallerTest_roundtripping.java | 9 ++--
.../adapter/oid/OidMarshallerTest_unmarshal.java | 4 +-
.../apache/isis/core/runtime/memento/Memento.java | 5 +--
.../restfulobjects/rendering/util/OidUtils.java | 5 +--
.../server/resources/JsonParserHelper.java | 7 ++--
.../restfulobjects/server/util/OidUtils.java | 6 +--
.../model/mementos/ObjectAdapterMemento.java | 6 +--
.../viewer/wicket/model/models/ActionModel.java | 6 +--
.../wicket/model/models/BookmarkTreeNode.java | 16 +++----
.../viewer/wicket/model/models/EntityModel.java | 6 +--
.../widgets/breadcrumbs/BreadcrumbModel.java | 8 ++--
.../widgets/breadcrumbs/BreadcrumbPanel.java | 6 +--
19 files changed, 103 insertions(+), 96 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 b543c74..8473a0f 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
@@ -111,7 +111,43 @@ public interface Oid extends Encodable {
}
}
}
+
+ // -- MARSHALLING
+
+ public static interface Marshaller {
+
+ String marshal(Version version);
+
+ String marshalNoVersion(ParentedOid parentedOid);
+
+ String marshal(ParentedOid parentedOid);
+
+ String marshalNoVersion(RootOid rootOid);
+
+ String marshal(RootOid rootOid);
+
+ String joinAsOid(String domainType, String instanceId);
+
+ }
+
+ public static Marshaller marshaller() {
+ return Oid_Marshaller.INSTANCE;
+ }
+
+ // -- UN-MARSHALLING
+
+ public static interface Unmarshaller {
+
+ <T extends Oid> T unmarshal(String oidStr, Class<T> requestedType);
+ String splitInstanceId(String oidStr);
+
+ }
+
+ public static Unmarshaller unmarshaller() {
+ return Oid_Marshaller.INSTANCE;
+ }
+
// -- FACTORIES
/** for convenience*/
@@ -165,4 +201,8 @@ public interface Oid extends Encodable {
}
+
+
+
+
}
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/adapter/oid/OidMarshaller.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/adapter/oid/Oid_Marshaller.java
similarity index 89%
rename from core/metamodel/src/main/java/org/apache/isis/core/metamodel/adapter/oid/OidMarshaller.java
rename to core/metamodel/src/main/java/org/apache/isis/core/metamodel/adapter/oid/Oid_Marshaller.java
index c5d1630..dff0ef3 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/adapter/oid/OidMarshaller.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/adapter/oid/Oid_Marshaller.java
@@ -25,8 +25,8 @@ import java.util.regex.Pattern;
import com.google.common.base.Splitter;
-import org.apache.isis.applib.annotation.Programmatic;
import org.apache.isis.applib.services.bookmark.Bookmark;
+import org.apache.isis.commons.internal.base._Casts;
import org.apache.isis.commons.internal.base._Strings;
import org.apache.isis.commons.internal.collections._Lists;
import org.apache.isis.core.commons.ensure.Ensure;
@@ -82,11 +82,11 @@ import org.apache.isis.core.metamodel.spec.ObjectSpecId;
* <p>
* Note that # and ; were not chosen as separators to minimize noise when URL encoding OIDs.
*/
-public final class OidMarshaller {
+final class Oid_Marshaller implements Oid.Marshaller, Oid.Unmarshaller {
- public final static OidMarshaller INSTANCE = new OidMarshaller();
+ public final static Oid_Marshaller INSTANCE = new Oid_Marshaller();
- private OidMarshaller(){}
+ private Oid_Marshaller(){}
// -- public constants
public static final String VIEWMODEL_INDICATOR =
@@ -99,10 +99,10 @@ public final class OidMarshaller {
private static final String SEPARATOR = ":";
private static final String SEPARATOR_NESTING = "~";
- private static final String SEPARATOR_COLLECTION = "$";
+ private static final String SEPARATOR_PARENTED = "$";
private static final String SEPARATOR_VERSION = "^";
- private static final String WORD = "[^" + SEPARATOR + SEPARATOR_NESTING + SEPARATOR_COLLECTION + "\\" + SEPARATOR_VERSION + "#" + "]+";
+ private static final String WORD = "[^" + SEPARATOR + SEPARATOR_NESTING + SEPARATOR_PARENTED + "\\" + SEPARATOR_VERSION + "#" + "]+";
private static final String DIGITS = "\\d+";
private static final String WORD_GROUP = "(" + WORD + ")";
@@ -119,7 +119,7 @@ public final class OidMarshaller {
"(" + SEPARATOR_NESTING + WORD + SEPARATOR + WORD + ")*" + // nesting of aggregates
")" +
")" +
- "(" + "[" + SEPARATOR_COLLECTION + "]" + WORD + ")?" + // optional collection name
+ "(" + "[" + SEPARATOR_PARENTED + "]" + WORD + ")?" + // optional collection name
"(" +
"[\\" + SEPARATOR_VERSION + "]" +
DIGITS_GROUP + // optional version digit
@@ -130,12 +130,13 @@ public final class OidMarshaller {
// -- join, split
- @Programmatic
+
+ @Override //implementing Oid.Marshaller
public String joinAsOid(String domainType, String instanceId) {
return domainType + SEPARATOR + instanceId;
}
- @Programmatic
+ @Override //implementing Oid.Unarshaller
public String splitInstanceId(String oidStr) {
final int indexOfSeperator = oidStr.indexOf(SEPARATOR);
return indexOfSeperator > 0? oidStr.substring(indexOfSeperator+1): null;
@@ -145,8 +146,7 @@ public final class OidMarshaller {
// -- unmarshal
- @Programmatic
- @SuppressWarnings("unchecked")
+ @Override
public <T extends Oid> T unmarshal(String oidStr, Class<T> requestedType) {
final Matcher matcher = OIDSTR_PATTERN.matcher(oidStr);
@@ -194,7 +194,8 @@ public final class OidMarshaller {
if(collectionName == null) {
if(aggregateOidParts.isEmpty()) {
ensureCorrectType(oidStr, requestedType, RootOid.class);
- return (T) RootOid.of(ObjectSpecId.of(rootObjectType), rootIdentifier, state, version);
+ return _Casts.uncheckedCast(
+ RootOid.of(ObjectSpecId.of(rootObjectType), rootIdentifier, state, version));
} else {
throw new RuntimeException("Aggregated Oids are no longer supported");
}
@@ -205,7 +206,7 @@ public final class OidMarshaller {
RootOid parentOid = this.unmarshal(parentOidStr, RootOid.class);
ensureCorrectType(oidStr, requestedType, ParentedOid.class);
- return (T) ParentedOid.ofName(parentOid, collectionName);
+ return _Casts.uncheckedCast( ParentedOid.ofName(parentOid, collectionName) );
}
}
@@ -242,16 +243,14 @@ public final class OidMarshaller {
}
-
-
// -- marshal
- @Programmatic
+ @Override
public final String marshal(RootOid rootOid) {
Ensure.ensure("can not marshal values", !rootOid.isValue());
return marshalNoVersion(rootOid) + marshal(rootOid.getVersion());
}
-
- @Programmatic
+
+ @Override
public final String marshalNoVersion(RootOid rootOid) {
Ensure.ensure("can not marshal values", !rootOid.isValue());
final String transientIndicator = rootOid.isTransient()? TRANSIENT_INDICATOR : "";
@@ -259,17 +258,17 @@ public final class OidMarshaller {
return transientIndicator + viewModelIndicator + rootOid.getObjectSpecId() + SEPARATOR + rootOid.getIdentifier();
}
- @Programmatic
- public final String marshal(ParentedOid collectionOid) {
- return marshalNoVersion(collectionOid) + marshal(collectionOid.getVersion());
+ @Override
+ public final String marshal(ParentedOid parentedOid) {
+ return marshalNoVersion(parentedOid) + marshal(parentedOid.getVersion());
}
- @Programmatic
- public String marshalNoVersion(ParentedOid collectionOid) {
- return collectionOid.getParentOid().enStringNoVersion() + SEPARATOR_COLLECTION + collectionOid.getName();
+ @Override
+ public String marshalNoVersion(ParentedOid parentedOid) {
+ return parentedOid.getParentOid().enStringNoVersion() + SEPARATOR_PARENTED + parentedOid.getName();
}
- @Programmatic
+ @Override
public final String marshal(Version version) {
if(version == null) {
return "";
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/adapter/oid/ParentedOid.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/adapter/oid/ParentedOid.java
index bf33c97..c071022 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/adapter/oid/ParentedOid.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/adapter/oid/ParentedOid.java
@@ -36,8 +36,6 @@ public final class ParentedOid implements Serializable, Oid {
private static final long serialVersionUID = 1L;
- private final static OidMarshaller OID_MARSHALLER = OidMarshaller.INSTANCE;
-
private final String name;
private final int hashCode;
@@ -90,18 +88,18 @@ public final class ParentedOid implements Serializable, Oid {
// /////////////////////////////////////////////////////////
public static ParentedOid deString(String oidStr) {
- return OID_MARSHALLER.unmarshal(oidStr, ParentedOid.class);
+ return Oid.unmarshaller().unmarshal(oidStr, ParentedOid.class);
}
@Override
public String enString() {
- return OID_MARSHALLER.marshal(this);
+ return Oid.marshaller().marshal(this);
}
@Override
public String enStringNoVersion() {
- return OID_MARSHALLER.marshalNoVersion(this);
+ return Oid.marshaller().marshalNoVersion(this);
}
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 bf12927..67e9280 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
@@ -39,7 +39,6 @@ public class RootOid implements Oid, Serializable {
// -- fields
private final static long serialVersionUID = 1L;
- private final static OidMarshaller OID_MARSHALLER = OidMarshaller.INSTANCE;
private final ObjectSpecId objectSpecId;
private final String identifier;
@@ -78,7 +77,7 @@ public class RootOid implements Oid, Serializable {
// -- Encodeable
public RootOid(final DataInputExtended input) throws IOException {
final String oidStr = input.readUTF();
- final RootOid oid = OID_MARSHALLER.unmarshal(oidStr, RootOid.class);
+ final RootOid oid = Oid.unmarshaller().unmarshal(oidStr, RootOid.class);
this.objectSpecId = oid.objectSpecId;
this.identifier = oid.identifier;
this.state = oid.state;
@@ -103,17 +102,17 @@ public class RootOid implements Oid, Serializable {
}
public static RootOid deString(final String oidStr) {
- return OID_MARSHALLER.unmarshal(oidStr, RootOid.class);
+ return Oid.unmarshaller().unmarshal(oidStr, RootOid.class);
}
@Override
public String enString() {
- return OID_MARSHALLER.marshal(this);
+ return Oid.marshaller().marshal(this);
}
@Override
public String enStringNoVersion() {
- return OID_MARSHALLER.marshalNoVersion(this);
+ return Oid.marshaller().marshalNoVersion(this);
}
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/adapter/version/Version.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/adapter/version/Version.java
index 43702b1..5ffb94f 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/adapter/version/Version.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/adapter/version/Version.java
@@ -32,7 +32,7 @@ import org.apache.isis.core.commons.encoding.DataOutputExtended;
import org.apache.isis.core.commons.encoding.Encodable;
import org.apache.isis.core.commons.lang.DateExtensions;
import org.apache.isis.core.metamodel.adapter.ObjectAdapter;
-import org.apache.isis.core.metamodel.adapter.oid.OidMarshaller;
+import org.apache.isis.core.metamodel.adapter.oid.Oid;
/**
* An instance of this class is held by each {@link ObjectAdapter} and is used
@@ -53,7 +53,7 @@ public final class Version implements Serializable, Encodable {
private static final long serialVersionUID = 1L;
- private final static OidMarshaller OID_MARSHALLER = OidMarshaller.INSTANCE;
+ private final static Oid.Marshaller OID_MARSHALLER = Oid.marshaller();
// -- FACTORIES
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 cb7511d..edcf474 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
@@ -28,7 +28,6 @@ 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.adapter.oid.RootOid;
import org.apache.isis.core.metamodel.consent.InteractionInitiatedBy;
import org.apache.isis.core.metamodel.facetapi.FacetHolder;
import org.apache.isis.core.metamodel.facets.PostConstructMethodCache;
diff --git a/core/metamodel/src/test/java/org/apache/isis/core/metamodel/adapter/oid/OidMarshallerTest_marshall.java b/core/metamodel/src/test/java/org/apache/isis/core/metamodel/adapter/oid/OidMarshallerTest_marshall.java
index 014174b..f58f6d3 100644
--- a/core/metamodel/src/test/java/org/apache/isis/core/metamodel/adapter/oid/OidMarshallerTest_marshall.java
+++ b/core/metamodel/src/test/java/org/apache/isis/core/metamodel/adapter/oid/OidMarshallerTest_marshall.java
@@ -29,11 +29,11 @@ import static org.junit.Assert.assertThat;
public class OidMarshallerTest_marshall {
- private OidMarshaller oidMarshaller;
+ private Oid_Marshaller oidMarshaller;
@Before
public void setUp() throws Exception {
- oidMarshaller = OidMarshaller.INSTANCE;
+ oidMarshaller = Oid_Marshaller.INSTANCE;
}
@Test
diff --git a/core/metamodel/src/test/java/org/apache/isis/core/metamodel/adapter/oid/OidMarshallerTest_roundtripping.java b/core/metamodel/src/test/java/org/apache/isis/core/metamodel/adapter/oid/OidMarshallerTest_roundtripping.java
index d526fa6..0aef2d8 100644
--- a/core/metamodel/src/test/java/org/apache/isis/core/metamodel/adapter/oid/OidMarshallerTest_roundtripping.java
+++ b/core/metamodel/src/test/java/org/apache/isis/core/metamodel/adapter/oid/OidMarshallerTest_roundtripping.java
@@ -19,19 +19,16 @@
package org.apache.isis.core.metamodel.adapter.oid;
+import static org.hamcrest.CoreMatchers.is;
+import static org.junit.Assert.assertThat;
+
import org.junit.Test;
import org.apache.isis.core.metamodel.adapter.oid.Oid.Factory;
import org.apache.isis.core.metamodel.spec.ObjectSpecId;
-import static org.hamcrest.CoreMatchers.is;
-import static org.junit.Assert.assertThat;
-
public class OidMarshallerTest_roundtripping {
- @SuppressWarnings("unused")
- private OidMarshaller oidMarshaller = OidMarshaller.INSTANCE;
-
@Test
public void rootOid_withNoVersion() {
RootOid oid = Factory.persistentOf(ObjectSpecId.of("CUS"), "123");
diff --git a/core/metamodel/src/test/java/org/apache/isis/core/metamodel/adapter/oid/OidMarshallerTest_unmarshal.java b/core/metamodel/src/test/java/org/apache/isis/core/metamodel/adapter/oid/OidMarshallerTest_unmarshal.java
index 701b27a..af2f885 100644
--- a/core/metamodel/src/test/java/org/apache/isis/core/metamodel/adapter/oid/OidMarshallerTest_unmarshal.java
+++ b/core/metamodel/src/test/java/org/apache/isis/core/metamodel/adapter/oid/OidMarshallerTest_unmarshal.java
@@ -57,11 +57,11 @@ import static org.junit.Assert.assertThat;
*/
public class OidMarshallerTest_unmarshal {
- private OidMarshaller oidMarshaller;
+ private Oid_Marshaller oidMarshaller;
@Before
public void setUp() throws Exception {
- oidMarshaller = OidMarshaller.INSTANCE;
+ oidMarshaller = Oid_Marshaller.INSTANCE;
}
@Test
diff --git a/core/runtime/src/main/java/org/apache/isis/core/runtime/memento/Memento.java b/core/runtime/src/main/java/org/apache/isis/core/runtime/memento/Memento.java
index 1ff78b6..f052bb2 100644
--- a/core/runtime/src/main/java/org/apache/isis/core/runtime/memento/Memento.java
+++ b/core/runtime/src/main/java/org/apache/isis/core/runtime/memento/Memento.java
@@ -31,7 +31,6 @@ import org.apache.isis.commons.internal.collections._Lists;
import org.apache.isis.core.commons.exceptions.UnknownTypeException;
import org.apache.isis.core.metamodel.adapter.ObjectAdapter;
import org.apache.isis.core.metamodel.adapter.oid.Oid;
-import org.apache.isis.core.metamodel.adapter.oid.OidMarshaller;
import org.apache.isis.core.metamodel.consent.InteractionInitiatedBy;
import org.apache.isis.core.metamodel.facets.collections.modify.CollectionFacet;
import org.apache.isis.core.metamodel.facets.object.encodeable.EncodableFacet;
@@ -58,8 +57,6 @@ public class Memento implements Serializable {
private final static Logger LOG = LoggerFactory.getLogger(Memento.class);
private final static long serialVersionUID = 1L;
- private final static OidMarshaller OID_MARSHALLER = OidMarshaller.INSTANCE;
-
private final List<Oid> transientObjects = _Lists.newArrayList();
@@ -172,7 +169,7 @@ public class Memento implements Serializable {
if(oid == null) { return null; }
if(oid.isValue()) { return oid; } // immutable, so just reuse
final String oidStr = oid.enString();
- return _Casts.uncheckedCast(OID_MARSHALLER.unmarshal(oidStr, oid.getClass()));
+ return _Casts.uncheckedCast(Oid.unmarshaller().unmarshal(oidStr, oid.getClass()));
}
private Data createStandaloneData(final ObjectAdapter adapter) {
diff --git a/core/viewer-restfulobjects-rendering/src/main/java/org/apache/isis/viewer/restfulobjects/rendering/util/OidUtils.java b/core/viewer-restfulobjects-rendering/src/main/java/org/apache/isis/viewer/restfulobjects/rendering/util/OidUtils.java
index c3cac12..0a785ca 100644
--- a/core/viewer-restfulobjects-rendering/src/main/java/org/apache/isis/viewer/restfulobjects/rendering/util/OidUtils.java
+++ b/core/viewer-restfulobjects-rendering/src/main/java/org/apache/isis/viewer/restfulobjects/rendering/util/OidUtils.java
@@ -20,13 +20,10 @@ package org.apache.isis.viewer.restfulobjects.rendering.util;
import org.apache.isis.core.metamodel.adapter.ObjectAdapter;
import org.apache.isis.core.metamodel.adapter.oid.Oid;
-import org.apache.isis.core.metamodel.adapter.oid.OidMarshaller;
import org.apache.isis.core.metamodel.adapter.oid.RootOid;
public final class OidUtils {
- private static final OidMarshaller OID_MARSHALLER = OidMarshaller.INSTANCE;
-
private OidUtils() {
}
@@ -42,7 +39,7 @@ public final class OidUtils {
public static String getInstanceId(final ObjectAdapter objectAdapter) {
String oidStr = getOidStr(objectAdapter);
// REVIEW: it's a bit hokey to join these together just to split them out again.
- return oidStr != null ? OID_MARSHALLER.splitInstanceId(oidStr): null;
+ return oidStr != null ? Oid.unmarshaller().splitInstanceId(oidStr): null;
}
diff --git a/core/viewer-restfulobjects-server/src/main/java/org/apache/isis/viewer/restfulobjects/server/resources/JsonParserHelper.java b/core/viewer-restfulobjects-server/src/main/java/org/apache/isis/viewer/restfulobjects/server/resources/JsonParserHelper.java
index aebdd39..2991b93 100644
--- a/core/viewer-restfulobjects-server/src/main/java/org/apache/isis/viewer/restfulobjects/server/resources/JsonParserHelper.java
+++ b/core/viewer-restfulobjects-server/src/main/java/org/apache/isis/viewer/restfulobjects/server/resources/JsonParserHelper.java
@@ -18,8 +18,9 @@ package org.apache.isis.viewer.restfulobjects.server.resources;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
+
import org.apache.isis.core.metamodel.adapter.ObjectAdapter;
-import org.apache.isis.core.metamodel.adapter.oid.OidMarshaller;
+import org.apache.isis.core.metamodel.adapter.oid.Oid;
import org.apache.isis.core.metamodel.spec.ObjectSpecification;
import org.apache.isis.viewer.restfulobjects.applib.JsonRepresentation;
import org.apache.isis.viewer.restfulobjects.applib.client.RestfulResponse;
@@ -36,8 +37,6 @@ import org.apache.isis.viewer.restfulobjects.server.util.OidUtils;
*/
public class JsonParserHelper {
- private final static OidMarshaller OID_MARSHALLER = OidMarshaller.INSTANCE;
-
private final static Pattern OBJECT_OID = Pattern.compile(".*objects\\/([^/]+)\\/(.+)");
private final RendererContext rendererContext;
@@ -147,7 +146,7 @@ public class JsonParserHelper {
}
String domainType = matcher.group(1);
String instanceId = matcher.group(2);
- return OID_MARSHALLER.joinAsOid(domainType, instanceId);
+ return Oid.marshaller().joinAsOid(domainType, instanceId);
}
private static String resourceFor(final ObjectSpecification objectSpec) {
diff --git a/core/viewer-restfulobjects-server/src/main/java/org/apache/isis/viewer/restfulobjects/server/util/OidUtils.java b/core/viewer-restfulobjects-server/src/main/java/org/apache/isis/viewer/restfulobjects/server/util/OidUtils.java
index 4bda8d1..6793401 100644
--- a/core/viewer-restfulobjects-server/src/main/java/org/apache/isis/viewer/restfulobjects/server/util/OidUtils.java
+++ b/core/viewer-restfulobjects-server/src/main/java/org/apache/isis/viewer/restfulobjects/server/util/OidUtils.java
@@ -23,9 +23,7 @@ import static org.apache.isis.commons.internal.base._With.mapIfPresentElse;
import org.apache.isis.core.metamodel.adapter.ObjectAdapter;
import org.apache.isis.core.metamodel.adapter.concurrency.ConcurrencyChecking;
import org.apache.isis.core.metamodel.adapter.oid.Oid;
-import org.apache.isis.core.metamodel.adapter.oid.OidMarshaller;
import org.apache.isis.core.metamodel.adapter.oid.RootOid;
-import org.apache.isis.core.metamodel.adapter.version.Version;
import org.apache.isis.core.metamodel.facets.object.viewmodel.ViewModelFacet;
import org.apache.isis.core.metamodel.spec.ObjectSpecId;
import org.apache.isis.core.metamodel.spec.ObjectSpecification;
@@ -36,8 +34,6 @@ import org.apache.isis.viewer.restfulobjects.rendering.RendererContext;
public final class OidUtils {
- private static final OidMarshaller OID_MARSHALLER = OidMarshaller.INSTANCE;
-
private OidUtils() {
}
@@ -48,7 +44,7 @@ public final class OidUtils {
final RendererContext rendererContext,
final String domainType, final String instanceIdEncoded) {
final String instanceIdUnencoded = UrlDecoderUtils.urlDecode(instanceIdEncoded);
- String oidStrUnencoded = OID_MARSHALLER.joinAsOid(domainType, instanceIdUnencoded);
+ String oidStrUnencoded = Oid.marshaller().joinAsOid(domainType, instanceIdUnencoded);
return getObjectAdapter(rendererContext, oidStrUnencoded);
}
diff --git a/core/viewer-wicket-model/src/main/java/org/apache/isis/viewer/wicket/model/mementos/ObjectAdapterMemento.java b/core/viewer-wicket-model/src/main/java/org/apache/isis/viewer/wicket/model/mementos/ObjectAdapterMemento.java
index 5a26c9c..e2fbb01 100644
--- a/core/viewer-wicket-model/src/main/java/org/apache/isis/viewer/wicket/model/mementos/ObjectAdapterMemento.java
+++ b/core/viewer-wicket-model/src/main/java/org/apache/isis/viewer/wicket/model/mementos/ObjectAdapterMemento.java
@@ -25,8 +25,6 @@ import java.util.Collection;
import java.util.List;
import java.util.function.Function;
-import org.apache.isis.commons.internal.collections._Lists;
-
import org.apache.isis.applib.services.bookmark.Bookmark;
import org.apache.isis.applib.services.hint.HintStore;
import org.apache.isis.commons.internal.collections._Lists;
@@ -35,7 +33,6 @@ import org.apache.isis.core.metamodel.adapter.ObjectAdapterProvider;
import org.apache.isis.core.metamodel.adapter.concurrency.ConcurrencyChecking;
import org.apache.isis.core.metamodel.adapter.oid.Oid;
import org.apache.isis.core.metamodel.adapter.oid.Oid.Factory;
-import org.apache.isis.core.metamodel.adapter.oid.OidMarshaller;
import org.apache.isis.core.metamodel.adapter.oid.RootOid;
import org.apache.isis.core.metamodel.facets.object.encodeable.EncodableFacet;
import org.apache.isis.core.metamodel.spec.ObjectSpecId;
@@ -51,7 +48,6 @@ public class ObjectAdapterMemento implements Serializable {
private static final long serialVersionUID = 1L;
- public static final OidMarshaller OID_MARSHALLER = OidMarshaller.INSTANCE;
/**
* Factory method
*/
@@ -230,7 +226,7 @@ public class ObjectAdapterMemento implements Serializable {
final ObjectAdapterMemento oam,
ConcurrencyChecking concurrencyChecking,
final PersistenceSession persistenceSession, final SpecificationLoader specificationLoader) {
- RootOid oid = OID_MARSHALLER.unmarshal(oam.persistentOidStr, RootOid.class);
+ RootOid oid = Oid.unmarshaller().unmarshal(oam.persistentOidStr, RootOid.class);
try {
final ObjectAdapter adapter = persistenceSession.adapterFor(oid, concurrencyChecking);
return adapter;
diff --git a/core/viewer-wicket-model/src/main/java/org/apache/isis/viewer/wicket/model/models/ActionModel.java b/core/viewer-wicket-model/src/main/java/org/apache/isis/viewer/wicket/model/models/ActionModel.java
index ea9cc20..c202609 100644
--- a/core/viewer-wicket-model/src/main/java/org/apache/isis/viewer/wicket/model/models/ActionModel.java
+++ b/core/viewer-wicket-model/src/main/java/org/apache/isis/viewer/wicket/model/models/ActionModel.java
@@ -51,7 +51,7 @@ import org.apache.isis.commons.internal.collections._Lists;
import org.apache.isis.commons.internal.collections._Maps;
import org.apache.isis.core.metamodel.adapter.ObjectAdapter;
import org.apache.isis.core.metamodel.adapter.concurrency.ConcurrencyChecking;
-import org.apache.isis.core.metamodel.adapter.oid.OidMarshaller;
+import org.apache.isis.core.metamodel.adapter.oid.Oid;
import org.apache.isis.core.metamodel.adapter.oid.RootOid;
import org.apache.isis.core.metamodel.consent.Consent;
import org.apache.isis.core.metamodel.consent.InteractionInitiatedBy;
@@ -77,8 +77,6 @@ public class ActionModel extends BookmarkableModel<ObjectAdapter> implements For
private static final long serialVersionUID = 1L;
- private static final OidMarshaller OID_MARSHALLER = OidMarshaller.INSTANCE;
-
private static final String NULL_ARG = "$nullArg$";
private static final Pattern KEY_VALUE_PATTERN = Pattern.compile("([^=]+)=(.+)");
@@ -288,7 +286,7 @@ public class ActionModel extends BookmarkableModel<ObjectAdapter> implements For
private static RootOid oidFor(final PageParameters pageParameters) {
final String oidStr = PageParameterNames.OBJECT_OID.getStringFrom(pageParameters);
- return OID_MARSHALLER.unmarshal(oidStr, RootOid.class);
+ return Oid.unmarshaller().unmarshal(oidStr, RootOid.class);
}
diff --git a/core/viewer-wicket-model/src/main/java/org/apache/isis/viewer/wicket/model/models/BookmarkTreeNode.java b/core/viewer-wicket-model/src/main/java/org/apache/isis/viewer/wicket/model/models/BookmarkTreeNode.java
index e84b44d..72ea8ff 100644
--- a/core/viewer-wicket-model/src/main/java/org/apache/isis/viewer/wicket/model/models/BookmarkTreeNode.java
+++ b/core/viewer-wicket-model/src/main/java/org/apache/isis/viewer/wicket/model/models/BookmarkTreeNode.java
@@ -21,17 +21,15 @@ package org.apache.isis.viewer.wicket.model.models;
import java.io.Serializable;
import java.util.List;
-import java.util.stream.Stream;
-
import java.util.Objects;
-import org.apache.isis.commons.internal.collections._Lists;
+import java.util.stream.Stream;
import org.apache.wicket.request.mapper.parameter.PageParameters;
import org.apache.isis.commons.internal.base._NullSafe;
+import org.apache.isis.commons.internal.collections._Lists;
import org.apache.isis.core.metamodel.adapter.ObjectAdapter;
import org.apache.isis.core.metamodel.adapter.oid.Oid;
-import org.apache.isis.core.metamodel.adapter.oid.OidMarshaller;
import org.apache.isis.core.metamodel.adapter.oid.RootOid;
import org.apache.isis.core.metamodel.consent.InteractionInitiatedBy;
import org.apache.isis.core.metamodel.spec.feature.Contributed;
@@ -42,8 +40,6 @@ public class BookmarkTreeNode implements Serializable {
private static final long serialVersionUID = 1L;
- private static final OidMarshaller OID_MARSHALLER = OidMarshaller.INSTANCE;
-
private final List<BookmarkTreeNode> children = _Lists.newArrayList();
private final int depth;
@@ -64,8 +60,8 @@ public class BookmarkTreeNode implements Serializable {
final int depth) {
pageParameters = bookmarkableModel.getPageParametersWithoutUiHints();
RootOid oid = oidFrom(pageParameters);
- this.oidNoVerStr = OID_MARSHALLER.marshalNoVersion(oid);
- this.oidNoVer = OID_MARSHALLER.unmarshal(oidNoVerStr, RootOid.class);
+ this.oidNoVerStr = Oid.marshaller().marshalNoVersion(oid);
+ this.oidNoVer = Oid.unmarshaller().unmarshal(oidNoVerStr, RootOid.class);
// replace oid with the noVer equivalent.
PageParameterNames.OBJECT_OID.removeFrom(pageParameters);
@@ -261,7 +257,7 @@ public class BookmarkTreeNode implements Serializable {
return null;
}
try {
- return OID_MARSHALLER.unmarshal(oidStr, RootOid.class);
+ return Oid.unmarshaller().unmarshal(oidStr, RootOid.class);
} catch(Exception ex) {
return null;
}
@@ -269,7 +265,7 @@ public class BookmarkTreeNode implements Serializable {
public static String oidStrFrom(BookmarkableModel<?> candidateBookmarkableModel) {
final RootOid oid = oidFrom(candidateBookmarkableModel.getPageParametersWithoutUiHints());
- return oid != null? OID_MARSHALLER.marshalNoVersion(oid): null;
+ return oid != null? Oid.marshaller().marshalNoVersion(oid): null;
}
}
\ No newline at end of file
diff --git a/core/viewer-wicket-model/src/main/java/org/apache/isis/viewer/wicket/model/models/EntityModel.java b/core/viewer-wicket-model/src/main/java/org/apache/isis/viewer/wicket/model/models/EntityModel.java
index 318f41d..6b944af 100644
--- a/core/viewer-wicket-model/src/main/java/org/apache/isis/viewer/wicket/model/models/EntityModel.java
+++ b/core/viewer-wicket-model/src/main/java/org/apache/isis/viewer/wicket/model/models/EntityModel.java
@@ -33,7 +33,7 @@ import org.apache.isis.applib.annotation.Where;
import org.apache.isis.applib.layout.component.CollectionLayoutData;
import org.apache.isis.core.metamodel.adapter.ObjectAdapter;
import org.apache.isis.core.metamodel.adapter.concurrency.ConcurrencyChecking;
-import org.apache.isis.core.metamodel.adapter.oid.OidMarshaller;
+import org.apache.isis.core.metamodel.adapter.oid.Oid;
import org.apache.isis.core.metamodel.adapter.oid.RootOid;
import org.apache.isis.core.metamodel.adapter.version.ConcurrencyException;
import org.apache.isis.core.metamodel.consent.InteractionInitiatedBy;
@@ -60,8 +60,6 @@ public class EntityModel extends BookmarkableModel<ObjectAdapter> implements Obj
private static final long serialVersionUID = 1L;
- private static final OidMarshaller OID_MARSHALLER = OidMarshaller.INSTANCE;
-
// //////////////////////////////////////////////////////////
// factory methods for PageParameters
// //////////////////////////////////////////////////////////
@@ -218,7 +216,7 @@ public class EntityModel extends BookmarkableModel<ObjectAdapter> implements Obj
}
private static RootOid rootOidFrom(final PageParameters pageParameters) {
- return OID_MARSHALLER.unmarshal(oidStr(pageParameters), RootOid.class);
+ return Oid.unmarshaller().unmarshal(oidStr(pageParameters), RootOid.class);
}
diff --git a/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/widgets/breadcrumbs/BreadcrumbModel.java b/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/widgets/breadcrumbs/BreadcrumbModel.java
index c19bd96..7f326fc 100644
--- a/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/widgets/breadcrumbs/BreadcrumbModel.java
+++ b/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/widgets/breadcrumbs/BreadcrumbModel.java
@@ -21,14 +21,14 @@ import java.util.Collections;
import java.util.List;
import java.util.Map;
-import org.apache.isis.commons.internal.collections._Lists;
import com.google.common.collect.Maps;
import org.apache.wicket.request.mapper.parameter.PageParameters;
import org.apache.isis.applib.services.bookmark.Bookmark;
+import org.apache.isis.commons.internal.collections._Lists;
+import org.apache.isis.core.metamodel.adapter.oid.Oid;
import org.apache.isis.core.metamodel.adapter.oid.Oid.Factory;
-import org.apache.isis.core.metamodel.adapter.oid.OidMarshaller;
import org.apache.isis.core.metamodel.adapter.oid.RootOid;
import org.apache.isis.viewer.wicket.model.mementos.ObjectAdapterMemento;
import org.apache.isis.viewer.wicket.model.mementos.PageParameterNames;
@@ -40,8 +40,6 @@ public class BreadcrumbModel implements Serializable {
private static final int MAX_SIZE = 5;
- private static final OidMarshaller OID_MARSHALLER = OidMarshaller.INSTANCE;
-
private final Map<String, Bookmark> bookmarkByOidStr = Maps.newHashMap();
private final Map<Bookmark, String> oidStrByBookmark = Maps.newHashMap();
private final List<Bookmark> list = _Lists.newArrayList();
@@ -96,7 +94,7 @@ public class BreadcrumbModel implements Serializable {
return null;
}
try {
- final RootOid unmarshal = OID_MARSHALLER.unmarshal(oidStr, RootOid.class);
+ final RootOid unmarshal = Oid.unmarshaller().unmarshal(oidStr, RootOid.class);
return unmarshal.enStringNoVersion();
} catch(Exception ex) {
return null;
diff --git a/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/widgets/breadcrumbs/BreadcrumbPanel.java b/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/widgets/breadcrumbs/BreadcrumbPanel.java
index a9b07fc..907a530 100644
--- a/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/widgets/breadcrumbs/BreadcrumbPanel.java
+++ b/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/widgets/breadcrumbs/BreadcrumbPanel.java
@@ -21,7 +21,6 @@ import java.util.List;
import com.google.common.base.Predicate;
import com.google.common.collect.Iterables;
-import org.apache.isis.commons.internal.collections._Lists;
import org.apache.wicket.ajax.AjaxRequestTarget;
import org.apache.wicket.ajax.form.AjaxFormComponentUpdatingBehavior;
@@ -33,9 +32,10 @@ import org.wicketstuff.select2.Response;
import org.wicketstuff.select2.Select2Choice;
import org.wicketstuff.select2.Settings;
+import org.apache.isis.commons.internal.collections._Lists;
import org.apache.isis.core.commons.authentication.MessageBroker;
import org.apache.isis.core.metamodel.adapter.concurrency.ConcurrencyChecking;
-import org.apache.isis.core.metamodel.adapter.oid.OidMarshaller;
+import org.apache.isis.core.metamodel.adapter.oid.Oid;
import org.apache.isis.core.metamodel.adapter.oid.RootOid;
import org.apache.isis.viewer.wicket.model.mementos.PageParameterNames;
import org.apache.isis.viewer.wicket.model.models.EntityModel;
@@ -87,7 +87,7 @@ public class BreadcrumbPanel extends PanelAbstract<IModel<Void>> {
final PageParameters pageParameters = choice.getPageParametersWithoutUiHints();
final String oidStr = PageParameterNames.OBJECT_OID.getStringFrom(pageParameters);
final RootOid result = RootOid.deString(oidStr);
- return OidMarshaller.INSTANCE.marshal(result);
+ return Oid.marshaller().marshal(result);
} catch (Exception ex) {
breadcrumbModel.remove(choice);
return null;