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 <[email protected]>
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,