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 2022/06/02 09:31:18 UTC

[isis] branch master updated: ISIS-3049: purge ObjectMemento.asHintingBookmarkIfSupported()

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 6c39166b04 ISIS-3049: purge ObjectMemento.asHintingBookmarkIfSupported()
6c39166b04 is described below

commit 6c39166b0400400ddbbf5f09418aa4684197d583
Author: Andi Huber <ah...@apache.org>
AuthorDate: Thu Jun 2 11:31:10 2022 +0200

    ISIS-3049: purge ObjectMemento.asHintingBookmarkIfSupported()
---
 .../objectmanager/memento/ObjectMemento.java       | 11 ++---------
 .../memento/ObjectMementoCollection.java           |  4 ++--
 .../memento/ObjectMementoForEmpty.java             | 10 +++++-----
 .../memento/ObjectMementoServiceDefault.java       | 10 +++++-----
 .../runtimeservices/memento/_ObjectMemento.java    | 22 ++++++++++------------
 .../wicket/model/models/ManagedObjectModel.java    |  6 ------
 6 files changed, 24 insertions(+), 39 deletions(-)

diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/objectmanager/memento/ObjectMemento.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/objectmanager/memento/ObjectMemento.java
index c1bde41ae5..5f34845044 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/objectmanager/memento/ObjectMemento.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/objectmanager/memento/ObjectMemento.java
@@ -26,13 +26,14 @@ import java.util.Optional;
 import org.apache.isis.applib.id.HasLogicalType;
 import org.apache.isis.applib.id.LogicalType;
 import org.apache.isis.applib.services.bookmark.Bookmark;
+import org.apache.isis.applib.services.bookmark.BookmarkHolder;
 import org.apache.isis.commons.collections.Cardinality;
 import org.apache.isis.commons.internal.collections._Lists;
 
 /**
  * @since 2.0
  */
