You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@isis.apache.org by ah...@apache.org on 2020/06/05 09:36:03 UTC
[isis] branch master updated: ISIS-2340: ManagedObjects: move and
gather entity utility methods (3)
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 f17548a ISIS-2340: ManagedObjects: move and gather entity utility methods (3)
f17548a is described below
commit f17548a1f03bccb7766fe8a7ec622e45cf8a63cf
Author: Andi Huber <ah...@apache.org>
AuthorDate: Fri Jun 5 11:35:48 2020 +0200
ISIS-2340: ManagedObjects: move and gather entity utility methods (3)
---
.../isis/core/metamodel/spec/ManagedObject.java | 26 ----------------------
.../isis/core/metamodel/spec/ManagedObjects.java | 22 +++++++++++++++++-
.../specimpl/OneToManyAssociationDefault.java | 3 ++-
.../specimpl/OneToOneAssociationDefault.java | 3 ++-
.../domainobjects/DomainObjectReprRenderer.java | 12 ----------
5 files changed, 25 insertions(+), 41 deletions(-)
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/spec/ManagedObject.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/spec/ManagedObject.java
index 7e6fd41..4bc1963 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/spec/ManagedObject.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/spec/ManagedObject.java
@@ -25,7 +25,6 @@ import java.util.function.Function;
import javax.annotation.Nullable;
import org.apache.isis.applib.domain.DomainObjectList;
-import org.apache.isis.applib.services.repository.EntityState;
import org.apache.isis.core.commons.internal.base._Lazy;
import org.apache.isis.core.commons.internal.exceptions._Exceptions;
import org.apache.isis.core.metamodel.adapter.oid.RootOid;
@@ -33,7 +32,6 @@ import org.apache.isis.core.metamodel.facets.object.entity.EntityFacet;
import org.apache.isis.core.metamodel.objectmanager.ObjectManager;
import org.apache.isis.core.metamodel.objectmanager.create.ObjectCreator;
import org.apache.isis.core.metamodel.objectmanager.load.ObjectLoader;
-import org.apache.isis.core.metamodel.spec.ManagedObjects.EntityUtil;
import org.apache.isis.core.metamodel.specloader.SpecificationLoader;
import org.apache.isis.core.metamodel.specloader.SpecificationLoaderDefault;
@@ -239,30 +237,6 @@ public interface ManagedObject {
// -- DEPRECATIONS (REFACTORING)
- static void _whenFirstIsBookmarkable_ensureSecondIsAsWell(
- ManagedObject first,
- ManagedObject second) {
-
- if(ManagedObjects.isIdentifiable(first) && ManagedObjects.isSpecified(second)) {
-
- val refSpec = second.getSpecification();
-
- if(refSpec.isParented() || !refSpec.isEntity()) {
- return;
- }
-
- val entityState = EntityUtil.getEntityState(second);
- if(entityState != EntityState.PERSISTABLE_ATTACHED) {
- throw _Exceptions.illegalArgument(
- "can't set a reference to a transient object [%s] from a persistent one [%s]",
- second,
- first.titleString(null));
- }
-
- }
-
- }
-
// move this to ObjectManager?
static ManagedObject _adapterOfRootOid(SpecificationLoader specificationLoader, RootOid rootOid) {
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/spec/ManagedObjects.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/spec/ManagedObjects.java
index 20ee19f..e6ba200 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/spec/ManagedObjects.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/spec/ManagedObjects.java
@@ -293,7 +293,7 @@ public final class ManagedObjects {
_Assert.assertEquals(
EntityState.PERSISTABLE_ATTACHED,
entityState,
- ()-> String.format("entity %s is required to be attached (not detached) at this stage",
+ ()-> String.format("entity %s is required to be attached (not detached)",
managedObject.getSpecification().getSpecId()));
}
return managedObject;
@@ -326,6 +326,26 @@ public final class ManagedObjects {
return managedObject.getObjectManager().loadObject(objectLoadRequest);
}
+ public static void requiresWhenFirstIsBookmarkableSecondIsAttached(
+ ManagedObject first,
+ ManagedObject second) {
+
+ if(!ManagedObjects.isIdentifiable(first) || !ManagedObjects.isSpecified(second)) {
+ return;
+ }
+ val secondSpec = second.getSpecification();
+ if(secondSpec.isParented() || !secondSpec.isEntity()) {
+ return;
+ }
+
+ if(!EntityUtil.getEntityState(second).isAttached()) {
+ throw _Exceptions.illegalArgument(
+ "can't set a reference to a transient object [%s] from a persistent one [%s]",
+ second,
+ first.titleString(null));
+ }
+ }
+
// -- SHORTCUTS
public static boolean isDestroyed(@Nullable ManagedObject adapter) {
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/specimpl/OneToManyAssociationDefault.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/specimpl/OneToManyAssociationDefault.java
index 2b0371c..0d73fad 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/specimpl/OneToManyAssociationDefault.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/specimpl/OneToManyAssociationDefault.java
@@ -43,6 +43,7 @@ import org.apache.isis.core.metamodel.interactions.UsabilityContext;
import org.apache.isis.core.metamodel.interactions.ValidityContext;
import org.apache.isis.core.metamodel.interactions.VisibilityContext;
import org.apache.isis.core.metamodel.spec.ManagedObject;
+import org.apache.isis.core.metamodel.spec.ManagedObjects.EntityUtil;
import org.apache.isis.core.metamodel.spec.ObjectSpecification;
import org.apache.isis.core.metamodel.spec.feature.OneToManyAssociation;
@@ -196,7 +197,7 @@ extends ObjectAssociationAbstract implements OneToManyAssociation {
}
if (readWrite()) {
- ManagedObject._whenFirstIsBookmarkable_ensureSecondIsAsWell(
+ EntityUtil.requiresWhenFirstIsBookmarkableSecondIsAttached(
ownerAdapter,
referencedAdapter);
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/specimpl/OneToOneAssociationDefault.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/specimpl/OneToOneAssociationDefault.java
index fa44341..e33928c 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/specimpl/OneToOneAssociationDefault.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/specimpl/OneToOneAssociationDefault.java
@@ -50,6 +50,7 @@ import org.apache.isis.core.metamodel.interactions.ValidityContext;
import org.apache.isis.core.metamodel.interactions.VisibilityContext;
import org.apache.isis.core.metamodel.services.command.CommandDtoServiceInternal;
import org.apache.isis.core.metamodel.spec.ManagedObject;
+import org.apache.isis.core.metamodel.spec.ManagedObjects.EntityUtil;
import org.apache.isis.core.metamodel.spec.ObjectSpecification;
import org.apache.isis.core.metamodel.spec.feature.OneToOneAssociation;
import org.apache.isis.schema.cmd.v2.CommandDto;
@@ -193,7 +194,7 @@ implements OneToOneAssociation {
return;
}
- ManagedObject._whenFirstIsBookmarkable_ensureSecondIsAsWell(ownerAdapter, newReferencedAdapter);
+ EntityUtil.requiresWhenFirstIsBookmarkableSecondIsAttached(ownerAdapter, newReferencedAdapter);
propertySetterFacet.setProperty(this, ownerAdapter, newReferencedAdapter, interactionInitiatedBy);
}
diff --git a/viewers/restfulobjects/rendering/src/main/java/org/apache/isis/viewer/restfulobjects/rendering/domainobjects/DomainObjectReprRenderer.java b/viewers/restfulobjects/rendering/src/main/java/org/apache/isis/viewer/restfulobjects/rendering/domainobjects/DomainObjectReprRenderer.java
index b07b693..ee81816 100644
--- a/viewers/restfulobjects/rendering/src/main/java/org/apache/isis/viewer/restfulobjects/rendering/domainobjects/DomainObjectReprRenderer.java
+++ b/viewers/restfulobjects/rendering/src/main/java/org/apache/isis/viewer/restfulobjects/rendering/domainobjects/DomainObjectReprRenderer.java
@@ -281,18 +281,6 @@ public class DomainObjectReprRenderer extends ReprRendererAbstract<DomainObjectR
getLinks().arrayAdd(link);
}
-// private String getDomainType() {
-// return ManagedObjects.getDomainType(objectAdapter).orElse("?");
-// }
-//
-// private String getInstanceId() {
-// return ManagedObject._instanceId(objectAdapter);
-// }
-
-// private String getOidStr() {
-// return ManagedObjects.stringifyElseFail(objectAdapter);
-// }
-
private DomainObjectReprRenderer withMembers(final ManagedObject objectAdapter) {
final JsonRepresentation appendTo =
mode.isUpdatePropertiesLinkArgs() ? representation : JsonRepresentation.newMap();