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:47:16 UTC
[isis] branch master updated: ISIS-3049: ObjectMemento: purge asPseudoBookmark() and asBookmarkIfSupported()
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 79b5e4542d ISIS-3049: ObjectMemento: purge asPseudoBookmark() and asBookmarkIfSupported()
79b5e4542d is described below
commit 79b5e4542d4243e38c55e5ff9f988c81f6a11e5c
Author: Andi Huber <ah...@apache.org>
AuthorDate: Thu Jun 2 11:47:10 2022 +0200
ISIS-3049: ObjectMemento: purge asPseudoBookmark() and
asBookmarkIfSupported()
---
.../objectmanager/memento/ObjectMemento.java | 20 --------------
.../memento/ObjectMementoCollection.java | 10 -------
.../memento/ObjectMementoForEmpty.java | 10 -------
.../memento/ObjectMementoServiceDefault.java | 10 -------
.../runtimeservices/memento/_ObjectMemento.java | 32 ++++++++++++++++++----
.../wicket/model/models/ManagedObjectModel.java | 2 +-
.../ui/components/widgets/select2/Select2.java | 2 +-
.../ObjectAdapterMementoProviderAbstract.java | 2 +-
...tAdapterMementoProviderForValueChoicesTest.java | 2 +-
9 files changed, 31 insertions(+), 59 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 5f34845044..81923c3749 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
@@ -25,9 +25,7 @@ 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;
/**
@@ -35,24 +33,6 @@ import org.apache.isis.commons.internal.collections._Lists;
*/
public interface ObjectMemento extends BookmarkHolder, HasLogicalType, Serializable {
- /**
- * In a strict sense, bookmarks are only available for viewmodels, entities and managed beans,
- * not for values or enums. However, the {@link Bookmark} as an immutable value,
- * is also perfectly suitable to represent an enum value or any value type.
- * @apiNote this is an intermediate refactoring step,
- * possibly providing a way of getting rid of {@link ObjectMemento} entirely,
- * with {@link Bookmark} being the replacement
- */
- Bookmark asPseudoBookmark();
-
- /**
- * 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 asBookmarkIfSupported();
-
// -- 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 d265af118b..9ab5a8eb67 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
@@ -48,16 +48,6 @@ public final class ObjectMementoCollection implements ObjectMemento {
throw _Exceptions.notImplemented(); // please unwrap at call-site
}
- @Override
- public Bookmark asPseudoBookmark() {
- throw _Exceptions.notImplemented(); // please unwrap at call-site
- }
-
- @Override
- public Bookmark asBookmarkIfSupported() {
- throw _Exceptions.notImplemented(); // please unwrap at call-site
- }
-
public ArrayList<ObjectMemento> unwrapList() {
return getContainer();
}
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 70cb745a00..20330e73bc 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
@@ -35,17 +35,7 @@ public class ObjectMementoForEmpty implements ObjectMemento {
@Override
public Bookmark bookmark() {
- return asPseudoBookmark();
- }
-
- @Override
- public Bookmark asPseudoBookmark() {
return Bookmark.empty(logicalType);
}
- @Override
- 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 c8916f7caf..b08297a340 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
@@ -170,16 +170,6 @@ public class ObjectMementoServiceDefault implements ObjectMementoService {
@Override
public Bookmark bookmark() {
- return delegate.asPseudoBookmark();
- }
-
- @Override
- public Bookmark asPseudoBookmark() {
- return delegate.asPseudoBookmark();
- }
-
- @Override
- public Bookmark asBookmarkIfSupported() {
return delegate.asBookmark();
}
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 eb6f709440..4f5e9d34e0 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
@@ -39,6 +39,7 @@ import org.apache.isis.commons.internal.exceptions._Exceptions;
import org.apache.isis.core.metamodel.context.MetaModelContext;
import org.apache.isis.core.metamodel.facets.object.value.ValueFacet;
import org.apache.isis.core.metamodel.facets.object.value.ValueSerializer.Format;
+import org.apache.isis.core.metamodel.objectmanager.memento.ObjectMemento;
import org.apache.isis.core.metamodel.spec.ManagedObject;
import org.apache.isis.core.metamodel.spec.ManagedObjects;
import org.apache.isis.core.metamodel.spec.ObjectSpecification;
@@ -496,11 +497,36 @@ final class _ObjectMemento implements HasLogicalType, Serializable {
return cardinality;
}
- Bookmark asBookmark() {
+ public Bookmark asBookmark() {
+ val bookmark = asStrictBookmark();
+ return bookmark!=null
+ ? bookmark
+ : asPseudoBookmark();
+ }
+
+ /**
+ * 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.
+ */
+ private Bookmark asStrictBookmark() {
ensureScalar();
return bookmark;
}
+ /**
+ * In a strict sense, bookmarks are only available for viewmodels, entities and managed beans,
+ * not for values or enums. However, the {@link Bookmark} as an immutable value,
+ * is also perfectly suitable to represent an enum value or any value type.
+ * @apiNote this is an intermediate refactoring step,
+ * possibly providing a way of getting rid of {@link ObjectMemento} entirely,
+ * with {@link Bookmark} being the replacement
+ */
+ private Bookmark asPseudoBookmark() {
+ return cardinality.asPseudoBookmark(this);
+ }
+
/**
* Lazily looks up {@link ManagedObject} if required.
*
@@ -528,10 +554,6 @@ final class _ObjectMemento implements HasLogicalType, Serializable {
return cardinality.asAdapter(this, mmc);
}
- public Bookmark asPseudoBookmark() {
- return cardinality.asPseudoBookmark(this);
- }
-
@Override
public int hashCode() {
return cardinality.hashCode(this);
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 6ba17abe83..b976b08069 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
@@ -108,7 +108,7 @@ extends ModelAbstract<ManagedObject> {
public final Bookmark asBookmarkIfSupported() {
return memento!=null
- ? memento.asBookmarkIfSupported()
+ ? memento.bookmark()
: null;
}
diff --git a/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/widgets/select2/Select2.java b/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/widgets/select2/Select2.java
index 038e39196f..cc6491b24c 100644
--- a/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/widgets/select2/Select2.java
+++ b/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/widgets/select2/Select2.java
@@ -170,7 +170,7 @@ implements
return LambdaModel.<String>of(()->{
val memento = memento();
return memento != null
- ? memento.asPseudoBookmark().getIdentifier()
+ ? memento.bookmark().getIdentifier()
: null;
});
}
diff --git a/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/widgets/select2/providers/ObjectAdapterMementoProviderAbstract.java b/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/widgets/select2/providers/ObjectAdapterMementoProviderAbstract.java
index 656f730441..706c6f83ad 100644
--- a/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/widgets/select2/providers/ObjectAdapterMementoProviderAbstract.java
+++ b/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/widgets/select2/providers/ObjectAdapterMementoProviderAbstract.java
@@ -76,7 +76,7 @@ extends ChoiceProvider<ObjectMemento> {
if (choiceMemento == null) {
return PlaceholderLiteral.NULL_REPRESENTATION.asText(this::translate);
}
- return choiceMemento.asPseudoBookmark().stringify();
+ return choiceMemento.bookmark().stringify();
}
@Override
diff --git a/viewers/wicket/ui/src/test/java/org/apache/isis/viewer/wicket/ui/components/widgets/valuechoices/ObjectAdapterMementoProviderForValueChoicesTest.java b/viewers/wicket/ui/src/test/java/org/apache/isis/viewer/wicket/ui/components/widgets/valuechoices/ObjectAdapterMementoProviderForValueChoicesTest.java
index 029055d8ef..77c6a41196 100644
--- a/viewers/wicket/ui/src/test/java/org/apache/isis/viewer/wicket/ui/components/widgets/valuechoices/ObjectAdapterMementoProviderForValueChoicesTest.java
+++ b/viewers/wicket/ui/src/test/java/org/apache/isis/viewer/wicket/ui/components/widgets/valuechoices/ObjectAdapterMementoProviderForValueChoicesTest.java
@@ -114,7 +114,7 @@ public class ObjectAdapterMementoProviderForValueChoicesTest {
allowing(mock).getLogicalType();
will(returnValue(logicalType));
- allowing(mock).asPseudoBookmark();
+ allowing(mock).bookmark();
will(returnValue(Bookmark.forLogicalTypeAndIdentifier(logicalType, id)));
}});
return mock;