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/01/17 13:56:43 UTC

[isis] branch master updated: ISIS-2158: improving terminology: 'bookmarkable' -> 'identifiable'

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 11277d9  ISIS-2158: improving terminology: 'bookmarkable' -> 'identifiable'
11277d9 is described below

commit 11277d944e0445f9aea8562e7bb0c850007aa812
Author: Andi Huber <ah...@apache.org>
AuthorDate: Fri Jan 17 14:56:30 2020 +0100

    ISIS-2158: improving terminology: 'bookmarkable' -> 'identifiable'
---
 .../isis/core/metamodel/adapter/oid/Oid.java       | 14 ++---
 .../identify/ObjectIdentifier_builtinHandlers.java |  8 +--
 .../isis/core/metamodel/spec/ManagedObject.java    | 17 +++---
 .../core/metamodel/spec/ObjectSpecification.java   | 11 +++-
 .../specimpl/OneToManyAssociationDefault.java      |  2 +-
 .../specimpl/OneToOneAssociationDefault.java       |  2 +-
 .../oid/CollectionOidTest_valueSemantics.java      | 14 ++---
 .../adapter/oid/OidMarshallerTest_marshall.java    |  2 +-
 .../oid/OidMarshallerTest_roundtripping.java       |  8 +--
 .../core/metamodel/adapter/oid/OidVersionTest.java | 12 ++--
 ...dDefaultTest_valueSemantics_whenPersistent.java | 10 ++--
 .../metamodel/adapter/oid/RootOidTest_create.java  |  2 +-
 .../persistence/adapter/ObjectAdapterForBean.java  |  2 +-
 .../bookmarks/BookmarkServiceInternalDefault.java  |  2 +-
 .../JdoPersistenceCapableFacetImpl.java            |  2 +-
 .../ObjectAdapterContext_Factories.java            |  2 +-
 .../ObjectAdapterContext_NewIdentifier.java        |  2 +-
 .../adapterfactory/pojo/PojoAdapterTest.java       |  4 +-
 .../transaction/PojoAdapterBuilder.java            |  4 +-
 .../runtime/system/ObjectMemberAbstractTest.java   |  2 +-
 .../restfulobjects/applib/RepresentationType.java  | 10 ----
 .../restfulobjects/rendering/IResourceContext.java | 16 +++--
 .../viewer/restfulobjects/rendering/OidUtils.java  | 68 ----------------------
 .../rendering/ReprRendererAbstract.java            |  2 +-
 .../AbstractObjectMemberReprRenderer.java          |  2 +-
 .../domainobjects/DomainObjectReprRenderer.java    |  8 +--
 .../ObjectCollectionReprRenderer.java              |  2 +-
 .../viewer/wicket/model/models/EntityModel.java    |  2 +-
 .../entityactions/EntityActionLinkFactory.java     |  2 +-
 .../integration/ConverterForObjectAdapter.java     |  2 +-
 30 files changed, 84 insertions(+), 152 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 5d20bbe..0a640e1 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
@@ -90,26 +90,24 @@ public interface Oid extends Serializable {
             return Oid_Value.INSTANCE;
         }
 
-        // -- LEGACY
-
         public static RootOid ofBookmark(Bookmark bookmark) {
             return Oid_Root.of(
                     ObjectSpecId.of(bookmark.getObjectType()), 
                     bookmark.getIdentifier());
         }
 
-        public static RootOid of(ObjectSpecId objectSpecId, String mementoStr) {
-            return Oid_Root.of(objectSpecId, mementoStr);
+        public static RootOid root(ObjectSpecId objectSpecId, String identifier) {
+            return Oid_Root.of(objectSpecId, identifier);
         }
         
         // -- PARENTED COLLECTIONS
 
-        public static ParentedOid parentedOfOneToMany(RootOid parentRootOid, OneToManyAssociation oneToMany) {
-            return Oid_Parented.ofOneToManyId(parentRootOid, oneToMany.getId());
+        public static ParentedOid parented(RootOid parent, OneToManyAssociation oneToMany) {
+            return Oid_Parented.ofOneToManyId(parent, oneToMany.getId());
         }
 
-        public static ParentedOid parentedOfOneToManyId(RootOid parentRootOid, String oneToManyId) {
-            return Oid_Parented.ofOneToManyId(parentRootOid, oneToManyId);
+        public static ParentedOid parentedForTesting(RootOid parent, String oneToManyId) {
+            return Oid_Parented.ofOneToManyId(parent, oneToManyId);
         }
         
     }
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/objectmanager/identify/ObjectIdentifier_builtinHandlers.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/objectmanager/identify/ObjectIdentifier_builtinHandlers.java
index 7df40f0..e93df65 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/objectmanager/identify/ObjectIdentifier_builtinHandlers.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/objectmanager/identify/ObjectIdentifier_builtinHandlers.java
@@ -61,7 +61,7 @@ class ObjectIdentifier_builtinHandlers {
         @Override
         public RootOid handle(ManagedObject managedObject) {
             final String identifier = SERVICE_IDENTIFIER;
-            return Oid.Factory.of(managedObject.getSpecification().getSpecId(), identifier);
+            return Oid.Factory.root(managedObject.getSpecification().getSpecId(), identifier);
         }
 
     }
@@ -83,7 +83,7 @@ class ObjectIdentifier_builtinHandlers {
                 throw _Exceptions.unrecoverable(msg);
             }
             val identifier = entityFacet.identifierFor(spec, pojo);
-            return Oid.Factory.of(spec.getSpecId(), identifier);
+            return Oid.Factory.root(spec.getSpecId(), identifier);
         }
 
     }
