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
commit f8cf23222021969a8f247df7e79b40129156b98d Author: Andi Huber <[email protected]> AuthorDate: Mon Sep 5 05:25:50 2022 +0200 ISIS-3199: further simplify ObjectBookmarker --- .../metamodel/objectmanager/ObjectBookmarker.java | 53 ++-------------------- 1 file changed, 3 insertions(+), 50 deletions(-) diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/objectmanager/ObjectBookmarker.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/objectmanager/ObjectBookmarker.java index f1c92af48e..ad7fcdd096 100644 --- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/objectmanager/ObjectBookmarker.java +++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/objectmanager/ObjectBookmarker.java @@ -18,13 +18,9 @@ */ package org.apache.isis.core.metamodel.objectmanager; -import java.util.List; import java.util.Optional; import org.apache.isis.applib.services.bookmark.Bookmark; -import org.apache.isis.applib.services.bookmark.Oid; -import org.apache.isis.commons.handler.ChainOfResponsibility; -import org.apache.isis.core.metamodel.object.Bookmarkable; import org.apache.isis.core.metamodel.object.ManagedObject; /** @@ -34,56 +30,13 @@ public interface ObjectBookmarker { Optional<Bookmark> bookmarkObject(ManagedObject managedObject); - // -- HANDLER - - public interface Handler extends ChainOfResponsibility.Handler<ManagedObject, Optional<Bookmark>> {} - // -- FACTORY public static ObjectBookmarker createDefault() { return managedObject -> - ChainOfResponsibility.named( - "ObjectBookmarker", - handlers) - .handle(managedObject); - } - - // -- HANDLERS - - static final List<Handler> handlers = List.of(BuiltinHandlers.values()); - - enum BuiltinHandlers implements Handler { - GuardAgainstOid { - @Override public boolean isHandling(final ManagedObject managedObject) { - return managedObject.getPojo() instanceof Oid; - } - @Override - public Optional<Bookmark> handle(final ManagedObject managedObject) { - throw new IllegalArgumentException("Cannot create a Bookmark for pojo, " - + "when pojo is instance of Bookmark. You might want to ask " - + "ObjectAdapterByIdProvider for an ObjectAdapter instead."); - } - }, - BookmarkForBookmarkable { - @Override - public boolean isHandling(final ManagedObject managedObject) { - return managedObject instanceof Bookmarkable; - } - @Override - public Optional<Bookmark> handle(final ManagedObject managedObject) { - return managedObject.getBookmark(); - } - }, - BookmarkForOthers { - @Override - public boolean isHandling(final ManagedObject managedObject) { - return true; // try to handle anything - } - @Override - public Optional<Bookmark> handle(final ManagedObject managedObject) { - return Optional.empty(); - } - }; + managedObject==null + ? Optional.empty() + : managedObject.getBookmark(); } }
