This is an automated email from the ASF dual-hosted git repository.
danhaywood pushed a commit to branch CAUSEWAY-3676
in repository https://gitbox.apache.org/repos/asf/causeway.git
The following commit(s) were added to refs/heads/CAUSEWAY-3676 by this push:
new 493fef8e57 CAUSEWAY-3676: renames GqlvActionDisabled/HiddenHolder to
be GqlvMember...Holder
493fef8e57 is described below
commit 493fef8e5775b64d6238973b9c8ae2d676738aa3
Author: danhaywood <[email protected]>
AuthorDate: Tue Jan 23 18:23:38 2024 +0000
CAUSEWAY-3676: renames GqlvActionDisabled/HiddenHolder to be
GqlvMember...Holder
---
.../graphql/model/domain/BookmarkedPojo.java | 12 +++++++
.../viewer/graphql/model/domain/GqlvAction.java | 29 +++++++----------
.../graphql/model/domain/GqlvActionInvoke.java | 26 ++++++---------
...ActionDisabled.java => GqlvMemberDisabled.java} | 37 ++++++++++------------
...edHolder.java => GqlvMemberDisabledHolder.java} | 6 ++--
...GqlvActionHidden.java => GqlvMemberHidden.java} | 35 ++++++++------------
...ddenHolder.java => GqlvMemberHiddenHolder.java} | 5 +--
7 files changed, 69 insertions(+), 81 deletions(-)
diff --git
a/incubator/viewers/graphql/model/src/main/java/org/apache/causeway/viewer/graphql/model/domain/BookmarkedPojo.java
b/incubator/viewers/graphql/model/src/main/java/org/apache/causeway/viewer/graphql/model/domain/BookmarkedPojo.java
index 7e9a7aeae7..ed0e4d1be7 100644
---
a/incubator/viewers/graphql/model/src/main/java/org/apache/causeway/viewer/graphql/model/domain/BookmarkedPojo.java
+++
b/incubator/viewers/graphql/model/src/main/java/org/apache/causeway/viewer/graphql/model/domain/BookmarkedPojo.java
@@ -18,6 +18,10 @@
*/
package org.apache.causeway.viewer.graphql.model.domain;
+import graphql.schema.DataFetchingEnvironment;
+
+import lombok.val;
+
import org.apache.causeway.applib.services.bookmark.Bookmark;
import org.apache.causeway.applib.services.bookmark.BookmarkService;
@@ -34,6 +38,14 @@ class BookmarkedPojo {
this.bookmarkService = bookmarkService;
}
+ static Object sourceFrom(DataFetchingEnvironment dataFetchingEnvironment) {
+
+ val source = dataFetchingEnvironment.getSource();
+ return source instanceof BookmarkedPojo
+ ? ((BookmarkedPojo) source).getTargetPojo()
+ : source;
+ }
+
public Object getTargetPojo() {
return bookmarkService.lookup(bookmark).orElseThrow();
}
diff --git
a/incubator/viewers/graphql/model/src/main/java/org/apache/causeway/viewer/graphql/model/domain/GqlvAction.java
b/incubator/viewers/graphql/model/src/main/java/org/apache/causeway/viewer/graphql/model/domain/GqlvAction.java
index 71b8487184..ebf61e4ac1 100644
---
a/incubator/viewers/graphql/model/src/main/java/org/apache/causeway/viewer/graphql/model/domain/GqlvAction.java
+++
b/incubator/viewers/graphql/model/src/main/java/org/apache/causeway/viewer/graphql/model/domain/GqlvAction.java
@@ -31,12 +31,13 @@ import static
graphql.schema.GraphQLFieldDefinition.newFieldDefinition;
import static graphql.schema.GraphQLObjectType.newObject;
@Log4j2
-public class GqlvAction extends GqlvMember<ObjectAction, GqlvActionHolder>
implements GqlvActionInvokeHolder, GqlvActionHiddenHolder,
GqlvActionDisabledHolder {
+public class GqlvAction extends GqlvMember<ObjectAction, GqlvActionHolder>
+ implements GqlvActionInvokeHolder, GqlvMemberHiddenHolder,
GqlvMemberDisabledHolder {
private final GraphQLObjectType.Builder gqlObjectTypeBuilder;
private final GraphQLObjectType gqlObjectType;
- private final GqlvActionHidden hidden;
- private final GqlvActionDisabled disabled;
+ private final GqlvMemberHidden hidden;
+ private final GqlvMemberDisabled disabled;
private final GqlvActionInvoke invoke;
private final BookmarkService bookmarkService;
@@ -51,8 +52,8 @@ public class GqlvAction extends GqlvMember<ObjectAction,
GqlvActionHolder> imple
this.gqlObjectTypeBuilder =
newObject().name(TypeNames.actionTypeNameFor(objectAction,
holder.getObjectSpecification()));
this.bookmarkService = bookmarkService;
- this.hidden = new GqlvActionHidden(this, codeRegistryBuilder);
- this.disabled = new GqlvActionDisabled(this, codeRegistryBuilder);
+ this.hidden = new GqlvMemberHidden(this, codeRegistryBuilder);
+ this.disabled = new GqlvMemberDisabled(this, codeRegistryBuilder);
this.invoke = new GqlvActionInvoke(this, codeRegistryBuilder);
this.gqlObjectType = gqlObjectTypeBuilder.build();
@@ -67,7 +68,7 @@ public class GqlvAction extends GqlvMember<ObjectAction,
GqlvActionHolder> imple
setField(field);
}
-
+ @Override
public ObjectAction getObjectAction() {
return getObjectMember();
}
@@ -90,17 +91,11 @@ public class GqlvAction extends GqlvMember<ObjectAction,
GqlvActionHolder> imple
private class Fetcher implements DataFetcher<Object> {
@Override
- public Object get(DataFetchingEnvironment environment) {
- Object source = environment.getSource();
- Object domainPojo;
- if (source instanceof BookmarkedPojo) {
- BookmarkedPojo mutationsBookmarkedPojo = (BookmarkedPojo)
source;
- domainPojo = mutationsBookmarkedPojo.getTargetPojo();
- } else {
- // presumably this is a safe action
- domainPojo = source;
- }
- return bookmarkService.bookmarkFor(domainPojo)
+ public Object get(DataFetchingEnvironment dataFetchingEnvironment) {
+
+ val sourcePojo =
BookmarkedPojo.sourceFrom(dataFetchingEnvironment);
+
+ return bookmarkService.bookmarkFor(sourcePojo)
.map(bookmark -> new BookmarkedPojo(bookmark,
bookmarkService))
.orElseThrow();
}
diff --git
a/incubator/viewers/graphql/model/src/main/java/org/apache/causeway/viewer/graphql/model/domain/GqlvActionInvoke.java
b/incubator/viewers/graphql/model/src/main/java/org/apache/causeway/viewer/graphql/model/domain/GqlvActionInvoke.java
index d7f0b0f3fe..a6a2ac8d41 100644
---
a/incubator/viewers/graphql/model/src/main/java/org/apache/causeway/viewer/graphql/model/domain/GqlvActionInvoke.java
+++
b/incubator/viewers/graphql/model/src/main/java/org/apache/causeway/viewer/graphql/model/domain/GqlvActionInvoke.java
@@ -43,6 +43,7 @@ import
org.apache.causeway.core.metamodel.object.ManagedObject;
import org.apache.causeway.core.metamodel.spec.ObjectSpecification;
import org.apache.causeway.core.metamodel.spec.feature.ObjectAction;
import org.apache.causeway.core.metamodel.spec.feature.ObjectActionParameter;
+import org.apache.causeway.core.metamodel.specloader.SpecificationLoader;
import org.apache.causeway.viewer.graphql.model.types.ScalarMapper;
import org.apache.causeway.viewer.graphql.model.util.TypeNames;
@@ -172,25 +173,18 @@ public class GqlvActionInvoke {
final DataFetchingEnvironment dataFetchingEnvironment) {
final ObjectAction objectAction = holder.getObjectAction();
- Object source = dataFetchingEnvironment.getSource();
- Object domainObjectInstance;
- if (source instanceof BookmarkedPojo) {
- BookmarkedPojo fetched = (BookmarkedPojo) source;
- domainObjectInstance = fetched.getTargetPojo();
- } else {
- domainObjectInstance = source;
- }
+ val sourcePojo = BookmarkedPojo.sourceFrom(dataFetchingEnvironment);
- Class<?> domainObjectInstanceClass = domainObjectInstance.getClass();
- ObjectSpecification specification =
holder.getObjectAction().getSpecificationLoader()
- .loadSpecification(domainObjectInstanceClass);
- if (specification == null) {
+ val sourcePojoClass = sourcePojo.getClass();
+ val specificationLoader =
holder.getObjectAction().getSpecificationLoader();
+ val objectSpecification =
specificationLoader.loadSpecification(sourcePojoClass);
+ if (objectSpecification == null) {
// not expected
return null;
}
- ManagedObject owner = ManagedObject.adaptSingular(specification,
domainObjectInstance);
- ActionInteractionHead actionInteractionHead =
objectAction.interactionHead(owner);
+ val managedObject = ManagedObject.adaptSingular(objectSpecification,
sourcePojo);
+ val actionInteractionHead =
objectAction.interactionHead(managedObject);
Map<String, Object> arguments = dataFetchingEnvironment.getArguments();
Can<ObjectActionParameter> parameters = objectAction.getParameters();
@@ -200,10 +194,10 @@ public class GqlvActionInvoke {
return ManagedObject.adaptParameter(oap, argumentValue);
});
- ManagedObject managedObject = objectAction
+ val resultManagedObject = objectAction
.execute(actionInteractionHead, canOfParams,
InteractionInitiatedBy.USER);
- return managedObject.getPojo();
+ return resultManagedObject.getPojo();
}
}
diff --git
a/incubator/viewers/graphql/model/src/main/java/org/apache/causeway/viewer/graphql/model/domain/GqlvActionDisabled.java
b/incubator/viewers/graphql/model/src/main/java/org/apache/causeway/viewer/graphql/model/domain/GqlvMemberDisabled.java
similarity index 70%
rename from
incubator/viewers/graphql/model/src/main/java/org/apache/causeway/viewer/graphql/model/domain/GqlvActionDisabled.java
rename to
incubator/viewers/graphql/model/src/main/java/org/apache/causeway/viewer/graphql/model/domain/GqlvMemberDisabled.java
index c42a7fcf20..4ab4f29a45 100644
---
a/incubator/viewers/graphql/model/src/main/java/org/apache/causeway/viewer/graphql/model/domain/GqlvActionDisabled.java
+++
b/incubator/viewers/graphql/model/src/main/java/org/apache/causeway/viewer/graphql/model/domain/GqlvMemberDisabled.java
@@ -23,6 +23,8 @@ import
org.apache.causeway.core.metamodel.consent.InteractionInitiatedBy;
import org.apache.causeway.core.metamodel.object.ManagedObject;
import org.apache.causeway.core.metamodel.spec.ObjectSpecification;
import org.apache.causeway.core.metamodel.spec.feature.ObjectAction;
+import org.apache.causeway.core.metamodel.spec.feature.ObjectMember;
+import org.apache.causeway.core.metamodel.specloader.SpecificationLoader;
import org.apache.causeway.viewer.graphql.model.types.ScalarMapper;
import lombok.val;
@@ -35,14 +37,14 @@ import graphql.schema.GraphQLFieldDefinition;
import static graphql.schema.GraphQLFieldDefinition.newFieldDefinition;
@Log4j2
-public class GqlvActionDisabled {
+public class GqlvMemberDisabled {
- private final GqlvActionHiddenHolder holder;
+ private final GqlvMemberDisabledHolder holder;
private final GraphQLCodeRegistry.Builder codeRegistryBuilder;
private final GraphQLFieldDefinition field;
- public GqlvActionDisabled(
- final GqlvActionHiddenHolder holder,
+ public GqlvMemberDisabled(
+ final GqlvMemberDisabledHolder holder,
final GraphQLCodeRegistry.Builder codeRegistryBuilder
) {
this.holder = holder;
@@ -50,7 +52,7 @@ public class GqlvActionDisabled {
this.field = fieldDefinition(holder);
}
- private static GraphQLFieldDefinition fieldDefinition(final
GqlvActionHiddenHolder holder) {
+ private static GraphQLFieldDefinition fieldDefinition(final
GqlvMemberDisabledHolder holder) {
GraphQLFieldDefinition fieldDefinition =
newFieldDefinition()
@@ -72,28 +74,21 @@ public class GqlvActionDisabled {
private String disabled(
final DataFetchingEnvironment dataFetchingEnvironment) {
- final ObjectAction objectAction = holder.getObjectAction();
+ final ObjectMember objectMember = holder.getObjectMember();
- Object source = dataFetchingEnvironment.getSource();
- Object domainObjectInstance;
- if (source instanceof BookmarkedPojo) {
- BookmarkedPojo fetched = (BookmarkedPojo) source;
- domainObjectInstance = fetched.getTargetPojo();
- } else {
- domainObjectInstance = source;
- }
+ val sourcePojo = BookmarkedPojo.sourceFrom(dataFetchingEnvironment);
- Class<?> domainObjectInstanceClass = domainObjectInstance.getClass();
- ObjectSpecification specification =
holder.getObjectAction().getSpecificationLoader()
- .loadSpecification(domainObjectInstanceClass);
- if (specification == null) {
+ val sourcePojoClass = sourcePojo.getClass();
+ val specificationLoader =
holder.getObjectMember().getSpecificationLoader();
+ val objectSpecification =
specificationLoader.loadSpecification(sourcePojoClass);
+ if (objectSpecification == null) {
// not expected
- return String.format("Disabled; could not determine target
object's type ('%s')", domainObjectInstanceClass.getName());
+ return String.format("Disabled; could not determine target
object's type ('%s')", sourcePojoClass.getName());
}
- ManagedObject owner = ManagedObject.adaptSingular(specification,
domainObjectInstance);
+ val managedObject = ManagedObject.adaptSingular(objectSpecification,
sourcePojo);
- val usable = objectAction.isUsable(owner, InteractionInitiatedBy.USER,
Where.ANYWHERE);
+ val usable = objectMember.isUsable(managedObject,
InteractionInitiatedBy.USER, Where.ANYWHERE);
return usable.getReasonAsString().orElse(null);
}
diff --git
a/incubator/viewers/graphql/model/src/main/java/org/apache/causeway/viewer/graphql/model/domain/GqlvActionDisabledHolder.java
b/incubator/viewers/graphql/model/src/main/java/org/apache/causeway/viewer/graphql/model/domain/GqlvMemberDisabledHolder.java
similarity index 84%
rename from
incubator/viewers/graphql/model/src/main/java/org/apache/causeway/viewer/graphql/model/domain/GqlvActionDisabledHolder.java
rename to
incubator/viewers/graphql/model/src/main/java/org/apache/causeway/viewer/graphql/model/domain/GqlvMemberDisabledHolder.java
index 8264c7ad72..3fde923567 100644
---
a/incubator/viewers/graphql/model/src/main/java/org/apache/causeway/viewer/graphql/model/domain/GqlvActionDisabledHolder.java
+++
b/incubator/viewers/graphql/model/src/main/java/org/apache/causeway/viewer/graphql/model/domain/GqlvMemberDisabledHolder.java
@@ -18,10 +18,10 @@
*/
package org.apache.causeway.viewer.graphql.model.domain;
-import org.apache.causeway.core.metamodel.spec.feature.ObjectAction;
+import org.apache.causeway.core.metamodel.spec.feature.ObjectMember;
-public interface GqlvActionDisabledHolder extends GqlvHolder {
+public interface GqlvMemberDisabledHolder extends GqlvHolder {
- ObjectAction getObjectAction();
+ ObjectMember getObjectMember();
}
diff --git
a/incubator/viewers/graphql/model/src/main/java/org/apache/causeway/viewer/graphql/model/domain/GqlvActionHidden.java
b/incubator/viewers/graphql/model/src/main/java/org/apache/causeway/viewer/graphql/model/domain/GqlvMemberHidden.java
similarity index 67%
rename from
incubator/viewers/graphql/model/src/main/java/org/apache/causeway/viewer/graphql/model/domain/GqlvActionHidden.java
rename to
incubator/viewers/graphql/model/src/main/java/org/apache/causeway/viewer/graphql/model/domain/GqlvMemberHidden.java
index 8b4852ec24..07e1d4cf47 100644
---
a/incubator/viewers/graphql/model/src/main/java/org/apache/causeway/viewer/graphql/model/domain/GqlvActionHidden.java
+++
b/incubator/viewers/graphql/model/src/main/java/org/apache/causeway/viewer/graphql/model/domain/GqlvMemberHidden.java
@@ -21,8 +21,6 @@ package org.apache.causeway.viewer.graphql.model.domain;
import org.apache.causeway.applib.annotation.Where;
import org.apache.causeway.core.metamodel.consent.InteractionInitiatedBy;
import org.apache.causeway.core.metamodel.object.ManagedObject;
-import org.apache.causeway.core.metamodel.spec.ObjectSpecification;
-import org.apache.causeway.core.metamodel.spec.feature.ObjectAction;
import org.apache.causeway.viewer.graphql.model.types.ScalarMapper;
import lombok.extern.log4j.Log4j2;
@@ -36,14 +34,14 @@ import lombok.val;
import static graphql.schema.GraphQLFieldDefinition.newFieldDefinition;
@Log4j2
-public class GqlvActionHidden {
+public class GqlvMemberHidden {
- private final GqlvActionHiddenHolder holder;
+ private final GqlvMemberHiddenHolder holder;
private final GraphQLCodeRegistry.Builder codeRegistryBuilder;
private final GraphQLFieldDefinition field;
- public GqlvActionHidden(
- final GqlvActionHiddenHolder holder,
+ public GqlvMemberHidden(
+ final GqlvMemberHiddenHolder holder,
final GraphQLCodeRegistry.Builder codeRegistryBuilder
) {
this.holder = holder;
@@ -51,7 +49,7 @@ public class GqlvActionHidden {
this.field = fieldDefinition(holder);
}
- private static GraphQLFieldDefinition fieldDefinition(final
GqlvActionHiddenHolder holder) {
+ private static GraphQLFieldDefinition fieldDefinition(final
GqlvMemberHiddenHolder holder) {
GraphQLFieldDefinition fieldDefinition =
newFieldDefinition()
@@ -73,28 +71,21 @@ public class GqlvActionHidden {
private boolean hidden(
final DataFetchingEnvironment dataFetchingEnvironment) {
- final ObjectAction objectAction = holder.getObjectAction();
+ val objectMember = holder.getObjectMember();
- Object source = dataFetchingEnvironment.getSource();
- Object domainObjectInstance;
- if (source instanceof BookmarkedPojo) {
- BookmarkedPojo fetched = (BookmarkedPojo) source;
- domainObjectInstance = fetched.getTargetPojo();
- } else {
- domainObjectInstance = source;
- }
+ val sourcePojo = BookmarkedPojo.sourceFrom(dataFetchingEnvironment);
- Class<?> domainObjectInstanceClass = domainObjectInstance.getClass();
- ObjectSpecification specification =
holder.getObjectAction().getSpecificationLoader()
- .loadSpecification(domainObjectInstanceClass);
- if (specification == null) {
+ val sourcePojoClass = sourcePojo.getClass();
+ val specificationLoader =
holder.getObjectMember().getSpecificationLoader();
+ val objectSpecification =
specificationLoader.loadSpecification(sourcePojoClass);
+ if (objectSpecification == null) {
// not expected
return true;
}
- ManagedObject owner = ManagedObject.adaptSingular(specification,
domainObjectInstance);
+ val managedObject = ManagedObject.adaptSingular(objectSpecification,
sourcePojo);
- val visibleConsent = objectAction.isVisible(owner,
InteractionInitiatedBy.USER, Where.ANYWHERE);
+ val visibleConsent = objectMember.isVisible(managedObject,
InteractionInitiatedBy.USER, Where.ANYWHERE);
return visibleConsent.isVetoed();
}
diff --git
a/incubator/viewers/graphql/model/src/main/java/org/apache/causeway/viewer/graphql/model/domain/GqlvActionHiddenHolder.java
b/incubator/viewers/graphql/model/src/main/java/org/apache/causeway/viewer/graphql/model/domain/GqlvMemberHiddenHolder.java
similarity index 85%
rename from
incubator/viewers/graphql/model/src/main/java/org/apache/causeway/viewer/graphql/model/domain/GqlvActionHiddenHolder.java
rename to
incubator/viewers/graphql/model/src/main/java/org/apache/causeway/viewer/graphql/model/domain/GqlvMemberHiddenHolder.java
index a13414ea92..85b705fef4 100644
---
a/incubator/viewers/graphql/model/src/main/java/org/apache/causeway/viewer/graphql/model/domain/GqlvActionHiddenHolder.java
+++
b/incubator/viewers/graphql/model/src/main/java/org/apache/causeway/viewer/graphql/model/domain/GqlvMemberHiddenHolder.java
@@ -19,9 +19,10 @@
package org.apache.causeway.viewer.graphql.model.domain;
import org.apache.causeway.core.metamodel.spec.feature.ObjectAction;
+import org.apache.causeway.core.metamodel.spec.feature.ObjectMember;
-public interface GqlvActionHiddenHolder extends GqlvHolder {
+public interface GqlvMemberHiddenHolder extends GqlvHolder {
- ObjectAction getObjectAction();
+ ObjectMember getObjectMember();
}