@@ -114,7 +114,7 @@ class ObjectIdentifier_builtinHandlers {
             val spec = managedObject.getSpecification();
             val recreatableObjectFacet = spec.getFacet(ViewModelFacet.class);
             val identifier = recreatableObjectFacet.memento(managedObject.getPojo());
-            return Oid.Factory.of(spec.getSpecId(), identifier);
+            return Oid.Factory.root(spec.getSpecId(), identifier);
         }
 
     }
@@ -130,7 +130,7 @@ class ObjectIdentifier_builtinHandlers {
         public RootOid handle(ManagedObject managedObject) {
             val spec = managedObject.getSpecification();
             val identifier = UUID.randomUUID().toString();
-            return Oid.Factory.of(spec.getSpecId(), identifier);
+            return Oid.Factory.root(spec.getSpecId(), identifier);
         }
 
     }
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 96709fe..9a980d2 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
@@ -336,16 +336,16 @@ public interface ManagedObject {
         return adapter.getSpecification().isValue();
     }
 
-    static boolean isBookmarkable(ManagedObject adapter) {
+    /**
+     * @return whether the corresponding type can be mapped onto a REFERENCE (schema) or an Oid,
+     * that is the type is 'identifiable' (aka 'referencable' or 'bookmarkable') 
+     */
+    static boolean isIdentifiable(ManagedObject adapter) {
         if(adapter==null) {
             return false;
         }
         val spec = adapter.getSpecification();
-        if(spec.isManagedBean() || spec.isViewModel() || spec.isEntity()) {
-            // services and view models are book-markable
-            return true;
-        }
-        return false;
+        return spec.isIdentifiable();
     }
 
     static boolean isNull(ManagedObject adapter) {
@@ -631,12 +631,11 @@ public interface ManagedObject {
         return _entityState(adapter) == EntityState.persistable_Destroyed;
     }
 
-    @Deprecated
-    static void _whenFirstIsBookmarkable_ensureSecondIsNotTransient(
+    static void _whenFirstIsBookmarkable_ensureSecondIsAsWell(
             ManagedObject first,
             ManagedObject second) {
 
-        if(ManagedObject.isBookmarkable(first) && second!=null) {
+        if(ManagedObject.isIdentifiable(first) && second!=null) {
 
             val refSpec = second.getSpecification();
 
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/spec/ObjectSpecification.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/spec/ObjectSpecification.java
index fa41244..e6a064b 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/spec/ObjectSpecification.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/spec/ObjectSpecification.java
@@ -434,12 +434,19 @@ public interface ObjectSpecification extends Specification, ObjectActionContaine
 
     /**
      * Introspecting up to the level required.
-     * @since 2.0
      * @return whether it's necessary to re-run validations.
+     * @since 2.0
      */
     void introspectUpTo(IntrospectionState upTo);
 
-
+    /**
+     * @return whether the corresponding type can be mapped onto a REFERENCE (schema) or an Oid,
+     * that is the type is 'identifiable' (aka 'referencable' or 'bookmarkable') 
+     * @since 2.0
+     */
+    default boolean isIdentifiable() {
+        return isManagedBean() || isViewModel() || isEntity();
+    }
 
 
 }
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/specimpl/OneToManyAssociationDefault.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/specimpl/OneToManyAssociationDefault.java
index 1cd5160..018c999 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/specimpl/OneToManyAssociationDefault.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/specimpl/OneToManyAssociationDefault.java
@@ -193,7 +193,7 @@ extends ObjectAssociationAbstract implements OneToManyAssociation {
         }
         if (readWrite()) {
             
-            ManagedObject._whenFirstIsBookmarkable_ensureSecondIsNotTransient(
+            ManagedObject._whenFirstIsBookmarkable_ensureSecondIsAsWell(
                     ownerAdapter, 
                     referencedAdapter);
                     
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/specimpl/OneToOneAssociationDefault.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/specimpl/OneToOneAssociationDefault.java
index db95ed0..d443b6e 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/specimpl/OneToOneAssociationDefault.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/specimpl/OneToOneAssociationDefault.java
@@ -201,7 +201,7 @@ public class OneToOneAssociationDefault extends ObjectAssociationAbstract implem
             return;
         }
         
-        ManagedObject._whenFirstIsBookmarkable_ensureSecondIsNotTransient(ownerAdapter, newReferencedAdapter);
+        ManagedObject._whenFirstIsBookmarkable_ensureSecondIsAsWell(ownerAdapter, newReferencedAdapter);
 
         propertySetterFacet.setProperty(this, ownerAdapter, newReferencedAdapter, interactionInitiatedBy);
     }
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 d867944..2afaa7d 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
@@ -26,22 +26,22 @@ import org.apache.isis.core.unittestsupport.value.ValueTypeContractTestAbstract;
 
 public class CollectionOidTest_valueSemantics extends ValueTypeContractTestAbstract<ParentedOid> {
 
-    private final RootOid parent = Oid.Factory.of(ObjectSpecId.of("CUS"), "123");
-    private final RootOid otherParent = Oid.Factory.of(ObjectSpecId.of("CUS"), "124");
+    private final RootOid parent = Oid.Factory.root(ObjectSpecId.of("CUS"), "123");
+    private final RootOid otherParent = Oid.Factory.root(ObjectSpecId.of("CUS"), "124");
 
     @Override
     protected List<ParentedOid> getObjectsWithSameValue() {
         return Arrays.asList(
-                Oid.Factory.parentedOfOneToManyId(parent, "456"),
-                Oid.Factory.parentedOfOneToManyId(parent, "456"),
-                Oid.Factory.parentedOfOneToManyId(parent, "456"));
+                Oid.Factory.parentedForTesting(parent, "456"),
+                Oid.Factory.parentedForTesting(parent, "456"),
+                Oid.Factory.parentedForTesting(parent, "456"));
     }
 
     @Override
     protected List<ParentedOid> getObjectsWithDifferentValue() {
         return Arrays.asList(
-                Oid.Factory.parentedOfOneToManyId(otherParent, "456"),
-                Oid.Factory.parentedOfOneToManyId(parent, "457"));
+                Oid.Factory.parentedForTesting(otherParent, "456"),
+                Oid.Factory.parentedForTesting(parent, "457"));
     }
 
 }
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 b7bd6e8..d654203 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
@@ -37,7 +37,7 @@ public class OidMarshallerTest_marshall {
 
     @Test
     public void rootOid() {
-        final String marshal = oidMarshaller.marshal(Oid.Factory.of(ObjectSpecId.of("CUS"),  "123"));
+        final String marshal = oidMarshaller.marshal(Oid.Factory.root(ObjectSpecId.of("CUS"),  "123"));
         assertThat(marshal, equalTo("CUS:123"));
     }
 
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 ef1dff8..f5ea048 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
@@ -30,7 +30,7 @@ public class OidMarshallerTest_roundtripping {
 
     @Test
     public void rootOid() {
-        RootOid oid = Oid.Factory.of(ObjectSpecId.of("CUS"), "123");
+        RootOid oid = Oid.Factory.root(ObjectSpecId.of("CUS"), "123");
 
         final String enString = oid.enString();
         final RootOid deString = RootOid.deString(enString);
@@ -39,8 +39,8 @@ public class OidMarshallerTest_roundtripping {
 
     @Test
     public void collectionOid() {
-        RootOid parentOid = Oid.Factory.of(ObjectSpecId.of("CUS"), "123");
-        ParentedOid oid = Oid.Factory.parentedOfOneToManyId(parentOid, "items");
+        RootOid parentOid = Oid.Factory.root(ObjectSpecId.of("CUS"), "123");
+        ParentedOid oid = Oid.Factory.parentedForTesting(parentOid, "items");
 
         final String enString = oid.enString();
         final ParentedOid deString = ParentedOid.deString(enString);
@@ -49,7 +49,7 @@ public class OidMarshallerTest_roundtripping {
     
     @Test
     public void rootOid_withLegacyVersionIgnored() {
-        RootOid oid = Oid.Factory.of(ObjectSpecId.of("CUS"), "123");
+        RootOid oid = Oid.Factory.root(ObjectSpecId.of("CUS"), "123");
 
         final String enString = oid.enString();
         final RootOid deString = RootOid.deString(enString + "^" + 90807L);
diff --git a/core/metamodel/src/test/java/org/apache/isis/core/metamodel/adapter/oid/OidVersionTest.java b/core/metamodel/src/test/java/org/apache/isis/core/metamodel/adapter/oid/OidVersionTest.java
index fda7726..1296444 100644
--- a/core/metamodel/src/test/java/org/apache/isis/core/metamodel/adapter/oid/OidVersionTest.java
+++ b/core/metamodel/src/test/java/org/apache/isis/core/metamodel/adapter/oid/OidVersionTest.java
@@ -36,24 +36,24 @@ public class OidVersionTest  {
 
     @Test
     public void whenEquivalent() throws Exception {
-        oid1 = Oid.Factory.of(cusObjectSpecId, "123");
-        oid2 = Oid.Factory.of(cusObjectSpecId, "123");
+        oid1 = Oid.Factory.root(cusObjectSpecId, "123");
+        oid2 = Oid.Factory.root(cusObjectSpecId, "123");
 
         assertThat(oid1, is(equalTo(oid2)));
     }
 
     @Test
     public void whenNotEquivalentById() throws Exception {
-        oid1 = Oid.Factory.of(cusObjectSpecId, "123");
-        oid2 = Oid.Factory.of(cusObjectSpecId, "124");
+        oid1 = Oid.Factory.root(cusObjectSpecId, "123");
+        oid2 = Oid.Factory.root(cusObjectSpecId, "124");
 
         assertThat(oid1, is(not(equalTo(oid2))));
     }
 
     @Test
     public void whenNotEquivalentByObjectSpecId() throws Exception {
-        oid1 = Oid.Factory.of(cusObjectSpecId, "123");
-        oid2 = Oid.Factory.of(ordObjectSpecId, "123");
+        oid1 = Oid.Factory.root(cusObjectSpecId, "123");
+        oid2 = Oid.Factory.root(ordObjectSpecId, "123");
 
         assertThat(oid1, is(not(equalTo(oid2))));
     }
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 d2f1fd3..715ef07 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
@@ -29,17 +29,17 @@ public class RootOidDefaultTest_valueSemantics_whenPersistent extends ValueTypeC
     @Override
     protected List<RootOid> getObjectsWithSameValue() {
         return Arrays.asList(
-                Oid.Factory.of(ObjectSpecId.of("CUS"), "123"),
-                Oid.Factory.of(ObjectSpecId.of("CUS"), "123"),
-                Oid.Factory.of(ObjectSpecId.of("CUS"), "123"));
+                Oid.Factory.root(ObjectSpecId.of("CUS"), "123"),
+                Oid.Factory.root(ObjectSpecId.of("CUS"), "123"),
+                Oid.Factory.root(ObjectSpecId.of("CUS"), "123"));
     }
 
     @Override
     protected List<RootOid> getObjectsWithDifferentValue() {
         return Arrays.asList(
                 //Oid.Factory.of(ObjectSpecId.of("CUS"), "123"),
-                Oid.Factory.of(ObjectSpecId.of("CUS"), "124"),
-                Oid.Factory.of(ObjectSpecId.of("CUX"), "123"));
+                Oid.Factory.root(ObjectSpecId.of("CUS"), "124"),
+                Oid.Factory.root(ObjectSpecId.of("CUX"), "123"));
     }
 
 }
diff --git a/core/metamodel/src/test/java/org/apache/isis/core/metamodel/adapter/oid/RootOidTest_create.java b/core/metamodel/src/test/java/org/apache/isis/core/metamodel/adapter/oid/RootOidTest_create.java
index 298ea31..213adb3 100644
--- a/core/metamodel/src/test/java/org/apache/isis/core/metamodel/adapter/oid/RootOidTest_create.java
+++ b/core/metamodel/src/test/java/org/apache/isis/core/metamodel/adapter/oid/RootOidTest_create.java
@@ -31,7 +31,7 @@ public class RootOidTest_create {
     @Test
     public void create() throws Exception {
         ObjectSpecId objectSpecId = ObjectSpecId.of("CUS");
-        RootOid oid = Oid.Factory.of(objectSpecId, "123");
+        RootOid oid = Oid.Factory.root(objectSpecId, "123");
         assertThat(oid.getObjectSpecId(), is(objectSpecId));
         assertThat(oid.getIdentifier(), is("123"));
     }
diff --git a/core/runtime/src/main/java/org/apache/isis/core/runtime/persistence/adapter/ObjectAdapterForBean.java b/core/runtime/src/main/java/org/apache/isis/core/runtime/persistence/adapter/ObjectAdapterForBean.java
index b5b3a9e..efa6b04 100644
--- a/core/runtime/src/main/java/org/apache/isis/core/runtime/persistence/adapter/ObjectAdapterForBean.java
+++ b/core/runtime/src/main/java/org/apache/isis/core/runtime/persistence/adapter/ObjectAdapterForBean.java
@@ -53,7 +53,7 @@ public class ObjectAdapterForBean implements ObjectAdapter {
     @Override
     public Oid getOid() {
         val spec = getSpecification();
-        return Oid.Factory.of(spec.getSpecId(), bean.getId());
+        return Oid.Factory.root(spec.getSpecId(), bean.getId());
     }
 
 //    @Override
diff --git a/core/runtimeservices/src/main/java/org/apache/isis/core/runtimeservices/bookmarks/BookmarkServiceInternalDefault.java b/core/runtimeservices/src/main/java/org/apache/isis/core/runtimeservices/bookmarks/BookmarkServiceInternalDefault.java
index f3d8d6a..e739ed5 100644
--- a/core/runtimeservices/src/main/java/org/apache/isis/core/runtimeservices/bookmarks/BookmarkServiceInternalDefault.java
+++ b/core/runtimeservices/src/main/java/org/apache/isis/core/runtimeservices/bookmarks/BookmarkServiceInternalDefault.java
@@ -139,7 +139,7 @@ public class BookmarkServiceInternalDefault implements BookmarkService, Serializ
             return null;
         }
         val adapter = objectManager.adapt(unwrapped(domainObject)); 
-        if(!ManagedObject.isBookmarkable(adapter)){
+        if(!ManagedObject.isIdentifiable(adapter)){
             // eg values cannot be bookmarked
             return null;
         }
diff --git a/persistence/jdo/datanucleus-5/src/main/java/org/apache/isis/persistence/jdo/datanucleus5/metamodel/facets/object/persistencecapable/JdoPersistenceCapableFacetImpl.java b/persistence/jdo/datanucleus-5/src/main/java/org/apache/isis/persistence/jdo/datanucleus5/metamodel/facets/object/persistencecapable/JdoPersistenceCapableFacetImpl.java
index c22141d..74f803b 100644
--- a/persistence/jdo/datanucleus-5/src/main/java/org/apache/isis/persistence/jdo/datanucleus5/metamodel/facets/object/persistencecapable/JdoPersistenceCapableFacetImpl.java
+++ b/persistence/jdo/datanucleus-5/src/main/java/org/apache/isis/persistence/jdo/datanucleus5/metamodel/facets/object/persistencecapable/JdoPersistenceCapableFacetImpl.java
@@ -54,7 +54,7 @@ public class JdoPersistenceCapableFacetImpl extends JdoPersistenceCapableFacetAb
         }
         
         val persistenceSession = super.getPersistenceSessionJdo();
-        val rootOid = Oid.Factory.of(spec.getSpecId(), identifier);
+        val rootOid = Oid.Factory.root(spec.getSpecId(), identifier);
         
         val pojo = persistenceSession.fetchPersistentPojo(rootOid);
         
diff --git a/persistence/jdo/datanucleus-5/src/main/java/org/apache/isis/persistence/jdo/datanucleus5/objectadapter/ObjectAdapterContext_Factories.java b/persistence/jdo/datanucleus-5/src/main/java/org/apache/isis/persistence/jdo/datanucleus5/objectadapter/ObjectAdapterContext_Factories.java
index 6cbd5be..0f8eb29 100644
--- a/persistence/jdo/datanucleus-5/src/main/java/org/apache/isis/persistence/jdo/datanucleus5/objectadapter/ObjectAdapterContext_Factories.java
+++ b/persistence/jdo/datanucleus-5/src/main/java/org/apache/isis/persistence/jdo/datanucleus5/objectadapter/ObjectAdapterContext_Factories.java
@@ -66,7 +66,7 @@ class ObjectAdapterContext_Factories implements ObjectAdapterFactories {
         _Assert.assertNotNull(pojo);
 
         // persistence of collection follows the parent
-        final ParentedOid collectionOid = Oid.Factory.parentedOfOneToMany(parentOid, otma);
+        final ParentedOid collectionOid = Oid.Factory.parented(parentOid, otma);
         final ObjectAdapter collectionAdapter = createCollectionAdapter(pojo, collectionOid);
         return collectionAdapter;
     }
diff --git a/persistence/jdo/datanucleus-5/src/main/java/org/apache/isis/persistence/jdo/datanucleus5/objectadapter/ObjectAdapterContext_NewIdentifier.java b/persistence/jdo/datanucleus-5/src/main/java/org/apache/isis/persistence/jdo/datanucleus5/objectadapter/ObjectAdapterContext_NewIdentifier.java
index 87beceb..e27cbfd 100644
--- a/persistence/jdo/datanucleus-5/src/main/java/org/apache/isis/persistence/jdo/datanucleus5/objectadapter/ObjectAdapterContext_NewIdentifier.java
+++ b/persistence/jdo/datanucleus-5/src/main/java/org/apache/isis/persistence/jdo/datanucleus5/objectadapter/ObjectAdapterContext_NewIdentifier.java
@@ -58,7 +58,7 @@ class ObjectAdapterContext_NewIdentifier {
         final String identifier = persistenceSession.identifierFor(pojo);
 
         final ObjectSpecId objectSpecId = spec.getSpecId();
-        return Oid.Factory.of(objectSpecId, identifier);
+        return Oid.Factory.root(objectSpecId, identifier);
     }
 
 }
\ No newline at end of file
diff --git a/persistence/jdo/datanucleus-5/src/test/java/org/apache/isis/core/runtime/persistence/adapterfactory/pojo/PojoAdapterTest.java b/persistence/jdo/datanucleus-5/src/test/java/org/apache/isis/core/runtime/persistence/adapterfactory/pojo/PojoAdapterTest.java
index 59b216e..d7350f5 100644
--- a/persistence/jdo/datanucleus-5/src/test/java/org/apache/isis/core/runtime/persistence/adapterfactory/pojo/PojoAdapterTest.java
+++ b/persistence/jdo/datanucleus-5/src/test/java/org/apache/isis/core/runtime/persistence/adapterfactory/pojo/PojoAdapterTest.java
@@ -53,7 +53,7 @@ public class PojoAdapterTest {
 
         adapter = PojoAdapter.of(
                 domainObject, 
-                Factory.of(ObjectSpecId.of("CUS"), "1"),
+                Factory.root(ObjectSpecId.of("CUS"), "1"),
                 mockSpecificationLoader);
 
         allowUnimportantMethodCallsOn();
@@ -70,7 +70,7 @@ public class PojoAdapterTest {
 
     @Test
     public void getOid_initially() {
-        assertEquals(Factory.of(ObjectSpecId.of("CUS"), "1"), adapter.getOid());
+        assertEquals(Factory.root(ObjectSpecId.of("CUS"), "1"), adapter.getOid());
     }
 
     @Test
diff --git a/persistence/jdo/datanucleus-5/src/test/java/org/apache/isis/core/runtime/persistence/objectstore/transaction/PojoAdapterBuilder.java b/persistence/jdo/datanucleus-5/src/test/java/org/apache/isis/core/runtime/persistence/objectstore/transaction/PojoAdapterBuilder.java
index 656cff0..6d2062a 100644
--- a/persistence/jdo/datanucleus-5/src/test/java/org/apache/isis/core/runtime/persistence/objectstore/transaction/PojoAdapterBuilder.java
+++ b/persistence/jdo/datanucleus-5/src/test/java/org/apache/isis/core/runtime/persistence/objectstore/transaction/PojoAdapterBuilder.java
@@ -52,7 +52,7 @@ public class PojoAdapterBuilder {
         PERSISTENT {
             @Override
             RootOid createOid(ObjectSpecId objectSpecId, String identifier) {
-                return Factory.of(objectSpecId, identifier);
+                return Factory.root(objectSpecId, identifier);
             }
         },
         VALUE {
@@ -73,7 +73,7 @@ public class PojoAdapterBuilder {
         }, COLLECTION {
             @Override
             Oid oidFor(RootOid rootOid, ObjectSpecId objectSpecId, String collectionId) {
-                return Oid.Factory.parentedOfOneToManyId(rootOid, collectionId);
+                return Oid.Factory.parentedForTesting(rootOid, collectionId);
             }
         }, VALUE {
             @Override
diff --git a/persistence/jdo/datanucleus-5/src/test/java/org/apache/isis/core/runtime/system/ObjectMemberAbstractTest.java b/persistence/jdo/datanucleus-5/src/test/java/org/apache/isis/core/runtime/system/ObjectMemberAbstractTest.java
index c42ace5..34e030f 100644
--- a/persistence/jdo/datanucleus-5/src/test/java/org/apache/isis/core/runtime/system/ObjectMemberAbstractTest.java
+++ b/persistence/jdo/datanucleus-5/src/test/java/org/apache/isis/core/runtime/system/ObjectMemberAbstractTest.java
@@ -98,7 +98,7 @@ public class ObjectMemberAbstractTest {
 
         persistentAdapter = PojoAdapter.of(
                 mockPersistable,
-                Factory.of(ObjectSpecId.of("CUS"), "1"),
+                Factory.root(ObjectSpecId.of("CUS"), "1"),
                 mockSpecificationLoader);
 
         testMember = new ObjectMemberAbstractImpl(metaModelContext, "id");
diff --git a/viewers/restfulobjects/applib/src/main/java/org/apache/isis/viewer/restfulobjects/applib/RepresentationType.java b/viewers/restfulobjects/applib/src/main/java/org/apache/isis/viewer/restfulobjects/applib/RepresentationType.java
index 8f98351..42347a7 100644
--- a/viewers/restfulobjects/applib/src/main/java/org/apache/isis/viewer/restfulobjects/applib/RepresentationType.java
+++ b/viewers/restfulobjects/applib/src/main/java/org/apache/isis/viewer/restfulobjects/applib/RepresentationType.java
@@ -199,16 +199,6 @@ public enum RepresentationType {
         return getJsonMediaType(Collections.singletonMap(parameter, paramValue));
     }
 
-    /**
-     * Clones the (immutable) {@link #getMediaType() media type}, adding all provided
-     * parameters.
-     *
-     * @deprecated - use {@link #getJsonMediaType(Map)} instead.
-     */
-    @Deprecated
-    public MediaType getMediaType(Map<String, String> mediaTypeParams) {
-        return getJsonMediaType(mediaTypeParams);
-    }
     public MediaType getJsonMediaType(Map<String, String> mediaTypeParams) {
         Map<String, String> parameters = new HashMap<>(jsonMediaType.getParameters());
         parameters.putAll(mediaTypeParams);
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 27306f9..89a37e6 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
@@ -25,6 +25,8 @@ import javax.ws.rs.core.MediaType;
 import org.apache.isis.applib.annotation.Where;
 import org.apache.isis.applib.services.registry.ServiceRegistry;
 import org.apache.isis.core.config.IsisConfiguration;
+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.context.MetaModelContext;
 import org.apache.isis.core.metamodel.spec.ManagedObject;
@@ -34,6 +36,8 @@ import org.apache.isis.viewer.restfulobjects.rendering.domainobjects.DomainObjec
 import org.apache.isis.viewer.restfulobjects.rendering.domainobjects.ObjectAdapterLinkTo;
 import org.apache.isis.viewer.restfulobjects.rendering.service.RepresentationService;
 
+import lombok.val;
+
 public interface IResourceContext {
 
     String urlFor(final String url);
@@ -85,15 +89,17 @@ public interface IResourceContext {
 
     @Deprecated
     default ManagedObject getObjectAdapterElseNull(String oidFromHref) {
-        return OidUtils.getObjectAdapterElseNull(this, oidFromHref);
+        String oidStrUnencoded = UrlDecoderUtils.urlDecode(oidFromHref);
+        val rootOid = RootOid.deString(oidStrUnencoded);
+        return ManagedObject._adapterOfRootOid(getSpecificationLoader(), rootOid);
     }
 
     @Deprecated
     default ManagedObject getObjectAdapterElseNull(String domainType, String instanceIdEncoded) {
-        return OidUtils.getObjectAdapterElseNull(this, domainType, instanceIdEncoded);
+        final String instanceIdUnencoded = UrlDecoderUtils.urlDecode(instanceIdEncoded);
+        String oidStrUnencoded = Oid.marshaller().joinAsOid(domainType, instanceIdUnencoded);
+        val rootOid = RootOid.deString(oidStrUnencoded);
+        return ManagedObject._adapterOfRootOid(getSpecificationLoader(), rootOid);
     }
 
-    
-    
-
 }
diff --git a/viewers/restfulobjects/rendering/src/main/java/org/apache/isis/viewer/restfulobjects/rendering/OidUtils.java b/viewers/restfulobjects/rendering/src/main/java/org/apache/isis/viewer/restfulobjects/rendering/OidUtils.java
deleted file mode 100644
index 2ccded0..0000000
--- a/viewers/restfulobjects/rendering/src/main/java/org/apache/isis/viewer/restfulobjects/rendering/OidUtils.java
+++ /dev/null
@@ -1,68 +0,0 @@
-/*
- *  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.viewer.restfulobjects.rendering;
-
-import org.apache.isis.core.metamodel.adapter.oid.Oid;
-import org.apache.isis.core.metamodel.adapter.oid.RootOid;
-import org.apache.isis.core.metamodel.spec.ManagedObject;
-
-import lombok.val;
-
-@Deprecated // use framework API instead, needs migration
-final class OidUtils {
-
-    private OidUtils() {
-    }
-
-    /**
-     * @return {@code null} if not persistent and not a view model.
-     */
-    public static ManagedObject getObjectAdapterElseNull(
-            final IResourceContext resourceContext,
-            final String domainType, 
-            final String instanceIdEncoded) {
-
-        final String instanceIdUnencoded = UrlDecoderUtils.urlDecode(instanceIdEncoded);
-        String oidStrUnencoded = Oid.marshaller().joinAsOid(domainType, instanceIdUnencoded);
-        return getObjectAdapter(resourceContext, oidStrUnencoded);
-    }
-
-    /**
-     * see {@link #getObjectAdapterElseNull(org.apache.isis.viewer.restfulobjects.rendering.IResourceContext, String, String)}
-     */
-    public static ManagedObject getObjectAdapterElseNull(
-            final IResourceContext resourceContext,
-            final String oidStrEncoded) {
-
-        String oidStrUnencoded = UrlDecoderUtils.urlDecode(oidStrEncoded);
-        return getObjectAdapter(resourceContext, oidStrUnencoded);
-    }
-
-    // -- HELPER
-
-    private static ManagedObject getObjectAdapter(
-            final IResourceContext resourceContext,
-            final String oidStrUnencoded) {
-
-        val rootOid = RootOid.deString(oidStrUnencoded);
-        return ManagedObject._adapterOfRootOid(resourceContext.getSpecificationLoader(), rootOid);
-    }
-
-
-}
diff --git a/viewers/restfulobjects/rendering/src/main/java/org/apache/isis/viewer/restfulobjects/rendering/ReprRendererAbstract.java b/viewers/restfulobjects/rendering/src/main/java/org/apache/isis/viewer/restfulobjects/rendering/ReprRendererAbstract.java
index 48d86b9..2eed057 100644
--- a/viewers/restfulobjects/rendering/src/main/java/org/apache/isis/viewer/restfulobjects/rendering/ReprRendererAbstract.java
+++ b/viewers/restfulobjects/rendering/src/main/java/org/apache/isis/viewer/restfulobjects/rendering/ReprRendererAbstract.java
@@ -92,7 +92,7 @@ implements ReprRenderer<R, T> {
 
     @Override
     public MediaType getMediaType() {
-        return representationType.getMediaType(mediaTypeParams);
+        return representationType.getJsonMediaType(mediaTypeParams);
     }
 
     protected void addMediaTypeParams(String param, String paramValue) {
diff --git a/viewers/restfulobjects/rendering/src/main/java/org/apache/isis/viewer/restfulobjects/rendering/domainobjects/AbstractObjectMemberReprRenderer.java b/viewers/restfulobjects/rendering/src/main/java/org/apache/isis/viewer/restfulobjects/rendering/domainobjects/AbstractObjectMemberReprRenderer.java
index 60eabc3..cb25538 100644
--- a/viewers/restfulobjects/rendering/src/main/java/org/apache/isis/viewer/restfulobjects/rendering/domainobjects/AbstractObjectMemberReprRenderer.java
+++ b/viewers/restfulobjects/rendering/src/main/java/org/apache/isis/viewer/restfulobjects/rendering/domainobjects/AbstractObjectMemberReprRenderer.java
@@ -256,7 +256,7 @@ extends ReprRendererAbstract<R, ObjectAndMember<T>> {
     }
 
     private void addDetailsLinkIfPersistent() {
-        if (!ManagedObject.isBookmarkable(objectAdapter)) {
+        if (!ManagedObject.isIdentifiable(objectAdapter)) {
             return;
         }
         final JsonRepresentation link = linkTo.memberBuilder(Rel.DETAILS, objectMemberType, objectMember).build();
diff --git a/viewers/restfulobjects/rendering/src/main/java/org/apache/isis/viewer/restfulobjects/rendering/domainobjects/DomainObjectReprRenderer.java b/viewers/restfulobjects/rendering/src/main/java/org/apache/isis/viewer/restfulobjects/rendering/domainobjects/DomainObjectReprRenderer.java
index 7cc1042..d9f4aad 100644
--- a/viewers/restfulobjects/rendering/src/main/java/org/apache/isis/viewer/restfulobjects/rendering/domainobjects/DomainObjectReprRenderer.java
+++ b/viewers/restfulobjects/rendering/src/main/java/org/apache/isis/viewer/restfulobjects/rendering/domainobjects/DomainObjectReprRenderer.java
@@ -163,7 +163,7 @@ public class DomainObjectReprRenderer extends ReprRendererAbstract<DomainObjectR
         if (!(mode.isArgs())) {
 
             // self, extensions.oid
-            if (ManagedObject.isBookmarkable(objectAdapter)) {
+            if (ManagedObject.isIdentifiable(objectAdapter)) {
                 if (includesSelf) {
                     addLinkToSelf();
                 }
@@ -210,7 +210,7 @@ public class DomainObjectReprRenderer extends ReprRendererAbstract<DomainObjectR
 
             // extensions
             getExtensions().mapPut("isService", isService);
-            getExtensions().mapPut("isPersistent", ManagedObject.isBookmarkable(objectAdapter));
+            getExtensions().mapPut("isPersistent", ManagedObject.isIdentifiable(objectAdapter));
             if(isService) {
                 final ObjectSpecification objectSpec = objectAdapter.getSpecification();
                 final DomainServiceLayoutFacet layoutFacet =
@@ -400,7 +400,7 @@ public class DomainObjectReprRenderer extends ReprRendererAbstract<DomainObjectR
     }
 
     private void addPersistLinkIfTransientAndPersistable() {
-        if (ManagedObject.isBookmarkable(objectAdapter)) {
+        if (ManagedObject.isIdentifiable(objectAdapter)) {
             return;
         }
         final DomainObjectReprRenderer renderer =
@@ -433,7 +433,7 @@ public class DomainObjectReprRenderer extends ReprRendererAbstract<DomainObjectR
         if(mode.isEventSerialization()) {
             return;
         }
-        if (!ManagedObject.isBookmarkable(objectAdapter)) {
+        if (!ManagedObject.isIdentifiable(objectAdapter)) {
             return;
         }
         final boolean isService = objectAdapter.getSpecification().isManagedBean();
diff --git a/viewers/restfulobjects/rendering/src/main/java/org/apache/isis/viewer/restfulobjects/rendering/domainobjects/ObjectCollectionReprRenderer.java b/viewers/restfulobjects/rendering/src/main/java/org/apache/isis/viewer/restfulobjects/rendering/domainobjects/ObjectCollectionReprRenderer.java
index d1d93e7..cbafbf7 100644
--- a/viewers/restfulobjects/rendering/src/main/java/org/apache/isis/viewer/restfulobjects/rendering/domainobjects/ObjectCollectionReprRenderer.java
+++ b/viewers/restfulobjects/rendering/src/main/java/org/apache/isis/viewer/restfulobjects/rendering/domainobjects/ObjectCollectionReprRenderer.java
@@ -67,7 +67,7 @@ public class ObjectCollectionReprRenderer extends AbstractObjectMemberReprRender
         final LinkFollowSpecs followValue = getLinkFollowSpecs().follow("value");
         boolean eagerlyRender = resourceContext.honorUiHints() && renderEagerly() || !followValue.isTerminated();
 
-        if ((mode.isInline() && eagerlyRender) || mode.isStandalone() || mode.isMutated() || mode.isEventSerialization() || !ManagedObject.isBookmarkable(objectAdapter)) {
+        if ((mode.isInline() && eagerlyRender) || mode.isStandalone() || mode.isMutated() || mode.isEventSerialization() || !ManagedObject.isIdentifiable(objectAdapter)) {
             addValue(followValue);
         }
         if(!mode.isEventSerialization()) {
diff --git a/viewers/wicket/model/src/main/java/org/apache/isis/viewer/wicket/model/models/EntityModel.java b/viewers/wicket/model/src/main/java/org/apache/isis/viewer/wicket/model/models/EntityModel.java
index 0fe60f8..7d6ec2c 100644
--- a/viewers/wicket/model/src/main/java/org/apache/isis/viewer/wicket/model/models/EntityModel.java
+++ b/viewers/wicket/model/src/main/java/org/apache/isis/viewer/wicket/model/models/EntityModel.java
@@ -76,7 +76,7 @@ implements ObjectAdapterModel, UiHintContainer {
     public static PageParameters createPageParameters(ManagedObject adapter) {
 
         val pageParameters = PageParametersUtils.newPageParameters();
-        val isEntity = ManagedObject.isBookmarkable(adapter);
+        val isEntity = ManagedObject.isIdentifiable(adapter);
 
         if (isEntity) {
             val oidStr = ManagedObject._identify(adapter).enString();
diff --git a/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/actionmenu/entityactions/EntityActionLinkFactory.java b/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/actionmenu/entityactions/EntityActionLinkFactory.java
index 3e3476f..f7db9aa 100644
--- a/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/actionmenu/entityactions/EntityActionLinkFactory.java
+++ b/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/actionmenu/entityactions/EntityActionLinkFactory.java
@@ -51,7 +51,7 @@ public final class EntityActionLinkFactory extends ActionLinkFactoryAbstract {
 
 
         
-        val isBookmarkable = ManagedObject.isBookmarkable(objectAdapter);
+        val isBookmarkable = ManagedObject.isIdentifiable(objectAdapter);
         if (!isBookmarkable) {
             throw new IllegalArgumentException(String.format(
                     "Object '%s' is not persistent/bookmarkable.", objectAdapter.titleString(null)));
diff --git a/viewers/wicket/viewer/src/main/java/org/apache/isis/viewer/wicket/viewer/integration/ConverterForObjectAdapter.java b/viewers/wicket/viewer/src/main/java/org/apache/isis/viewer/wicket/viewer/integration/ConverterForObjectAdapter.java
index 767a06a..9e2031d 100644
--- a/viewers/wicket/viewer/src/main/java/org/apache/isis/viewer/wicket/viewer/integration/ConverterForObjectAdapter.java
+++ b/viewers/wicket/viewer/src/main/java/org/apache/isis/viewer/wicket/viewer/integration/ConverterForObjectAdapter.java
@@ -69,7 +69,7 @@ public class ConverterForObjectAdapter implements IConverter<ManagedObject> {
     @Override
     public String convertToString(final ManagedObject adapter, final Locale locale) {
         
-        if(!ManagedObject.isBookmarkable(adapter)) {
+        if(!ManagedObject.isIdentifiable(adapter)) {
             // eg. values don't have an Oid
             return null;
         }