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,

Reply via email to