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 3dd813b021 ISIS-3167: viewmodels optionally have a bookmark argument for construction 3dd813b021 is described below commit 3dd813b0212d7dac7052f897f92d7b9d08b873a2 Author: Andi Huber <ahu...@apache.org> AuthorDate: Wed Aug 31 12:06:08 2022 +0200 ISIS-3167: viewmodels optionally have a bookmark argument for construction --- .../main/java/org/apache/isis/applib/domain/DomainObjectList.java | 2 +- .../java/org/apache/isis/core/metamodel/object/ManagedObject.java | 8 +++++--- .../objectmanager/load/ObjectLoader_builtinHandlers.java | 3 +-- .../conneg/ContentNegotiationServiceForRestfulObjectsV1_0.java | 3 ++- 4 files changed, 9 insertions(+), 7 deletions(-) diff --git a/api/applib/src/main/java/org/apache/isis/applib/domain/DomainObjectList.java b/api/applib/src/main/java/org/apache/isis/applib/domain/DomainObjectList.java index facfc85d76..bb95ed28e4 100644 --- a/api/applib/src/main/java/org/apache/isis/applib/domain/DomainObjectList.java +++ b/api/applib/src/main/java/org/apache/isis/applib/domain/DomainObjectList.java @@ -79,7 +79,7 @@ import lombok.Getter; layoutUiEvent = DomainObjectList.LayoutUiEvent.class) public class DomainObjectList { - public static final String LOGICAL_TYPE_NAME = "isis.applib.DomainObjectList"; + public static final String LOGICAL_TYPE_NAME = IsisModuleApplib.NAMESPACE + ".DomainObjectList"; // -- ui event classes public static class TitleUiEvent extends IsisModuleApplib.TitleUiEvent<DomainObjectList>{ } diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/object/ManagedObject.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/object/ManagedObject.java index 81431173cf..4707fd5b2d 100644 --- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/object/ManagedObject.java +++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/object/ManagedObject.java @@ -457,9 +457,11 @@ public interface ManagedObject extends HasMetaModelContext { */ static ManagedObject viewmodel( final @NonNull ObjectSpecification spec, - final @Nullable Object pojo) { + final @Nullable Object pojo, + final Optional<Bookmark> bookmarkIfAny) { return pojo != null - ? new _ManagedObjectWithEagerSpec(spec, pojo) //FIXME + ? bookmarkIfAny.map(bookmark->bookmarked(spec, pojo, bookmark)) //FIXME + .orElseGet(()->new _ManagedObjectWithEagerSpec(spec, pojo)) //FIXME : empty(spec); } /** @@ -555,7 +557,7 @@ public interface ManagedObject extends HasMetaModelContext { case SERVICE: return service(spec, pojo); case VIEWMODEL: - return viewmodel(spec, pojo); + return viewmodel(spec, pojo, Optional.empty()); case ENTITY: return entity(spec, pojo); case MIXIN: diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/objectmanager/load/ObjectLoader_builtinHandlers.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/objectmanager/load/ObjectLoader_builtinHandlers.java index 595cdccc1a..88581e4e1b 100644 --- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/objectmanager/load/ObjectLoader_builtinHandlers.java +++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/objectmanager/load/ObjectLoader_builtinHandlers.java @@ -156,8 +156,7 @@ final class ObjectLoader_builtinHandlers { } val bookmark = objectLoadRequest.getBookmark(); - val viewModel = viewModelFacet.instantiate(spec, Optional.of(bookmark)); - return ManagedObject.bookmarked(spec, viewModel.getPojo(), bookmark); + return viewModelFacet.instantiate(spec, Optional.of(bookmark)); } } diff --git a/viewers/restfulobjects/rendering/src/main/java/org/apache/isis/viewer/restfulobjects/rendering/service/conneg/ContentNegotiationServiceForRestfulObjectsV1_0.java b/viewers/restfulobjects/rendering/src/main/java/org/apache/isis/viewer/restfulobjects/rendering/service/conneg/ContentNegotiationServiceForRestfulObjectsV1_0.java index 0a4ffd3d0b..28c941055d 100644 --- a/viewers/restfulobjects/rendering/src/main/java/org/apache/isis/viewer/restfulobjects/rendering/service/conneg/ContentNegotiationServiceForRestfulObjectsV1_0.java +++ b/viewers/restfulobjects/rendering/src/main/java/org/apache/isis/viewer/restfulobjects/rendering/service/conneg/ContentNegotiationServiceForRestfulObjectsV1_0.java @@ -20,6 +20,7 @@ package org.apache.isis.viewer.restfulobjects.rendering.service.conneg; import java.util.Collection; import java.util.List; +import java.util.Optional; import java.util.stream.Collectors; import javax.annotation.Priority; @@ -222,7 +223,7 @@ implements ContentNegotiationService { .orElseThrow(()->_Exceptions.unrecoverable( "framework bug: DomainObjectList should be recognized as viewmodel")); - val listAdapter = ManagedObject.viewmodel(domainObjectListSpec, listAsViewmodel); + val listAdapter = ManagedObject.viewmodel(domainObjectListSpec, listAsViewmodel, Optional.empty()); return responseBuilder( buildResponse( resourceContext,