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 2022/05/02 17:48:31 UTC
[isis] branch master updated: ISIS-2902: remove ManagedMember.MemberType (replace by Identifier.Type)
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 b462a821ad ISIS-2902: remove ManagedMember.MemberType (replace by Identifier.Type)
b462a821ad is described below
commit b462a821ad3b00a1330877e461c9af5fe32dd289
Author: andi-huber <ah...@apache.org>
AuthorDate: Mon May 2 19:48:24 2022 +0200
ISIS-2902: remove ManagedMember.MemberType (replace by Identifier.Type)
---
.../interactions/managed/ManagedAction.java | 9 ++--
.../interactions/managed/ManagedCollection.java | 7 +--
.../interactions/managed/ManagedMember.java | 53 +++++-----------------
.../interactions/managed/ManagedProperty.java | 7 +--
4 files changed, 24 insertions(+), 52 deletions(-)
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/interactions/managed/ManagedAction.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/interactions/managed/ManagedAction.java
index c0a21c9708..f331310b36 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/interactions/managed/ManagedAction.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/interactions/managed/ManagedAction.java
@@ -23,6 +23,7 @@ import java.util.Optional;
import org.springframework.lang.Nullable;
+import org.apache.isis.applib.Identifier;
import org.apache.isis.applib.annotation.Where;
import org.apache.isis.applib.services.inject.ServiceInjector;
import org.apache.isis.applib.services.registry.ServiceRegistry;
@@ -64,7 +65,7 @@ public final class ManagedAction extends ManagedMember {
final @NonNull String memberId,
final @NonNull Where where) {
- return ManagedMember.<ObjectAction>lookup(owner, MemberType.ACTION, memberId)
+ return ManagedMember.<ObjectAction>lookup(owner, Identifier.Type.ACTION, memberId)
.map(objectAction -> of(owner, objectAction, where));
}
@@ -74,7 +75,7 @@ public final class ManagedAction extends ManagedMember {
final @NonNull Where where,
final @NonNull MultiselectChoices multiselectChoices) {
- return ManagedMember.<ObjectAction>lookup(owner, MemberType.ACTION, memberId)
+ return ManagedMember.<ObjectAction>lookup(owner, Identifier.Type.ACTION, memberId)
.map(objectAction -> new ManagedAction(owner, objectAction, where, multiselectChoices));
}
@@ -117,8 +118,8 @@ public final class ManagedAction extends ManagedMember {
}
@Override
- public MemberType getMemberType() {
- return MemberType.ACTION;
+ public Identifier.Type getMemberType() {
+ return Identifier.Type.ACTION;
}
// -- INTERACTION
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/interactions/managed/ManagedCollection.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/interactions/managed/ManagedCollection.java
index 5bda4764a7..22d0c67d21 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/interactions/managed/ManagedCollection.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/interactions/managed/ManagedCollection.java
@@ -21,6 +21,7 @@ package org.apache.isis.core.metamodel.interactions.managed;
import java.util.Optional;
import java.util.stream.Stream;
+import org.apache.isis.applib.Identifier;
import org.apache.isis.applib.annotation.Where;
import org.apache.isis.commons.collections.Can;
import org.apache.isis.core.metamodel.consent.InteractionInitiatedBy;
@@ -50,7 +51,7 @@ public final class ManagedCollection extends ManagedMember {
final @NonNull String memberId,
final @NonNull Where where) {
- return ManagedMember.<OneToManyAssociation>lookup(owner, MemberType.COLLECTION, memberId)
+ return ManagedMember.<OneToManyAssociation>lookup(owner, Identifier.Type.COLLECTION, memberId)
.map(objectAction -> of(owner, objectAction, where));
}
@@ -73,8 +74,8 @@ public final class ManagedCollection extends ManagedMember {
}
@Override
- public MemberType getMemberType() {
- return MemberType.COLLECTION;
+ public Identifier.Type getMemberType() {
+ return Identifier.Type.COLLECTION;
}
public Can<ObjectAction> getAssociatedActions() {
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/interactions/managed/ManagedMember.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/interactions/managed/ManagedMember.java
index 56b1edd8ad..76b72217e0 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/interactions/managed/ManagedMember.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/interactions/managed/ManagedMember.java
@@ -19,7 +19,6 @@
package org.apache.isis.core.metamodel.interactions.managed;
import java.util.Optional;
-import java.util.function.BiFunction;
import org.apache.isis.applib.Identifier;
import org.apache.isis.applib.annotation.Where;
@@ -29,10 +28,7 @@ import org.apache.isis.core.metamodel.consent.Veto;
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.ObjectAction;
import org.apache.isis.core.metamodel.spec.feature.ObjectMember;
-import org.apache.isis.core.metamodel.spec.feature.OneToManyAssociation;
-import org.apache.isis.core.metamodel.spec.feature.OneToOneAssociation;
import lombok.Getter;
import lombok.NonNull;
@@ -46,39 +42,6 @@ import lombok.extern.log4j.Log4j2;
public abstract class ManagedMember
implements ManagedFeature {
- // only used to create failure messages
- @RequiredArgsConstructor
- public static enum MemberType {
- PROPERTY(OneToOneAssociation.class, (spec, propertyId)->
- spec.getProperty(propertyId)),
-
- COLLECTION(OneToManyAssociation.class, (spec, collectionId)->
- spec.getCollection(collectionId)),
-
- ACTION(ObjectAction.class, (spec, actionId)->
- spec.getAction(actionId));
-
- @Getter private final Class<? extends ObjectMember> memberType;
- private final BiFunction<
- ObjectSpecification,
- String,
- Optional<? extends ObjectMember>> memberProvider;
-
- public <T extends ObjectMember> Optional<T> lookup(
- final @NonNull ManagedObject owner,
- final @NonNull String memberId) {
- val onwerSpec = owner.getSpecification();
- val member = memberProvider.apply(onwerSpec, memberId);
- return _Casts.uncheckedCast(member);
- }
-
- public boolean isPropertyOrCollection() {
- return this == PROPERTY
- || this == COLLECTION;
- }
-
- }
-
/**
* Some representations may vary according to whether the member is to be represented for read
* (render the state of the property or collection) or for write (render additional hypermedia controls to allow
@@ -121,7 +84,7 @@ implements ManagedFeature {
@Override
public abstract ObjectMember getMetaModel();
- public abstract MemberType getMemberType();
+ public abstract Identifier.Type getMemberType();
@Override
public ObjectSpecification getElementType() {
@@ -200,11 +163,17 @@ implements ManagedFeature {
protected static <T extends ObjectMember> Optional<T> lookup(
final @NonNull ManagedObject owner,
- final @NonNull MemberType memberType,
+ final @NonNull Identifier.Type memberType,
final @NonNull String memberId) {
- return memberType.lookup(owner, memberId);
- }
-
+ val onwerSpec = owner.getSpecification();
+ switch (memberType) {
+ case ACTION: return _Casts.uncheckedCast(onwerSpec.getAction(memberId));
+ case PROPERTY: return _Casts.uncheckedCast(onwerSpec.getProperty(memberId));
+ case COLLECTION: return _Casts.uncheckedCast(onwerSpec.getCollection(memberId));
+ default:
+ return Optional.empty();
+ }
+ }
}
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/interactions/managed/ManagedProperty.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/interactions/managed/ManagedProperty.java
index d517a099aa..3d17fd6121 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/interactions/managed/ManagedProperty.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/interactions/managed/ManagedProperty.java
@@ -22,6 +22,7 @@ import java.util.Optional;
import org.springframework.lang.Nullable;
+import org.apache.isis.applib.Identifier;
import org.apache.isis.applib.annotation.Where;
import org.apache.isis.commons.binding.Observable;
import org.apache.isis.commons.collections.Can;
@@ -56,7 +57,7 @@ extends ManagedMember {
final @NonNull String memberId,
final @NonNull Where where) {
- return ManagedMember.<OneToOneAssociation>lookup(owner, MemberType.PROPERTY, memberId)
+ return ManagedMember.<OneToOneAssociation>lookup(owner, Identifier.Type.PROPERTY, memberId)
.map(objectAction -> of(owner, objectAction, where));
}
@@ -84,8 +85,8 @@ extends ManagedMember {
}
@Override
- public MemberType getMemberType() {
- return MemberType.PROPERTY;
+ public Identifier.Type getMemberType() {
+ return Identifier.Type.PROPERTY;
}
public Can<ObjectAction> getAssociatedActions() {