-public interface ObjectMemento extends HasLogicalType, Serializable {
+public interface ObjectMemento extends BookmarkHolder, HasLogicalType, Serializable {
 
     /**
      * In a strict sense, bookmarks are only available for viewmodels, entities and managed beans,
@@ -52,14 +53,6 @@ public interface ObjectMemento extends HasLogicalType, Serializable {
      */
     Bookmark asBookmarkIfSupported();
 
-    /**
-     * Returns a bookmark only if
-     * {@link org.apache.isis.viewer.wicket.viewer.services.mementos.ObjectMementoWkt.RecreateStrategy#LOOKUP} and
-     * {@link #getCardinality() sort} is {@link Cardinality#SCALAR scalar}.
-     * Returns {@code null} otherwise.
-     */
-    Bookmark asHintingBookmarkIfSupported();
-
     // -- FACTORIES
 
     static ObjectMemento pack(
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/objectmanager/memento/ObjectMementoCollection.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/objectmanager/memento/ObjectMementoCollection.java
index 6abb7c035b..d265af118b 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/objectmanager/memento/ObjectMementoCollection.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/objectmanager/memento/ObjectMementoCollection.java
@@ -44,12 +44,12 @@ public final class ObjectMementoCollection implements ObjectMemento {
     @NonNull private final LogicalType logicalType;
 
     @Override
-    public Bookmark asPseudoBookmark() {
+    public Bookmark bookmark() {
         throw _Exceptions.notImplemented(); // please unwrap at call-site
     }
 
     @Override
-    public Bookmark asHintingBookmarkIfSupported() {
+    public Bookmark asPseudoBookmark() {
         throw _Exceptions.notImplemented(); // please unwrap at call-site
     }
 
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/objectmanager/memento/ObjectMementoForEmpty.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/objectmanager/memento/ObjectMementoForEmpty.java
index dbe130ff63..70cb745a00 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/objectmanager/memento/ObjectMementoForEmpty.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/objectmanager/memento/ObjectMementoForEmpty.java
@@ -34,17 +34,17 @@ public class ObjectMementoForEmpty implements ObjectMemento {
     @NonNull private LogicalType logicalType;
 
     @Override
-    public Bookmark asPseudoBookmark() {
-        return Bookmark.empty(logicalType);
+    public Bookmark bookmark() {
+        return asPseudoBookmark();
     }
 
     @Override
-    public Bookmark asBookmarkIfSupported() {
-        return null;
+    public Bookmark asPseudoBookmark() {
+        return Bookmark.empty(logicalType);
     }
 
     @Override
-    public Bookmark asHintingBookmarkIfSupported() {
+    public Bookmark asBookmarkIfSupported() {
         return null;
     }
 
diff --git a/core/runtimeservices/src/main/java/org/apache/isis/core/runtimeservices/memento/ObjectMementoServiceDefault.java b/core/runtimeservices/src/main/java/org/apache/isis/core/runtimeservices/memento/ObjectMementoServiceDefault.java
index 7f58c252e3..c8916f7caf 100644
--- a/core/runtimeservices/src/main/java/org/apache/isis/core/runtimeservices/memento/ObjectMementoServiceDefault.java
+++ b/core/runtimeservices/src/main/java/org/apache/isis/core/runtimeservices/memento/ObjectMementoServiceDefault.java
@@ -169,18 +169,18 @@ public class ObjectMementoServiceDefault implements ObjectMementoService {
         private final _ObjectMemento delegate;
 
         @Override
-        public Bookmark asPseudoBookmark() {
+        public Bookmark bookmark() {
             return delegate.asPseudoBookmark();
         }
 
         @Override
-        public Bookmark asBookmarkIfSupported() {
-            return delegate.asBookmark();
+        public Bookmark asPseudoBookmark() {
+            return delegate.asPseudoBookmark();
         }
 
         @Override
-        public Bookmark asHintingBookmarkIfSupported() {
-            return delegate.asHintingBookmark();
+        public Bookmark asBookmarkIfSupported() {
+            return delegate.asBookmark();
         }
 
         @Override
diff --git a/core/runtimeservices/src/main/java/org/apache/isis/core/runtimeservices/memento/_ObjectMemento.java b/core/runtimeservices/src/main/java/org/apache/isis/core/runtimeservices/memento/_ObjectMemento.java
index bd4f97c8dd..eb6f709440 100644
--- a/core/runtimeservices/src/main/java/org/apache/isis/core/runtimeservices/memento/_ObjectMemento.java
+++ b/core/runtimeservices/src/main/java/org/apache/isis/core/runtimeservices/memento/_ObjectMemento.java
@@ -393,7 +393,7 @@ final class _ObjectMemento implements HasLogicalType, Serializable {
     /**
      * Only populated for {@link ManagedObject#getPojo() domain object}s that implement {@link HintIdProvider}.
      */
-    private String hintId;
+    //private String hintId;
 
     /**
      * populated only if {@link #getCardinality() sort} is {@link Cardinality#VECTOR vector}
@@ -447,17 +447,22 @@ final class _ObjectMemento implements HasLogicalType, Serializable {
         this.recreateStrategy = RecreateStrategy.VALUE;
     }
 
-
     private void init(final ManagedObject adapter) {
 
         val spec = adapter.getSpecification();
 
         if(spec.isIdentifiable() || spec.isParented() ) {
+            val hintId = adapter.getPojo() instanceof HintIdProvider
+                 ? ((HintIdProvider) adapter.getPojo()).hintId()
+                 : null;
+
             bookmark = ManagedObjects.bookmarkElseFail(adapter);
+            bookmark = hintId != null
+                    && bookmark != null
+                        ? bookmark.withHintId(hintId)
+                        : bookmark;
+
             persistentOidStr = bookmark.stringify();
-            if(adapter.getPojo() instanceof HintIdProvider) {
-                this.hintId = ((HintIdProvider) adapter.getPojo()).hintId();
-            }
             recreateStrategy = RecreateStrategy.LOOKUP;
             return;
         }
@@ -496,13 +501,6 @@ final class _ObjectMemento implements HasLogicalType, Serializable {
         return bookmark;
     }
 
-    Bookmark asHintingBookmark() {
-        val bookmark = asBookmark();
-        return hintId != null && bookmark != null
-                ? bookmark.withHintId(hintId)
-                : bookmark;
-    }
-
     /**
      * Lazily looks up {@link ManagedObject} if required.
      *
diff --git a/viewers/wicket/model/src/main/java/org/apache/isis/viewer/wicket/model/models/ManagedObjectModel.java b/viewers/wicket/model/src/main/java/org/apache/isis/viewer/wicket/model/models/ManagedObjectModel.java
index 2fa4c1c879..6ba17abe83 100644
--- a/viewers/wicket/model/src/main/java/org/apache/isis/viewer/wicket/model/models/ManagedObjectModel.java
+++ b/viewers/wicket/model/src/main/java/org/apache/isis/viewer/wicket/model/models/ManagedObjectModel.java
@@ -106,12 +106,6 @@ extends ModelAbstract<ManagedObject> {
                         .orElseGet(()->adapter.getElementSpecification().get().getLogicalType()));
     }
 
-    public final Bookmark asHintingBookmarkIfSupported() {
-        return memento!=null
-                ? memento.asHintingBookmarkIfSupported()
-                : null;
-    }
-
     public final Bookmark asBookmarkIfSupported() {
         return memento!=null
                 ? memento.asBookmarkIfSupported()