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 bde480bb66 ISIS-3167: prepare for new ManagedObject factories
bde480bb66 is described below
commit bde480bb6646e6be1f3e47c40ef78ae7d9cae7c0
Author: Andi Huber <[email protected]>
AuthorDate: Mon Aug 29 06:22:01 2022 +0200
ISIS-3167: prepare for new ManagedObject factories
---
.../isis/core/metamodel/object/ManagedObject.java | 120 ++++++++++++++++++---
.../isis/core/metamodel/object/ManagedObjects.java | 6 --
.../core/metamodel/object/PackedManagedObject.java | 7 --
.../metamodel/object/_ManagedObjectPacked.java | 15 +--
.../metamodel/object/_ManagedObjectSpecified.java | 13 +--
.../object/_ManagedObjectWithBookmark.java | 4 +
.../object/_ManagedObjectWithEagerSpec.java | 15 +--
.../object/_ManagedObjectWithLazySpec.java | 3 +-
.../metamodel/objectmanager/ObjectManager.java | 3 +-
.../schema/SchemaValueMarshallerAbstract.java | 7 +-
.../specimpl/ObjectActionParameterAbstract.java | 3 +-
.../title/TitleAnnotationFacetFactoryTest.java | 9 ++
.../memento/ObjectMementoServiceDefault.java | 2 +-
13 files changed, 152 insertions(+), 55 deletions(-)
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 172f71ec2b..66c9375153 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
@@ -39,6 +39,7 @@ import lombok.Getter;
import lombok.NonNull;
import lombok.RequiredArgsConstructor;
import lombok.val;
+import lombok.extern.log4j.Log4j2;
/**
* Represents an instance of some element of the meta-model managed by the
framework,
@@ -55,6 +56,7 @@ public interface ManagedObject extends HasMetaModelContext {
*/
@Getter
@RequiredArgsConstructor
+ @Log4j2
enum Specialization {
/**
* <h1>Contract</h1><ul>
@@ -232,6 +234,34 @@ public interface ManagedObject extends HasMetaModelContext
{
*/
public boolean isPacked() { return this == PACKED; }
+ public static Specialization inferFrom(
+ final @Nullable ObjectSpecification spec,
+ final @Nullable Object pojo) {
+ if(spec==null) {
+ return UNSPECIFIED;
+ }
+ if(spec.isNonScalar()) {
+ return PACKED;
+ }
+ if(pojo==null) {
+ return EMPTY;
+ }
+ if(spec.isValue()) {
+ return VALUE;
+ }
+ if(spec.isInjectable()) {
+ return SERVICE;
+ }
+ if(spec.isViewModel()) {
+ return VIEWMODEL;
+ }
+ if(spec.isEntity()) {
+ return ENTITY;
+ }
+ log.warn("failed specialization attempt for {}", spec);
+ return UNSPECIFIED;
+ }
+
}
/**
@@ -332,10 +362,79 @@ public interface ManagedObject extends
HasMetaModelContext {
// -- FACTORIES
- public static ManagedObject notBookmarked(
+ /**
+ * Factory for Specialization#UNSPECIFIED.
+ * @see Specialization.TypePolicy#NO_TYPE
+ * @see Specialization.BookmarkPolicy#NO_BOOKMARK
+ * @see Specialization.PojoPolicy#NO_POJO
+ */
+ static ManagedObject unspecified() {
+ return _ManagedObjectUnspecified.INSTANCE;
+ }
+ /**
+ * EMPTY
+ * @see Specialization.TypePolicy#ABSTRACT_TYPE_ALLOWED
+ * @see Specialization.BookmarkPolicy#NO_BOOKMARK
+ * @see Specialization.PojoPolicy#NO_POJO
+ */
+ static ManagedObject empty(final @NonNull ObjectSpecification spec) {
+ return new _ManagedObjectWithEagerSpec(spec, null);
+ }
+ /**
+ * VALUE
+ * @see Specialization.TypePolicy#EXACT_TYPE_REQUIRED
+ * @see Specialization.BookmarkPolicy#IMMUTABLE
+ * @see Specialization.PojoPolicy#IMMUTABLE
+ */
+ static ManagedObject value() {
+ return null; //FIXME
+ }
+ /**
+ * SERVICE
+ * @see Specialization.TypePolicy#EXACT_TYPE_REQUIRED
+ * @see Specialization.BookmarkPolicy#IMMUTABLE
+ * @see Specialization.PojoPolicy#IMMUTABLE
+ */
+ static ManagedObject service() {
+ return null; //FIXME
+ }
+ /**
+ * VIEWMODEL
+ * @see Specialization.TypePolicy#EXACT_TYPE_REQUIRED
+ * @see Specialization.BookmarkPolicy#REFRESHABLE
+ * @see Specialization.PojoPolicy#STATEFUL
+ */
+ static ManagedObject viewmodel() {
+ return null; //FIXME
+ }
+ /**
+ * ENTITY
+ * @see Specialization.TypePolicy#EXACT_TYPE_REQUIRED
+ * @see Specialization.BookmarkPolicy#IMMUTABLE
+ * @see Specialization.PojoPolicy#REFETCHABLE
+ */
+ static ManagedObject entity() {
+ return null; //FIXME
+ }
+ /**
+ * PACKED
+ * @see Specialization.TypePolicy#ABSTRACT_TYPE_ALLOWED
+ * @see Specialization.BookmarkPolicy#NO_BOOKMARK
+ * @see Specialization.PojoPolicy#PACKED
+ */
+ static PackedManagedObject packed(
+ final @NonNull ObjectSpecification elementSpec,
+ final Can<ManagedObject> nonScalar) {
+ return new _ManagedObjectPacked(elementSpec, nonScalar);
+ }
+
+ // -- FACTORIES LEGACY
+
+ @Deprecated
+ static ManagedObject notBookmarked(
final ObjectSpecification spec,
final Object pojo) {
- return _ManagedObjectWithEagerSpec.of(spec, pojo);
+ return new _ManagedObjectWithEagerSpec(spec, pojo);
}
/**
@@ -344,7 +443,8 @@ public interface ManagedObject extends HasMetaModelContext {
* @param spec
* @param pojo - might also be a collection of pojos (null-able)
*/
- public static ManagedObject of(
+ @Deprecated
+ static ManagedObject of(
final @NonNull ObjectSpecification spec,
final @Nullable Object pojo) {
@@ -360,7 +460,8 @@ public interface ManagedObject extends HasMetaModelContext {
/**
* Optimized for cases, when the pojo's specification and bookmark are
already available.
*/
- public static ManagedObject bookmarked(
+ @Deprecated
+ static ManagedObject bookmarked(
final @NonNull ObjectSpecification spec,
final @NonNull Object pojo,
final @NonNull Bookmark bookmark) {
@@ -386,7 +487,8 @@ public interface ManagedObject extends HasMetaModelContext {
* @param specLoader
* @param pojo
*/
- public static ManagedObject lazy(
+ @Deprecated
+ static ManagedObject lazy(
final SpecificationLoader specLoader,
final Object pojo) {
@@ -400,14 +502,6 @@ public interface ManagedObject extends HasMetaModelContext
{
return adapter;
}
- /** has no ObjectSpecification and no value (pojo) */
- static ManagedObject unspecified() {
- return _ManagedObjectUnspecified.INSTANCE;
- }
- /** has an ObjectSpecification, but no value (pojo) */
- static ManagedObject empty(final @NonNull ObjectSpecification spec) {
- return _ManagedObjectWithEagerSpec.of(spec, null);
- }
}
diff --git
a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/object/ManagedObjects.java
b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/object/ManagedObjects.java
index eff4348342..af9fed768f 100644
---
a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/object/ManagedObjects.java
+++
b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/object/ManagedObjects.java
@@ -228,12 +228,6 @@ public final class ManagedObjects {
// -- PACKING
- public static ManagedObject pack(
- final ObjectSpecification elementSpec,
- final Can<ManagedObject> nonScalar) {
- return PackedManagedObject.pack(elementSpec, nonScalar);
- }
-
public static Can<ManagedObject> unpack(
final ObjectSpecification elementSpec, // no longer req.
final ManagedObject nonScalar) {
diff --git
a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/object/PackedManagedObject.java
b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/object/PackedManagedObject.java
index 46c3d57574..0821945fb4 100644
---
a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/object/PackedManagedObject.java
+++
b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/object/PackedManagedObject.java
@@ -19,7 +19,6 @@
package org.apache.isis.core.metamodel.object;
import org.apache.isis.commons.collections.Can;
-import org.apache.isis.core.metamodel.spec.ObjectSpecification;
/**
* 'Collection' of {@link ManagedObject}s.
@@ -28,12 +27,6 @@ import
org.apache.isis.core.metamodel.spec.ObjectSpecification;
public interface PackedManagedObject
extends ManagedObject {
- public static ManagedObject pack(
- final ObjectSpecification elementSpec,
- final Can<ManagedObject> nonScalar) {
- return new _ManagedObjectPacked(elementSpec, nonScalar);
- }
-
Can<ManagedObject> unpack();
}
diff --git
a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/object/_ManagedObjectPacked.java
b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/object/_ManagedObjectPacked.java
index adbc6cf7f9..a62ec2aab4 100644
---
a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/object/_ManagedObjectPacked.java
+++
b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/object/_ManagedObjectPacked.java
@@ -31,27 +31,28 @@ import org.apache.isis.commons.internal.base._Lazy;
import org.apache.isis.core.metamodel.spec.ObjectSpecification;
import lombok.NonNull;
-import lombok.RequiredArgsConstructor;
import lombok.ToString;
/**
* (package private) specialization corresponding to {@link
Specialization#PACKED}
* @see ManagedObject.Specialization#PACKED
*/
-@RequiredArgsConstructor
@ToString
final class _ManagedObjectPacked
extends _ManagedObjectSpecified
implements PackedManagedObject {
+ public _ManagedObjectPacked(
+ final ObjectSpecification elementSpec,
+ final Can<ManagedObject> nonScalar) {
+ super(Specialization.PACKED);
+ this.elementSpec = elementSpec;
+ this.nonScalar = nonScalar;
+ }
+
final @NonNull ObjectSpecification elementSpec;
final @NonNull Can<ManagedObject> nonScalar;
- @Override
- public Specialization getSpecialization() {
- return Specialization.PACKED;
- }
-
@Override
public ObjectSpecification getSpecification() {
return elementSpec;
diff --git
a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/object/_ManagedObjectSpecified.java
b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/object/_ManagedObjectSpecified.java
index 49d2872b8e..2db5880d06 100644
---
a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/object/_ManagedObjectSpecified.java
+++
b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/object/_ManagedObjectSpecified.java
@@ -20,17 +20,18 @@ package org.apache.isis.core.metamodel.object;
import java.util.function.Supplier;
-import org.apache.isis.commons.internal.exceptions._Exceptions;
import org.apache.isis.core.metamodel.context.MetaModelContext;
+import lombok.Getter;
+import lombok.RequiredArgsConstructor;
+import lombok.experimental.Accessors;
+
+@RequiredArgsConstructor
abstract class _ManagedObjectSpecified
implements ManagedObject {
- @Override
- public Specialization getSpecialization() {
- //FIXME[ISIS-3167] implement for various sub types
- throw _Exceptions.notImplemented();
- }
+ @Getter(onMethod_ = {@Override}) @Accessors(makeFinal = true)
+ private final Specialization specialization;
@Override
public final MetaModelContext getMetaModelContext() {
diff --git
a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/object/_ManagedObjectWithBookmark.java
b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/object/_ManagedObjectWithBookmark.java
index 8117a44fbc..1955374cbd 100644
---
a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/object/_ManagedObjectWithBookmark.java
+++
b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/object/_ManagedObjectWithBookmark.java
@@ -42,6 +42,10 @@ extends _ManagedObjectSpecified {
protected final _Lazy<Optional<Bookmark>> bookmarkLazy =
_Lazy.threadSafe(()->bookmark(this));
+ protected _ManagedObjectWithBookmark(final Specialization specialization) {
+ super(specialization);
+ }
+
@Override
public final Optional<Bookmark> getBookmark() {
return bookmarkLazy.get();
diff --git
a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/object/_ManagedObjectWithEagerSpec.java
b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/object/_ManagedObjectWithEagerSpec.java
index 923b4ecb92..307e140361 100644
---
a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/object/_ManagedObjectWithEagerSpec.java
+++
b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/object/_ManagedObjectWithEagerSpec.java
@@ -28,17 +28,12 @@ import org.apache.isis.commons.internal.assertions._Assert;
import org.apache.isis.commons.internal.collections._Collections;
import org.apache.isis.core.metamodel.spec.ObjectSpecification;
-import lombok.AccessLevel;
-import lombok.AllArgsConstructor;
import lombok.EqualsAndHashCode;
import lombok.Getter;
import lombok.NonNull;
import lombok.ToString;
import lombok.val;
-//@Value
-//@RequiredArgsConstructor(staticName="of", access = AccessLevel.PRIVATE)
-@AllArgsConstructor(staticName="of", access = AccessLevel.PACKAGE)
@EqualsAndHashCode(of = "pojo", callSuper = false)
@ToString(of = {"specification", "pojo"}) //ISIS-2317 make sure toString() is
without side-effects
@Getter
@@ -54,11 +49,19 @@ extends _ManagedObjectWithBookmark {
_Assert.assertFalse(_Collections.isCollectionOrArrayOrCanType(pojo.getClass()));
}
- val managedObject = _ManagedObjectWithEagerSpec.of(spec, pojo);
+ val managedObject = new _ManagedObjectWithEagerSpec(spec, pojo);
managedObject.bookmarkLazy.set(Optional.of(bookmark));
return managedObject;
}
+ _ManagedObjectWithEagerSpec(
+ final ObjectSpecification spec,
+ final Object pojo) {
+ super(ManagedObject.Specialization.inferFrom(spec, pojo));
+ this.specification = spec;
+ this.pojo = pojo;
+ }
+
@NonNull private final ObjectSpecification specification;
@Nullable private /*final*/ Object pojo;
diff --git
a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/object/_ManagedObjectWithLazySpec.java
b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/object/_ManagedObjectWithLazySpec.java
index 14d9d79fd5..7b52c25002 100644
---
a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/object/_ManagedObjectWithLazySpec.java
+++
b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/object/_ManagedObjectWithLazySpec.java
@@ -38,9 +38,10 @@ extends _ManagedObjectWithBookmark {
private final _Lazy<ObjectSpecification> specification =
_Lazy.threadSafe(this::loadSpec);
- public _ManagedObjectWithLazySpec(
+ _ManagedObjectWithLazySpec(
final @NonNull Function<Class<?>, ObjectSpecification> specLoader,
final @NonNull Object pojo) {
+ super(ManagedObject.Specialization.UNSPECIFIED); // FIXME
this.specLoader = specLoader;
this.pojo = pojo;
}
diff --git
a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/objectmanager/ObjectManager.java
b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/objectmanager/ObjectManager.java
index 98187c545c..07b9b73210 100644
---
a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/objectmanager/ObjectManager.java
+++
b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/objectmanager/ObjectManager.java
@@ -29,7 +29,6 @@ import org.apache.isis.commons.internal.base._NullSafe;
import org.apache.isis.core.metamodel.context.MetaModelContext;
import org.apache.isis.core.metamodel.facets.object.entity.EntityFacet;
import org.apache.isis.core.metamodel.object.ManagedObject;
-import org.apache.isis.core.metamodel.object.PackedManagedObject;
import org.apache.isis.core.metamodel.objectmanager.create.ObjectCreator;
import org.apache.isis.core.metamodel.objectmanager.detach.ObjectDetacher;
import org.apache.isis.core.metamodel.objectmanager.identify.ObjectBookmarker;
@@ -160,7 +159,7 @@ public interface ObjectManager {
}
return spec.isScalar()
? managedObjectEagerlyBookmarkedIfRequired(spec, pojo,
entityAdaptingMode)
- : PackedManagedObject.pack(
+ : ManagedObject.packed(
spec.getElementSpecification().orElseGet(fallbackElementType),
_NullSafe.streamAutodetect(pojo)
.map(element->adapt(element, entityAdaptingMode))
diff --git
a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/services/schema/SchemaValueMarshallerAbstract.java
b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/services/schema/SchemaValueMarshallerAbstract.java
index 374b56838d..6800507f7c 100644
---
a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/services/schema/SchemaValueMarshallerAbstract.java
+++
b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/services/schema/SchemaValueMarshallerAbstract.java
@@ -37,7 +37,6 @@ import org.apache.isis.commons.internal.base._NullSafe;
import org.apache.isis.core.metamodel.facetapi.FeatureType;
import
org.apache.isis.core.metamodel.facets.actions.action.invocation.IdentifierUtil;
import org.apache.isis.core.metamodel.object.ManagedObject;
-import org.apache.isis.core.metamodel.object.PackedManagedObject;
import org.apache.isis.core.metamodel.objectmanager.load.ObjectLoader;
import org.apache.isis.core.metamodel.spec.ObjectSpecification;
import org.apache.isis.core.metamodel.spec.feature.ObjectAction;
@@ -275,7 +274,7 @@ implements SchemaValueMarshaller {
final @NonNull Cardinality cardinalityConstraint) {
return cardinalityConstraint.isMultiple()
- ? PackedManagedObject.pack(
+ ? ManagedObject.packed(
valueTypeHelper.getElementType(),
recoverCollectionOfValues(valueTypeHelper,
valueDto.getCollection()))
: recoverScalarValue(valueTypeHelper, valueDto);
@@ -287,7 +286,7 @@ implements SchemaValueMarshaller {
final @NonNull Cardinality cardinalityConstraint) {
return cardinalityConstraint.isMultiple()
- ? PackedManagedObject.pack(
+ ? ManagedObject.packed(
feature.getElementType(),
recoverCollectionOfReferences(valueDto.getCollection()))
: recoverReferenceFrom(valueDto.getReference());
@@ -345,7 +344,7 @@ implements SchemaValueMarshaller {
|| (valueWithTypeDto.isNull()!=null
&& valueWithTypeDto.isNull())) {
return cardinalityConstraint.isMultiple()
- ? PackedManagedObject.pack(feature.getElementType(),
Can.empty())
+ ? ManagedObject.packed(feature.getElementType(),
Can.empty())
: ManagedObject.empty(feature.getElementType());
}
diff --git
a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/specimpl/ObjectActionParameterAbstract.java
b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/specimpl/ObjectActionParameterAbstract.java
index b6259542a2..4b8d06cc6a 100644
---
a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/specimpl/ObjectActionParameterAbstract.java
+++
b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/specimpl/ObjectActionParameterAbstract.java
@@ -46,7 +46,6 @@ import
org.apache.isis.core.metamodel.interactions.InteractionUtils;
import
org.apache.isis.core.metamodel.interactions.managed.ParameterNegotiationModel;
import org.apache.isis.core.metamodel.object.ManagedObject;
import org.apache.isis.core.metamodel.object.ManagedObjects;
-import org.apache.isis.core.metamodel.object.PackedManagedObject;
import org.apache.isis.core.metamodel.spec.ObjectSpecification;
import org.apache.isis.core.metamodel.spec.feature.ObjectAction;
import org.apache.isis.core.metamodel.spec.feature.ObjectActionParameter;
@@ -246,7 +245,7 @@ implements
// post processing each entry
.map(obj->ManagedObjects.emptyToDefault(paramSpec, !isOptional(),
obj));
// pack up
- val packed = PackedManagedObject.pack(paramSpec,
nonScalarDefaults);
+ val packed = ManagedObject.packed(paramSpec, nonScalarDefaults);
return packed;
}
diff --git
a/core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/object/ident/title/TitleAnnotationFacetFactoryTest.java
b/core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/object/ident/title/TitleAnnotationFacetFactoryTest.java
index ad5743e674..4de5c842e9 100644
---
a/core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/object/ident/title/TitleAnnotationFacetFactoryTest.java
+++
b/core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/object/ident/title/TitleAnnotationFacetFactoryTest.java
@@ -154,6 +154,9 @@ extends AbstractFacetFactoryJUnit4TestCase {
allowing(mockStringSpec).getCorrespondingClass();
will(returnValue(String.class));
+ allowing(mockStringSpec).isValue();
+ will(returnValue(true));
+
allowing(mockStringSpec).isScalar();
will(returnValue(true));
@@ -257,6 +260,9 @@ extends AbstractFacetFactoryJUnit4TestCase {
allowing(mockStringSpec).isEntity();
will(returnValue(false));
+ allowing(mockStringSpec).isValue();
+ will(returnValue(true));
+
ignoring(mockStringSpec).assertPojoCompatible(with(any(String.class)));
allowing(mockSpecificationLoader).specForType(Integer.class);
@@ -265,6 +271,9 @@ extends AbstractFacetFactoryJUnit4TestCase {
allowing(mockIntegerSpec).getCorrespondingClass();
will(returnValue(Integer.class));
+ allowing(mockIntegerSpec).isValue();
+ will(returnValue(true));
+
allowing(mockIntegerSpec).isNonScalar();
will(returnValue(false));
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 900ed80e82..d398c0e8ed 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
@@ -152,7 +152,7 @@ public class ObjectMementoServiceDefault implements
ObjectMementoService {
.map(this::reconstructObject)
.collect(Can.toCan());
- return PackedManagedObject.pack(elementSpec, objects);
+ return ManagedObject.packed(elementSpec, objects);
}
if(memento instanceof ObjectMementoAdapter) {