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:10 UTC
[isis] 05/06: ISIS-1976: let package o.a.i.c.metamodel.adapter.oid
only expose 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 e49e8b8b8c00f8777981e75d3f3c4321e0344bb6
Author: Andi Huber <ah...@apache.org>
AuthorDate: Wed Sep 26 12:46:17 2018 +0200
ISIS-1976: let package o.a.i.c.metamodel.adapter.oid only expose
interfaces
Task-Url: https://issues.apache.org/jira/browse/ISIS-1976
---
.../isis/core/metamodel/adapter/oid/Oid.java | 45 ++++-
.../core/metamodel/adapter/oid/Oid_Marshaller.java | 4 +-
.../oid/{ParentedOid.java => Oid_Parented.java} | 32 ++--
.../adapter/oid/{RootOid.java => Oid_Root.java} | 86 +++------
.../isis/core/metamodel/adapter/oid/Oid_Value.java | 109 +++++++++++
.../core/metamodel/adapter/oid/ParentedOid.java | 170 ++---------------
.../isis/core/metamodel/adapter/oid/RootOid.java | 207 +--------------------
.../oid/CollectionOidTest_valueSemantics.java | 15 +-
.../oid/OidMarshallerTest_roundtripping.java | 6 +-
...dDefaultTest_valueSemantics_whenPersistent.java | 13 +-
...idDefaultTest_valueSemantics_whenTransient.java | 13 +-
.../transaction/PojoAdapterBuilder.java | 2 +-
.../transaction/PojoAdapterBuilder.java | 2 +-
.../ObjectAdapterContext_NewIdentifier.java | 2 +-
.../persistence/adaptermanager/OidProviders.java | 12 +-
.../restfulobjects/server/util/OidUtils.java | 2 +-
16 files changed, 233 insertions(+), 487 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 8473a0f..06706b8 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
@@ -26,6 +26,8 @@ import org.apache.isis.core.commons.encoding.Encodable;
import org.apache.isis.core.metamodel.adapter.version.Version;
import org.apache.isis.core.metamodel.spec.ObjectSpecId;
import org.apache.isis.core.metamodel.spec.feature.OneToManyAssociation;
+import org.apache.isis.schema.common.v1.BookmarkObjectState;
+import org.apache.isis.schema.common.v1.OidDto;
/**
@@ -63,7 +65,7 @@ public interface Oid extends Encodable {
boolean isPersistent();
default boolean isValue() {
- return false;
+ return false; // default, only overridden by Oid_Value
}
public static enum State {
@@ -110,6 +112,29 @@ public interface Oid extends Encodable {
throw _Exceptions.unmatchedCase(this);
}
}
+
+ public Bookmark bookmarkOf(RootOid rootOid) {
+ final String objectType = asBookmarkObjectState().getCode() + rootOid.getObjectSpecId().asString();
+ final String identifier = rootOid.getIdentifier();
+ return new Bookmark(objectType, identifier);
+ }
+
+ public OidDto toOidDto(RootOid rootOid) {
+
+ final OidDto oidDto = new OidDto();
+
+ oidDto.setType(rootOid.getObjectSpecId().asString());
+ oidDto.setId(rootOid.getIdentifier());
+
+ final Bookmark.ObjectState objectState = asBookmarkObjectState();
+ final BookmarkObjectState bookmarkState = objectState.toBookmarkState();
+ // persistent is assumed if not specified...
+ oidDto.setObjectState(
+ bookmarkState != BookmarkObjectState.PERSISTENT ? bookmarkState : null);
+
+ return oidDto;
+ }
+
}
// -- MARSHALLING
@@ -153,17 +178,21 @@ public interface Oid extends Encodable {
/** for convenience*/
public static final class Factory {
+ public static RootOid value() {
+ return Oid_Value.INSTANCE;
+ }
+
public static RootOid ofBookmark(final Bookmark bookmark) {
- return RootOid.of(ObjectSpecId.of(bookmark.getObjectType()),
+ return Oid_Root.of(ObjectSpecId.of(bookmark.getObjectType()),
bookmark.getIdentifier(), State.from(bookmark), Version.empty());
}
public static RootOid viewmodelOf(ObjectSpecId objectSpecId, String mementoStr) {
- return RootOid.of(objectSpecId, mementoStr, State.VIEWMODEL, Version.empty());
+ return Oid_Root.of(objectSpecId, mementoStr, State.VIEWMODEL, Version.empty());
}
public static RootOid transientOf(final ObjectSpecId objectSpecId, final String identifier) {
- return RootOid.of(objectSpecId, identifier, State.TRANSIENT, Version.empty());
+ return Oid_Root.of(objectSpecId, identifier, State.TRANSIENT, Version.empty());
}
public static RootOid persistentOf(final ObjectSpecId objectSpecId, final String identifier) {
@@ -183,18 +212,18 @@ public interface Oid extends Encodable {
}
public static RootOid persistentOf(final ObjectSpecId objectSpecId, final String identifier, final Long versionSequence, final String versionUser, final Long versionUtcTimestamp) {
- return RootOid.of(objectSpecId, identifier, State.PERSISTENT,
+ return Oid_Root.of(objectSpecId, identifier, State.PERSISTENT,
Version.Factory.ifPresent(versionSequence, versionUser, versionUtcTimestamp));
}
// -- PARENTED COLLECTIONS
public static ParentedOid collectionOfOneToMany(RootOid parentRootOid, OneToManyAssociation otma) {
- return ParentedOid.ofName(parentRootOid, otma.getId());
+ return Oid_Parented.ofName(parentRootOid, otma.getId());
}
- public static ParentedOid collectionOfName(RootOid parentRootOid, String name) {
- return ParentedOid.ofName(parentRootOid, name);
+ public static ParentedOid parentedOfName(RootOid parentRootOid, String name) {
+ return Oid_Parented.ofName(parentRootOid, name);
}
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/adapter/oid/Oid_Marshaller.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/adapter/oid/Oid_Marshaller.java
index dff0ef3..ebc1323 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/adapter/oid/Oid_Marshaller.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/adapter/oid/Oid_Marshaller.java
@@ -195,7 +195,7 @@ final class Oid_Marshaller implements Oid.Marshaller, Oid.Unmarshaller {
if(aggregateOidParts.isEmpty()) {
ensureCorrectType(oidStr, requestedType, RootOid.class);
return _Casts.uncheckedCast(
- RootOid.of(ObjectSpecId.of(rootObjectType), rootIdentifier, state, version));
+ Oid_Root.of(ObjectSpecId.of(rootObjectType), rootIdentifier, state, version));
} else {
throw new RuntimeException("Aggregated Oids are no longer supported");
}
@@ -206,7 +206,7 @@ final class Oid_Marshaller implements Oid.Marshaller, Oid.Unmarshaller {
RootOid parentOid = this.unmarshal(parentOidStr, RootOid.class);
ensureCorrectType(oidStr, requestedType, ParentedOid.class);
- return _Casts.uncheckedCast( ParentedOid.ofName(parentOid, collectionName) );
+ return _Casts.uncheckedCast( Oid_Parented.ofName(parentOid, collectionName) );
}
}
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/Oid_Parented.java
similarity index 83%
copy from core/metamodel/src/main/java/org/apache/isis/core/metamodel/adapter/oid/ParentedOid.java
copy to core/metamodel/src/main/java/org/apache/isis/core/metamodel/adapter/oid/Oid_Parented.java
index c071022..bc6f835 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/Oid_Parented.java
@@ -22,17 +22,13 @@ package org.apache.isis.core.metamodel.adapter.oid;
import static org.apache.isis.commons.internal.base._With.requires;
import java.io.IOException;
-import java.io.Serializable;
import java.util.Objects;
import org.apache.isis.core.commons.encoding.DataInputExtended;
import org.apache.isis.core.commons.encoding.DataOutputExtended;
import org.apache.isis.core.metamodel.adapter.version.Version;
-/**
- * Used as the {@link Oid} for collections.
- */
-public final class ParentedOid implements Serializable, Oid {
+final class Oid_Parented implements ParentedOid {
private static final long serialVersionUID = 1L;
@@ -42,17 +38,18 @@ public final class ParentedOid implements Serializable, Oid {
private final RootOid parentRootOid;
// package private to support testing
- static ParentedOid ofName(RootOid parentRootOid, String name) {
- return new ParentedOid(parentRootOid, name);
+ static Oid_Parented ofName(RootOid parentRootOid, String name) {
+ return new Oid_Parented(parentRootOid, name);
}
- private ParentedOid(RootOid parentRootOid, String name) {
+ private Oid_Parented(RootOid parentRootOid, String name) {
requires(parentRootOid, "parentRootOid");
this.parentRootOid = parentRootOid;
this.name = name;
this.hashCode = calculateHash();
}
+ @Override
public RootOid getParentOid() {
return parentRootOid;
}
@@ -87,8 +84,8 @@ public final class ParentedOid implements Serializable, Oid {
// enstring
// /////////////////////////////////////////////////////////
- public static ParentedOid deString(String oidStr) {
- return Oid.unmarshaller().unmarshal(oidStr, ParentedOid.class);
+ public static Oid_Parented deString(String oidStr) {
+ return Oid.unmarshaller().unmarshal(oidStr, Oid_Parented.class);
}
@@ -108,11 +105,11 @@ public final class ParentedOid implements Serializable, Oid {
// /////////////////////////////////////////////////////////
- public ParentedOid(DataInputExtended inputStream) throws IOException {
- this(ParentedOid.deString(inputStream.readUTF()));
+ public Oid_Parented(DataInputExtended inputStream) throws IOException {
+ this(Oid_Parented.deString(inputStream.readUTF()));
}
- private ParentedOid(ParentedOid oid) throws IOException {
+ private Oid_Parented(Oid_Parented oid) throws IOException {
this.parentRootOid = oid.getParentOid();
this.name = oid.name;
this.hashCode = calculateHash();
@@ -128,6 +125,7 @@ public final class ParentedOid implements Serializable, Oid {
// Properties
// /////////////////////////////////////////////////////////
+ @Override
public String getName() {
return name;
}
@@ -159,10 +157,10 @@ public final class ParentedOid implements Serializable, Oid {
if (getClass() != other.getClass()) {
return false;
}
- return equals((ParentedOid) other);
+ return equals((Oid_Parented) other);
}
- public boolean equals(final ParentedOid other) {
+ public boolean equals(final Oid_Parented other) {
return Objects.equals(other.getParentOid(), getParentOid()) && Objects.equals(other.name, name);
}
@@ -185,8 +183,8 @@ public final class ParentedOid implements Serializable, Oid {
* When the RootOid is persisted, all its "children"
* need updating similarly.
*/
- public ParentedOid asPersistent(RootOid newParentRootOid) {
- return new ParentedOid(newParentRootOid, name);
+ public Oid_Parented asPersistent(RootOid newParentRootOid) {
+ return new Oid_Parented(newParentRootOid, name);
}
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/Oid_Root.java
similarity index 63%
copy from core/metamodel/src/main/java/org/apache/isis/core/metamodel/adapter/oid/RootOid.java
copy to core/metamodel/src/main/java/org/apache/isis/core/metamodel/adapter/oid/Oid_Root.java
index 67e9280..d6e547b 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/Oid_Root.java
@@ -22,42 +22,39 @@ package org.apache.isis.core.metamodel.adapter.oid;
import static org.apache.isis.commons.internal.base._With.requires;
import java.io.IOException;
-import java.io.Serializable;
import java.util.Objects;
import org.apache.isis.applib.services.bookmark.Bookmark;
-import org.apache.isis.commons.internal.exceptions._Exceptions;
import org.apache.isis.core.commons.encoding.DataInputExtended;
import org.apache.isis.core.commons.encoding.DataOutputExtended;
import org.apache.isis.core.commons.url.UrlDecoderUtil;
import org.apache.isis.core.metamodel.adapter.version.Version;
import org.apache.isis.core.metamodel.spec.ObjectSpecId;
-import org.apache.isis.schema.common.v1.BookmarkObjectState;
import org.apache.isis.schema.common.v1.OidDto;
-public class RootOid implements Oid, Serializable {
+final class Oid_Root implements RootOid {
// -- fields
private final static long serialVersionUID = 1L;
private final ObjectSpecId objectSpecId;
private final String identifier;
- private final State state;
+ private final Oid.State state;
private final int hashCode;
// not part of equality check
private Version version;
- public static RootOid of(final ObjectSpecId objectSpecId, final String identifier, final State state) {
+ public static Oid_Root of(final ObjectSpecId objectSpecId, final String identifier, final State state) {
return of(objectSpecId, identifier, state, Version.empty());
}
- public static RootOid of(final ObjectSpecId objectSpecId, final String identifier, final State state, final Version version) {
- return new RootOid(objectSpecId, identifier, state, version);
+ public static Oid_Root of(final ObjectSpecId objectSpecId, final String identifier, final State state, final Version version) {
+ return new Oid_Root(objectSpecId, identifier, state, version);
}
- private RootOid(final ObjectSpecId objectSpecId, final String identifier, final State state, final Version version) {
+ private Oid_Root(final ObjectSpecId objectSpecId, final String identifier, final State state, final Version version) {
requires(objectSpecId, "objectSpecId");
requires(identifier, "identifier");
@@ -75,9 +72,9 @@ public class RootOid implements Oid, Serializable {
}
// -- Encodeable
- public RootOid(final DataInputExtended input) throws IOException {
+ public Oid_Root(final DataInputExtended input) throws IOException {
final String oidStr = input.readUTF();
- final RootOid oid = Oid.unmarshaller().unmarshal(oidStr, RootOid.class);
+ final Oid_Root oid = Oid.unmarshaller().unmarshal(oidStr, Oid_Root.class);
this.objectSpecId = oid.objectSpecId;
this.identifier = oid.identifier;
this.state = oid.state;
@@ -96,13 +93,13 @@ public class RootOid implements Oid, Serializable {
}
// -- deString'able, enString
- public static RootOid deStringEncoded(final String urlEncodedOidStr) {
+ public static Oid_Root deStringEncoded(final String urlEncodedOidStr) {
final String oidStr = UrlDecoderUtil.urlDecode(urlEncodedOidStr);
return deString(oidStr);
}
- public static RootOid deString(final String oidStr) {
- return Oid.unmarshaller().unmarshal(oidStr, RootOid.class);
+ public static Oid_Root deString(final String oidStr) {
+ return Oid.unmarshaller().unmarshal(oidStr, Oid_Root.class);
}
@Override
@@ -117,10 +114,12 @@ public class RootOid implements Oid, Serializable {
// -- Properties
+ @Override
public ObjectSpecId getObjectSpecId() {
return objectSpecId;
}
+ @Override
public String getIdentifier() {
return identifier;
}
@@ -152,32 +151,16 @@ public class RootOid implements Oid, Serializable {
this.version = version;
}
-
- // -- asBookmark, asOidDto
+ @Override
public Bookmark asBookmark() {
- final String objectType = state.asBookmarkObjectState().getCode() + getObjectSpecId().asString();
- final String identifier = getIdentifier();
- return new Bookmark(objectType, identifier);
+ return state.bookmarkOf(this);
}
-
+
+ @Override
public OidDto asOidDto() {
-
- final OidDto oidDto = new OidDto();
-
- oidDto.setType(getObjectSpecId().asString());
- oidDto.setId(getIdentifier());
-
- final Bookmark.ObjectState objectState = state.asBookmarkObjectState();
- final BookmarkObjectState bookmarkState = objectState.toBookmarkState();
- // persistent is assumed if not specified...
- oidDto.setObjectState(
- bookmarkState != BookmarkObjectState.PERSISTENT ? bookmarkState : null);
-
- return oidDto;
+ return state.toOidDto(this);
}
-
-
-
+
// -- equals, hashCode
private int calculateHash() {
@@ -195,10 +178,10 @@ public class RootOid implements Oid, Serializable {
if (getClass() != other.getClass()) {
return false;
}
- return equals((RootOid) other);
+ return equals((Oid_Root) other);
}
- public boolean equals(final RootOid other) {
+ public boolean equals(final Oid_Root other) {
return Objects.equals(objectSpecId, other.getObjectSpecId()) &&
Objects.equals(identifier, other.getIdentifier()) &&
Objects.equals(state, other.state);
@@ -209,37 +192,10 @@ public class RootOid implements Oid, Serializable {
return hashCode;
}
-
-
// -- toString
@Override
public String toString() {
return enString();
}
- // -- ROOT-ID SUPPORT FOR VALUE
-
- private RootOid() { identifier=null; objectSpecId=null; state=null; hashCode=0;};
-
- private static final RootOid VALUE_OID = new RootOid() {
- private static final long serialVersionUID = 2L;
- @Override public boolean isValue() { return true; }
-// @Override public boolean isTransient() { return false; }
-// @Override public boolean isPersistent() { return false; }
-// @Override public boolean isViewModel() { return false; }
-
- @Override public boolean isTransient() { throw _Exceptions.unexpectedCodeReach(); }
- @Override public boolean isPersistent() { throw _Exceptions.unexpectedCodeReach(); }
- @Override public boolean isViewModel() { throw _Exceptions.unexpectedCodeReach(); }
- @Override public String toString() { return "VALUE_OID"; }
-
- };
-
- public static RootOid value() {
- return VALUE_OID;
- }
-
- // --
-
-
}
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/adapter/oid/Oid_Value.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/adapter/oid/Oid_Value.java
new file mode 100644
index 0000000..09df592
--- /dev/null
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/adapter/oid/Oid_Value.java
@@ -0,0 +1,109 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+package org.apache.isis.core.metamodel.adapter.oid;
+
+import java.io.IOException;
+
+import org.apache.isis.applib.services.bookmark.Bookmark;
+import org.apache.isis.core.commons.encoding.DataOutputExtended;
+import org.apache.isis.core.metamodel.adapter.version.Version;
+import org.apache.isis.core.metamodel.spec.ObjectSpecId;
+import org.apache.isis.schema.common.v1.OidDto;
+
+final class Oid_Value implements RootOid {
+
+ private final static long serialVersionUID = 1L;
+
+ static final Oid_Value INSTANCE = new Oid_Value();
+
+ @Override
+ public String enString() {
+ return null;
+ }
+
+ @Override
+ public String enStringNoVersion() {
+ return null;
+ }
+
+ @Override
+ public Version getVersion() {
+ return null;
+ }
+
+ @Override
+ public void setVersion(Version version) {
+ }
+
+ @Override
+ public boolean isValue() {
+ return true;
+ }
+
+ @Override
+ public boolean isTransient() {
+ return false;
+ }
+
+ @Override
+ public boolean isViewModel() {
+ return false;
+ }
+
+ @Override
+ public boolean isPersistent() {
+ return false;
+ }
+
+ @Override
+ public void encode(DataOutputExtended outputStream) throws IOException {
+ }
+
+ @Override
+ public ObjectSpecId getObjectSpecId() {
+ return null;
+ }
+
+ @Override
+ public String getIdentifier() {
+ return null;
+ }
+
+ @Override
+ public String toString() {
+ return "VALUE_OID";
+ }
+
+ @Override
+ public int hashCode() {
+ return 0;
+ }
+
+ @Override
+ public Bookmark asBookmark() {
+ return null;
+ }
+
+ @Override
+ public OidDto asOidDto() {
+ return null;
+ }
+
+}
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 c071022..76e2f91 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
@@ -19,176 +19,28 @@
package org.apache.isis.core.metamodel.adapter.oid;
-import static org.apache.isis.commons.internal.base._With.requires;
-
-import java.io.IOException;
import java.io.Serializable;
-import java.util.Objects;
-import org.apache.isis.core.commons.encoding.DataInputExtended;
-import org.apache.isis.core.commons.encoding.DataOutputExtended;
-import org.apache.isis.core.metamodel.adapter.version.Version;
+import org.apache.isis.core.commons.url.UrlDecoderUtil;
/**
* Used as the {@link Oid} for collections.
*/
-public final class ParentedOid implements Serializable, Oid {
-
- private static final long serialVersionUID = 1L;
+public interface ParentedOid extends Serializable, Oid {
- private final String name;
- private final int hashCode;
+ RootOid getParentOid();
- private final RootOid parentRootOid;
+ String getName();
- // package private to support testing
- static ParentedOid ofName(RootOid parentRootOid, String name) {
- return new ParentedOid(parentRootOid, name);
- }
+ // -- DECODE FROM STRING
- private ParentedOid(RootOid parentRootOid, String name) {
- requires(parentRootOid, "parentRootOid");
- this.parentRootOid = parentRootOid;
- this.name = name;
- this.hashCode = calculateHash();
- }
-
- public RootOid getParentOid() {
- return parentRootOid;
- }
-
- @Override
- public Version getVersion() {
- return parentRootOid.getVersion();
- }
-
- @Override
- public void setVersion(Version version) {
- parentRootOid.setVersion(version);
- }
-
- @Override
- public boolean isTransient() {
- return getParentOid().isTransient();
- }
-
- @Override
- public boolean isViewModel() {
- return getParentOid().isViewModel();
- }
-
- @Override
- public boolean isPersistent() {
- return getParentOid().isPersistent();
+ public static ParentedOid deStringEncoded(final String urlEncodedOidStr) {
+ final String oidStr = UrlDecoderUtil.urlDecode(urlEncodedOidStr);
+ return deString(oidStr);
}
-
-
- // /////////////////////////////////////////////////////////
- // enstring
- // /////////////////////////////////////////////////////////
-
- public static ParentedOid deString(String oidStr) {
- return Oid.unmarshaller().unmarshal(oidStr, ParentedOid.class);
- }
-
-
- @Override
- public String enString() {
- return Oid.marshaller().marshal(this);
- }
-
- @Override
- public String enStringNoVersion() {
- return Oid.marshaller().marshalNoVersion(this);
- }
-
-
- // /////////////////////////////////////////////////////////
- // encodeable
- // /////////////////////////////////////////////////////////
-
-
- public ParentedOid(DataInputExtended inputStream) throws IOException {
- this(ParentedOid.deString(inputStream.readUTF()));
- }
-
- private ParentedOid(ParentedOid oid) throws IOException {
- this.parentRootOid = oid.getParentOid();
- this.name = oid.name;
- this.hashCode = calculateHash();
- }
-
-
- @Override
- public void encode(DataOutputExtended outputStream) throws IOException {
- outputStream.writeUTF(enString());
- }
-
- // /////////////////////////////////////////////////////////
- // Properties
- // /////////////////////////////////////////////////////////
-
- public String getName() {
- return name;
- }
-
-
- // /////////////////////////////////////////////////////////
- // toString
- // /////////////////////////////////////////////////////////
-
- @Override
- public String toString() {
- return enString();
- }
-
-
-
- // /////////////////////////////////////////////////////////
- // Value semantics
- // /////////////////////////////////////////////////////////
-
- @Override
- public boolean equals(final Object other) {
- if (other == this) {
- return true;
- }
- if (other == null) {
- return false;
- }
- if (getClass() != other.getClass()) {
- return false;
- }
- return equals((ParentedOid) other);
- }
-
- public boolean equals(final ParentedOid other) {
- return Objects.equals(other.getParentOid(), getParentOid()) && Objects.equals(other.name, name);
- }
-
-
- @Override
- public int hashCode() {
- return hashCode;
- }
-
- private int calculateHash() {
- return Objects.hash(getParentOid(), name);
- }
-
-
- // /////////////////////////////////////////////////////////
- // asPersistent
- // /////////////////////////////////////////////////////////
-
- /**
- * When the RootOid is persisted, all its "children"
- * need updating similarly.
- */
- public ParentedOid asPersistent(RootOid newParentRootOid) {
- return new ParentedOid(newParentRootOid, name);
+
+ public static ParentedOid deString(String enString) {
+ return Oid.unmarshaller().unmarshal(enString, ParentedOid.class);
}
-
-
}
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 67e9280..4c483cb 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
@@ -19,83 +19,25 @@
package org.apache.isis.core.metamodel.adapter.oid;
-import static org.apache.isis.commons.internal.base._With.requires;
-
-import java.io.IOException;
import java.io.Serializable;
-import java.util.Objects;
import org.apache.isis.applib.services.bookmark.Bookmark;
-import org.apache.isis.commons.internal.exceptions._Exceptions;
-import org.apache.isis.core.commons.encoding.DataInputExtended;
-import org.apache.isis.core.commons.encoding.DataOutputExtended;
import org.apache.isis.core.commons.url.UrlDecoderUtil;
-import org.apache.isis.core.metamodel.adapter.version.Version;
import org.apache.isis.core.metamodel.spec.ObjectSpecId;
-import org.apache.isis.schema.common.v1.BookmarkObjectState;
import org.apache.isis.schema.common.v1.OidDto;
-public class RootOid implements Oid, Serializable {
-
- // -- fields
- private final static long serialVersionUID = 1L;
+public interface RootOid extends Oid, Serializable {
- private final ObjectSpecId objectSpecId;
- private final String identifier;
- private final State state;
- private final int hashCode;
+ ObjectSpecId getObjectSpecId();
- // not part of equality check
- private Version version;
+ String getIdentifier();
+ Bookmark asBookmark();
- public static RootOid of(final ObjectSpecId objectSpecId, final String identifier, final State state) {
- return of(objectSpecId, identifier, state, Version.empty());
- }
+ OidDto asOidDto();
- public static RootOid of(final ObjectSpecId objectSpecId, final String identifier, final State state, final Version version) {
- return new RootOid(objectSpecId, identifier, state, version);
- }
+ // -- DECODE FROM STRING
- private RootOid(final ObjectSpecId objectSpecId, final String identifier, final State state, final Version version) {
-
- requires(objectSpecId, "objectSpecId");
- requires(identifier, "identifier");
- requires(state, "state");
-
- // too slow...
- // Ensure.ensureThatArg(identifier, is(not(IsisMatchers.contains("#"))), "identifier '" + identifier + "' contains a '#' symbol");
- // Ensure.ensureThatArg(identifier, is(not(IsisMatchers.contains("@"))), "identifier '" + identifier + "' contains an '@' symbol");
-
- this.objectSpecId = objectSpecId;
- this.identifier = identifier;
- this.state = state;
- this.version = version;
- this.hashCode = calculateHash();
- }
-
- // -- Encodeable
- public RootOid(final DataInputExtended input) throws IOException {
- final String oidStr = input.readUTF();
- final RootOid oid = Oid.unmarshaller().unmarshal(oidStr, RootOid.class);
- this.objectSpecId = oid.objectSpecId;
- this.identifier = oid.identifier;
- this.state = oid.state;
-
- requires(objectSpecId, "objectSpecId");
- requires(identifier, "identifier");
- requires(state, "state");
-
- this.version = oid.version;
- this.hashCode = calculateHash();
- }
-
- @Override
- public void encode(final DataOutputExtended output) throws IOException {
- output.writeUTF(enString());
- }
-
- // -- deString'able, enString
public static RootOid deStringEncoded(final String urlEncodedOidStr) {
final String oidStr = UrlDecoderUtil.urlDecode(urlEncodedOidStr);
return deString(oidStr);
@@ -105,141 +47,4 @@ public class RootOid implements Oid, Serializable {
return Oid.unmarshaller().unmarshal(oidStr, RootOid.class);
}
- @Override
- public String enString() {
- return Oid.marshaller().marshal(this);
- }
-
- @Override
- public String enStringNoVersion() {
- return Oid.marshaller().marshalNoVersion(this);
- }
-
-
- // -- Properties
- public ObjectSpecId getObjectSpecId() {
- return objectSpecId;
- }
-
- public String getIdentifier() {
- return identifier;
- }
-
- @Override
- public boolean isTransient() {
- return state.isTransient();
- }
-
- @Override
- public boolean isViewModel() {
- return state.isViewModel();
- }
-
- @Override
- public boolean isPersistent() {
- return state.isPersistent();
- }
-
- // -- Version
-
- @Override
- public Version getVersion() {
- return version;
- }
-
- @Override
- public void setVersion(final Version version) {
- this.version = version;
- }
-
-
- // -- asBookmark, asOidDto
- public Bookmark asBookmark() {
- final String objectType = state.asBookmarkObjectState().getCode() + getObjectSpecId().asString();
- final String identifier = getIdentifier();
- return new Bookmark(objectType, identifier);
- }
-
- public OidDto asOidDto() {
-
- final OidDto oidDto = new OidDto();
-
- oidDto.setType(getObjectSpecId().asString());
- oidDto.setId(getIdentifier());
-
- final Bookmark.ObjectState objectState = state.asBookmarkObjectState();
- final BookmarkObjectState bookmarkState = objectState.toBookmarkState();
- // persistent is assumed if not specified...
- oidDto.setObjectState(
- bookmarkState != BookmarkObjectState.PERSISTENT ? bookmarkState : null);
-
- return oidDto;
- }
-
-
-
- // -- equals, hashCode
-
- private int calculateHash() {
- return Objects.hash(objectSpecId, identifier, state);
- }
-
- @Override
- public boolean equals(final Object other) {
- if (other == null) {
- return false;
- }
- if (other == this) {
- return true;
- }
- if (getClass() != other.getClass()) {
- return false;
- }
- return equals((RootOid) other);
- }
-
- public boolean equals(final RootOid other) {
- return Objects.equals(objectSpecId, other.getObjectSpecId()) &&
- Objects.equals(identifier, other.getIdentifier()) &&
- Objects.equals(state, other.state);
- }
-
- @Override
- public int hashCode() {
- return hashCode;
- }
-
-
-
- // -- toString
- @Override
- public String toString() {
- return enString();
- }
-
- // -- ROOT-ID SUPPORT FOR VALUE
-
- private RootOid() { identifier=null; objectSpecId=null; state=null; hashCode=0;};
-
- private static final RootOid VALUE_OID = new RootOid() {
- private static final long serialVersionUID = 2L;
- @Override public boolean isValue() { return true; }
-// @Override public boolean isTransient() { return false; }
-// @Override public boolean isPersistent() { return false; }
-// @Override public boolean isViewModel() { return false; }
-
- @Override public boolean isTransient() { throw _Exceptions.unexpectedCodeReach(); }
- @Override public boolean isPersistent() { throw _Exceptions.unexpectedCodeReach(); }
- @Override public boolean isViewModel() { throw _Exceptions.unexpectedCodeReach(); }
- @Override public String toString() { return "VALUE_OID"; }
-
- };
-
- public static RootOid value() {
- return VALUE_OID;
- }
-
- // --
-
-
}
diff --git a/core/metamodel/src/test/java/org/apache/isis/core/metamodel/adapter/oid/CollectionOidTest_valueSemantics.java b/core/metamodel/src/test/java/org/apache/isis/core/metamodel/adapter/oid/CollectionOidTest_valueSemantics.java
index b0fa18e..6baa11a 100644
--- a/core/metamodel/src/test/java/org/apache/isis/core/metamodel/adapter/oid/CollectionOidTest_valueSemantics.java
+++ b/core/metamodel/src/test/java/org/apache/isis/core/metamodel/adapter/oid/CollectionOidTest_valueSemantics.java
@@ -21,28 +21,27 @@ package org.apache.isis.core.metamodel.adapter.oid;
import java.util.Arrays;
import java.util.List;
-import org.apache.isis.core.metamodel.adapter.oid.Oid.State;
import org.apache.isis.core.metamodel.spec.ObjectSpecId;
import org.apache.isis.core.unittestsupport.value.ValueTypeContractTestAbstract;
public class CollectionOidTest_valueSemantics extends ValueTypeContractTestAbstract<ParentedOid> {
- private final RootOid parent = RootOid.of(ObjectSpecId.of("CUS"), "123", State.PERSISTENT);
- private final RootOid otherParent = RootOid.of(ObjectSpecId.of("CUS"), "124", State.PERSISTENT);
+ private final RootOid parent = Oid.Factory.persistentOf(ObjectSpecId.of("CUS"), "123");
+ private final RootOid otherParent = Oid.Factory.persistentOf(ObjectSpecId.of("CUS"), "124");
@Override
protected List<ParentedOid> getObjectsWithSameValue() {
return Arrays.asList(
- ParentedOid.ofName(parent, "456"),
- ParentedOid.ofName(parent, "456"),
- ParentedOid.ofName(parent, "456"));
+ Oid.Factory.parentedOfName(parent, "456"),
+ Oid.Factory.parentedOfName(parent, "456"),
+ Oid.Factory.parentedOfName(parent, "456"));
}
@Override
protected List<ParentedOid> getObjectsWithDifferentValue() {
return Arrays.asList(
- ParentedOid.ofName(otherParent, "456"),
- ParentedOid.ofName(parent, "457"));
+ Oid.Factory.parentedOfName(otherParent, "456"),
+ Oid.Factory.parentedOfName(parent, "457"));
}
}
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 0aef2d8..1ce00c0 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
@@ -53,7 +53,7 @@ public class OidMarshallerTest_roundtripping {
@Test
public void collectionOid_withNoVersion() {
RootOid parentOid = Factory.persistentOf(ObjectSpecId.of("CUS"), "123");
- ParentedOid oid = ParentedOid.ofName(parentOid, "items");
+ ParentedOid oid = Factory.parentedOfName(parentOid, "items");
final String enString = oid.enString();
final ParentedOid deString = ParentedOid.deString(enString);
@@ -63,10 +63,10 @@ public class OidMarshallerTest_roundtripping {
@Test
public void collectionOid_withVersion() {
RootOid parentOid = Factory.persistentOf(ObjectSpecId.of("CUS"), "123", 90807L);
- ParentedOid oid = ParentedOid.ofName(parentOid, "items");
+ ParentedOid oid = Factory.parentedOfName(parentOid, "items");
final String enString = oid.enString();
- final ParentedOid deString = ParentedOid.deString(enString);
+ final ParentedOid deString = Oid.unmarshaller().unmarshal(enString, ParentedOid.class);
assertThat(deString, is(oid));
assertThat(deString.getParentOid().getVersion(), is(parentOid.getVersion())); // assert separately because not part of equality check
}
diff --git a/core/metamodel/src/test/java/org/apache/isis/core/metamodel/adapter/oid/RootOidDefaultTest_valueSemantics_whenPersistent.java b/core/metamodel/src/test/java/org/apache/isis/core/metamodel/adapter/oid/RootOidDefaultTest_valueSemantics_whenPersistent.java
index d39b1be..7fd4921 100644
--- a/core/metamodel/src/test/java/org/apache/isis/core/metamodel/adapter/oid/RootOidDefaultTest_valueSemantics_whenPersistent.java
+++ b/core/metamodel/src/test/java/org/apache/isis/core/metamodel/adapter/oid/RootOidDefaultTest_valueSemantics_whenPersistent.java
@@ -21,7 +21,6 @@ package org.apache.isis.core.metamodel.adapter.oid;
import java.util.Arrays;
import java.util.List;
-import org.apache.isis.core.metamodel.adapter.oid.Oid.State;
import org.apache.isis.core.metamodel.spec.ObjectSpecId;
import org.apache.isis.core.unittestsupport.value.ValueTypeContractTestAbstract;
@@ -30,17 +29,17 @@ public class RootOidDefaultTest_valueSemantics_whenPersistent extends ValueTypeC
@Override
protected List<RootOid> getObjectsWithSameValue() {
return Arrays.asList(
- RootOid.of(ObjectSpecId.of("CUS"), "123", State.PERSISTENT),
- RootOid.of(ObjectSpecId.of("CUS"), "123", State.PERSISTENT),
- RootOid.of(ObjectSpecId.of("CUS"), "123", State.PERSISTENT));
+ Oid.Factory.persistentOf(ObjectSpecId.of("CUS"), "123"),
+ Oid.Factory.persistentOf(ObjectSpecId.of("CUS"), "123"),
+ Oid.Factory.persistentOf(ObjectSpecId.of("CUS"), "123"));
}
@Override
protected List<RootOid> getObjectsWithDifferentValue() {
return Arrays.asList(
- RootOid.of(ObjectSpecId.of("CUS"), "123", State.TRANSIENT),
- RootOid.of(ObjectSpecId.of("CUS"), "124", State.PERSISTENT),
- RootOid.of(ObjectSpecId.of("CUX"), "123", State.PERSISTENT));
+ Oid.Factory.transientOf(ObjectSpecId.of("CUS"), "123"),
+ Oid.Factory.persistentOf(ObjectSpecId.of("CUS"), "124"),
+ Oid.Factory.persistentOf(ObjectSpecId.of("CUX"), "123"));
}
}
diff --git a/core/metamodel/src/test/java/org/apache/isis/core/metamodel/adapter/oid/RootOidDefaultTest_valueSemantics_whenTransient.java b/core/metamodel/src/test/java/org/apache/isis/core/metamodel/adapter/oid/RootOidDefaultTest_valueSemantics_whenTransient.java
index d7fffdf..9c84324 100644
--- a/core/metamodel/src/test/java/org/apache/isis/core/metamodel/adapter/oid/RootOidDefaultTest_valueSemantics_whenTransient.java
+++ b/core/metamodel/src/test/java/org/apache/isis/core/metamodel/adapter/oid/RootOidDefaultTest_valueSemantics_whenTransient.java
@@ -21,7 +21,6 @@ package org.apache.isis.core.metamodel.adapter.oid;
import java.util.Arrays;
import java.util.List;
-import org.apache.isis.core.metamodel.adapter.oid.Oid.State;
import org.apache.isis.core.metamodel.spec.ObjectSpecId;
import org.apache.isis.core.unittestsupport.value.ValueTypeContractTestAbstract;
@@ -30,18 +29,18 @@ public class RootOidDefaultTest_valueSemantics_whenTransient extends ValueTypeCo
@Override
protected List<RootOid> getObjectsWithSameValue() {
return Arrays.asList(
- RootOid.of(ObjectSpecId.of("CUS"), "123", State.TRANSIENT),
- RootOid.of(ObjectSpecId.of("CUS"), "123", State.TRANSIENT),
- RootOid.of(ObjectSpecId.of("CUS"), "123", State.TRANSIENT)
+ Oid.Factory.transientOf(ObjectSpecId.of("CUS"), "123"),
+ Oid.Factory.transientOf(ObjectSpecId.of("CUS"), "123"),
+ Oid.Factory.transientOf(ObjectSpecId.of("CUS"), "123")
);
}
@Override
protected List<RootOid> getObjectsWithDifferentValue() {
return Arrays.asList(
- RootOid.of(ObjectSpecId.of("CUS"), "123", State.PERSISTENT),
- RootOid.of(ObjectSpecId.of("CUS"), "124", State.TRANSIENT),
- RootOid.of(ObjectSpecId.of("CUX"), "123", State.TRANSIENT));
+ Oid.Factory.persistentOf(ObjectSpecId.of("CUS"), "123"),
+ Oid.Factory.transientOf(ObjectSpecId.of("CUS"), "124"),
+ Oid.Factory.transientOf(ObjectSpecId.of("CUX"), "123"));
}
}
diff --git a/core/plugins/jdo-datanucleus-4/src/test/java/org/apache/isis/core/runtime/persistence/objectstore/transaction/PojoAdapterBuilder.java b/core/plugins/jdo-datanucleus-4/src/test/java/org/apache/isis/core/runtime/persistence/objectstore/transaction/PojoAdapterBuilder.java
index f627329..2974c01 100644
--- a/core/plugins/jdo-datanucleus-4/src/test/java/org/apache/isis/core/runtime/persistence/objectstore/transaction/PojoAdapterBuilder.java
+++ b/core/plugins/jdo-datanucleus-4/src/test/java/org/apache/isis/core/runtime/persistence/objectstore/transaction/PojoAdapterBuilder.java
@@ -94,7 +94,7 @@ public class PojoAdapterBuilder {
}, COLLECTION {
@Override
Oid oidFor(RootOid rootOid, ObjectSpecId objectSpecId, String collectionId) {
- return Oid.Factory.collectionOfName(rootOid, collectionId);
+ return Oid.Factory.parentedOfName(rootOid, collectionId);
}
}, VALUE {
@Override
diff --git a/core/plugins/jdo-datanucleus-5/src/test/java/org/apache/isis/core/runtime/persistence/objectstore/transaction/PojoAdapterBuilder.java b/core/plugins/jdo-datanucleus-5/src/test/java/org/apache/isis/core/runtime/persistence/objectstore/transaction/PojoAdapterBuilder.java
index abdd3da..e5f3681 100644
--- a/core/plugins/jdo-datanucleus-5/src/test/java/org/apache/isis/core/runtime/persistence/objectstore/transaction/PojoAdapterBuilder.java
+++ b/core/plugins/jdo-datanucleus-5/src/test/java/org/apache/isis/core/runtime/persistence/objectstore/transaction/PojoAdapterBuilder.java
@@ -94,7 +94,7 @@ public class PojoAdapterBuilder {
}, COLLECTION {
@Override
Oid oidFor(RootOid rootOid, ObjectSpecId objectSpecId, String collectionId) {
- return Oid.Factory.collectionOfName(rootOid, collectionId);
+ return Oid.Factory.parentedOfName(rootOid, collectionId);
}
}, VALUE {
@Override
diff --git a/core/runtime/src/main/java/org/apache/isis/core/runtime/system/persistence/adaptermanager/ObjectAdapterContext_NewIdentifier.java b/core/runtime/src/main/java/org/apache/isis/core/runtime/system/persistence/adaptermanager/ObjectAdapterContext_NewIdentifier.java
index da71211..ef0038e 100644
--- a/core/runtime/src/main/java/org/apache/isis/core/runtime/system/persistence/adaptermanager/ObjectAdapterContext_NewIdentifier.java
+++ b/core/runtime/src/main/java/org/apache/isis/core/runtime/system/persistence/adaptermanager/ObjectAdapterContext_NewIdentifier.java
@@ -73,7 +73,7 @@ class ObjectAdapterContext_NewIdentifier {
final String identifier = persistenceSession.identifierFor(pojo);
final ObjectSpecId objectSpecId = spec.getSpecId();
- return RootOid.of(objectSpecId, identifier, Oid.State.PERSISTENT);
+ return Oid.Factory.persistentOf(objectSpecId, identifier);
}
}
\ No newline at end of file
diff --git a/core/runtime/src/main/java/org/apache/isis/core/runtime/system/persistence/adaptermanager/OidProviders.java b/core/runtime/src/main/java/org/apache/isis/core/runtime/system/persistence/adaptermanager/OidProviders.java
index 8a77f0f..1af8f5b 100644
--- a/core/runtime/src/main/java/org/apache/isis/core/runtime/system/persistence/adaptermanager/OidProviders.java
+++ b/core/runtime/src/main/java/org/apache/isis/core/runtime/system/persistence/adaptermanager/OidProviders.java
@@ -60,7 +60,7 @@ public class OidProviders {
@Override
public RootOid oidFor(Object pojo, ObjectSpecification spec) {
final String identifier = PersistenceSession.SERVICE_IDENTIFIER;
- return RootOid.of(spec.getSpecId(), identifier, Oid.State.PERSISTENT);
+ return Oid.Factory.persistentOf(spec.getSpecId(), identifier);
}
}
@@ -82,10 +82,10 @@ public class OidProviders {
final boolean isRecognized = persistenceSession.isRecognized(pojo);
if(isRecognized) {
final String identifier = persistenceSession.identifierFor(pojo);
- return RootOid.of(spec.getSpecId(), identifier, Oid.State.PERSISTENT);
+ return Oid.Factory.persistentOf(spec.getSpecId(), identifier);
} else {
final String identifier = UUID.randomUUID().toString();
- return RootOid.of(spec.getSpecId(), identifier, Oid.State.TRANSIENT);
+ return Oid.Factory.transientOf(spec.getSpecId(), identifier);
}
}
@@ -100,7 +100,7 @@ public class OidProviders {
@Override
public RootOid oidFor(Object pojo, ObjectSpecification spec) {
- return RootOid.value();
+ return Oid.Factory.value();
}
}
@@ -116,7 +116,7 @@ public class OidProviders {
public RootOid oidFor(Object pojo, ObjectSpecification spec) {
final ViewModelFacet recreatableObjectFacet = spec.getFacet(ViewModelFacet.class);
final String identifier = recreatableObjectFacet.memento(pojo);
- return RootOid.of(spec.getSpecId(), identifier, Oid.State.VIEWMODEL);
+ return Oid.Factory.viewmodelOf(spec.getSpecId(), identifier);
}
}
@@ -131,7 +131,7 @@ public class OidProviders {
@Override
public RootOid oidFor(Object pojo, ObjectSpecification spec) {
final String identifier = UUID.randomUUID().toString();
- return RootOid.of(spec.getSpecId(), identifier, Oid.State.TRANSIENT);
+ return Oid.Factory.transientOf(spec.getSpecId(), identifier);
}
}
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 6793401..4a8ae7a 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
@@ -110,7 +110,7 @@ public final class OidUtils {
// ("*") from the specId, meaning that the marshalling logic above in RootOidDefault.deString() creates an
// oid in the wrong state. The code below checks for this and recreates the oid with the current state of 'view model'
if(!rootOid.isViewModel()) {
- return RootOid.of(rootOid.getObjectSpecId(), rootOid.getIdentifier(), Oid.State.VIEWMODEL);
+ return Oid.Factory.viewmodelOf(rootOid.getObjectSpecId(), rootOid.getIdentifier());
}
return rootOid;
}