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
commit 2f816efb5f077180c6d628f3ae7db68015f3e8d6 Author: danhaywood <[email protected]> AuthorDate: Tue Mar 12 17:20:51 2024 +0000 CAUSEWAY-3676: reworks to use an SPI instead of annotation --- .../viewer/graphql/model/domain/TypeNames.java | 24 +++++++++------------- .../domain/common/query/ObjectFeatureUtils.java | 7 +------ .../rich/mutation/RichMutationForAction.java | 11 ++++------ .../rich/mutation/RichMutationForProperty.java | 6 +++--- .../model/domain/rich/query/RichAction.java | 8 ++++---- .../domain/rich/query/RichActionInvokeArgsArg.java | 3 +-- .../domain/rich/query/RichActionParamsParam.java | 3 +-- .../query/RichActionParamsParamAutoComplete.java | 7 ++++--- .../rich/query/RichActionParamsParamChoices.java | 7 ++++--- .../rich/query/RichActionParamsParamDefault.java | 5 +++-- .../rich/query/RichActionParamsParamDisabled.java | 5 +++-- .../rich/query/RichActionParamsParamHidden.java | 7 ++++--- .../rich/query/RichActionParamsParamValidate.java | 5 +++-- .../domain/rich/query/RichActionValidity.java | 3 +-- .../model/domain/rich/query/RichCollection.java | 3 +-- .../model/domain/rich/query/RichProperty.java | 5 ++--- .../rich/query/RichPropertyGetBlobBytes.java | 9 +++++--- .../rich/query/RichPropertyGetClobChars.java | 9 +++++--- .../model/domain/rich/query/RichPropertySet.java | 3 +-- .../domain/rich/query/RichPropertyValidate.java | 3 +-- .../simple/mutation/SimpleMutationForAction.java | 11 ++++------ .../simple/mutation/SimpleMutationForProperty.java | 6 +++--- .../model/domain/simple/query/SimpleAction.java | 11 ++++------ .../domain/simple/query/SimpleCollection.java | 3 +-- .../model/domain/simple/query/SimpleProperty.java | 3 +-- .../simple/query/SimplePropertyLobBytes.java | 9 +++++--- .../simple/query/SimplePropertyLobChars.java | 9 +++++--- 27 files changed, 88 insertions(+), 97 deletions(-) diff --git a/viewers/graphql/model/src/main/java/org/apache/causeway/viewer/graphql/model/domain/TypeNames.java b/viewers/graphql/model/src/main/java/org/apache/causeway/viewer/graphql/model/domain/TypeNames.java index 4fa5bf1e1f..e57f1461b0 100644 --- a/viewers/graphql/model/src/main/java/org/apache/causeway/viewer/graphql/model/domain/TypeNames.java +++ b/viewers/graphql/model/src/main/java/org/apache/causeway/viewer/graphql/model/domain/TypeNames.java @@ -19,12 +19,7 @@ package org.apache.causeway.viewer.graphql.model.domain; 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.spec.feature.ObjectMember; -import org.apache.causeway.core.metamodel.spec.feature.OneToManyAssociation; -import org.apache.causeway.core.metamodel.spec.feature.OneToOneAssociation; -import org.apache.causeway.viewer.graphql.model.domain.common.query.ObjectFeatureUtils; +import org.apache.causeway.core.metamodel.spec.feature.*; import lombok.experimental.UtilityClass; @@ -71,56 +66,57 @@ public final class TypeNames { final ObjectSpecification owningType, final ObjectAction oa, final SchemaType schemaType) { - return objectTypeNameFor(owningType, schemaType) + "__" + ObjectFeatureUtils.asciiIdFor(oa) + "__gqlv_action_invoke"; + return objectTypeNameFor(owningType, schemaType) + "__" + oa.asciiId() + "__gqlv_action_invoke"; } public static String actionParamsTypeNameFor( final ObjectSpecification owningType, final ObjectAction oa, final SchemaType schemaType) { - return objectTypeNameFor(owningType, schemaType) + "__" + ObjectFeatureUtils.asciiIdFor(oa) + "__gqlv_action_params"; + return objectTypeNameFor(owningType, schemaType) + "__" + oa.asciiId() + "__gqlv_action_params"; } public static String actionArgsTypeNameFor( final ObjectSpecification owningType, final ObjectAction oa, final SchemaType schemaType) { - return objectTypeNameFor(owningType, schemaType) + "__" + ObjectFeatureUtils.asciiIdFor(oa) + "__gqlv_action_args"; + return objectTypeNameFor(owningType, schemaType) + "__" + oa.asciiId() + "__gqlv_action_args"; } public static String actionParamTypeNameFor( final ObjectSpecification owningType, final ObjectActionParameter oap, final SchemaType schemaType) { - return objectTypeNameFor(owningType, schemaType) + "__" + ObjectFeatureUtils.asciiIdFor(oap.getAction()) + "__" + ObjectFeatureUtils.asciiIdFor(oap) + "__gqlv_action_parameter"; + final ObjectFeature objectFeature = oap.getAction(); + return objectTypeNameFor(owningType, schemaType) + "__" + objectFeature.asciiId() + "__" + oap.asciiId() + "__gqlv_action_parameter"; } public static String propertyTypeNameFor( final ObjectSpecification owningType, final OneToOneAssociation otoa, final SchemaType schemaType) { - return objectTypeNameFor(owningType, schemaType) + "__" + ObjectFeatureUtils.asciiIdFor(otoa) + "__gqlv_property"; + return objectTypeNameFor(owningType, schemaType) + "__" + otoa.asciiId() + "__gqlv_property"; } public static String propertyLobTypeNameFor( final ObjectSpecification owningType, final OneToOneAssociation otoa, final SchemaType schemaType) { - return objectTypeNameFor(owningType, schemaType) + "__" + ObjectFeatureUtils.asciiIdFor(otoa) + "__gqlv_property_lob"; + return objectTypeNameFor(owningType, schemaType) + "__" + otoa.asciiId() + "__gqlv_property_lob"; } public static String collectionTypeNameFor( final ObjectSpecification owningType, final OneToManyAssociation otma, final SchemaType schemaType) { - return objectTypeNameFor(owningType, schemaType) + "__" + ObjectFeatureUtils.asciiIdFor(otma) + "__gqlv_collection"; + return objectTypeNameFor(owningType, schemaType) + "__" + otma.asciiId() + "__gqlv_collection"; } public static String memberTypeNameFor( final ObjectSpecification owningType, final ObjectMember objectMember, final SchemaType schemaType) { - return objectTypeNameFor(owningType, schemaType) + "__" + ObjectFeatureUtils.asciiIdFor(objectMember) + "__gqlv_member"; + return objectTypeNameFor(owningType, schemaType) + "__" + objectMember.asciiId() + "__gqlv_member"; } private static String sanitized(final String name) { diff --git a/viewers/graphql/model/src/main/java/org/apache/causeway/viewer/graphql/model/domain/common/query/ObjectFeatureUtils.java b/viewers/graphql/model/src/main/java/org/apache/causeway/viewer/graphql/model/domain/common/query/ObjectFeatureUtils.java index c6f890a074..fecaae4647 100644 --- a/viewers/graphql/model/src/main/java/org/apache/causeway/viewer/graphql/model/domain/common/query/ObjectFeatureUtils.java +++ b/viewers/graphql/model/src/main/java/org/apache/causeway/viewer/graphql/model/domain/common/query/ObjectFeatureUtils.java @@ -29,7 +29,6 @@ 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.spec.feature.ObjectFeature; import org.apache.causeway.viewer.graphql.model.context.Context; import org.apache.causeway.viewer.graphql.model.domain.Environment; import org.apache.causeway.viewer.graphql.model.fetcher.BookmarkedPojo; @@ -109,7 +108,7 @@ public class ObjectFeatureUtils { return parameters .map(oap -> { final ObjectSpecification elementType = oap.getElementType(); - Object argumentValue = argumentPojos.get(asciiIdFor(oap)); + Object argumentValue = argumentPojos.get(oap.asciiId()); Object pojoOrPojoList; switch (elementType.getBeanSort()) { @@ -152,10 +151,6 @@ public class ObjectFeatureUtils { }); } - public static String asciiIdFor(final ObjectFeature objectFeature) { - return objectFeature.getId(); - } - private static ManagedObject adaptValue( final ObjectActionParameter oap, final Object argumentValue, diff --git a/viewers/graphql/model/src/main/java/org/apache/causeway/viewer/graphql/model/domain/rich/mutation/RichMutationForAction.java b/viewers/graphql/model/src/main/java/org/apache/causeway/viewer/graphql/model/domain/rich/mutation/RichMutationForAction.java index 057634f681..ca5ec125b7 100644 --- a/viewers/graphql/model/src/main/java/org/apache/causeway/viewer/graphql/model/domain/rich/mutation/RichMutationForAction.java +++ b/viewers/graphql/model/src/main/java/org/apache/causeway/viewer/graphql/model/domain/rich/mutation/RichMutationForAction.java @@ -31,6 +31,7 @@ import graphql.schema.GraphQLType; import static graphql.schema.GraphQLFieldDefinition.newFieldDefinition; +import org.apache.causeway.core.metamodel.spec.feature.*; import org.springframework.lang.Nullable; import org.apache.causeway.applib.annotation.Where; @@ -40,10 +41,6 @@ import org.apache.causeway.core.metamodel.consent.InteractionInitiatedBy; import org.apache.causeway.core.metamodel.facets.actcoll.typeof.TypeOfFacet; 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.spec.feature.OneToManyActionParameter; -import org.apache.causeway.core.metamodel.spec.feature.OneToOneActionParameter; import org.apache.causeway.viewer.graphql.model.context.Context; import org.apache.causeway.viewer.graphql.model.domain.Environment; import org.apache.causeway.viewer.graphql.model.domain.Element; @@ -93,7 +90,7 @@ public class RichMutationForAction extends Element { private static String fieldName( final ObjectSpecification objectSpecification, final ObjectAction oa) { - return TypeNames.objectTypeFieldNameFor(objectSpecification) + "__" + ObjectFeatureUtils.asciiIdFor(oa); + return TypeNames.objectTypeFieldNameFor(objectSpecification) + "__" + oa.asciiId(); } @Nullable @@ -229,7 +226,7 @@ public class RichMutationForAction extends Element { // adapted from SimpleAction GraphQLArgument gqlArgumentFor(final OneToOneActionParameter otoap) { return GraphQLArgument.newArgument() - .name(ObjectFeatureUtils.asciiIdFor(otoap)) + .name(otoap.asciiId()) .type(context.typeMapper.inputTypeFor(otoap, TypeMapper.InputContext.INVOKE, SchemaType.RICH)) .build(); } @@ -237,7 +234,7 @@ public class RichMutationForAction extends Element { // adapted from SimpleAction GraphQLArgument gqlArgumentFor(final OneToManyActionParameter otmap) { return GraphQLArgument.newArgument() - .name(ObjectFeatureUtils.asciiIdFor(otmap)) + .name(otmap.asciiId()) .type(context.typeMapper.inputTypeFor(otmap, SchemaType.RICH)) .build(); } diff --git a/viewers/graphql/model/src/main/java/org/apache/causeway/viewer/graphql/model/domain/rich/mutation/RichMutationForProperty.java b/viewers/graphql/model/src/main/java/org/apache/causeway/viewer/graphql/model/domain/rich/mutation/RichMutationForProperty.java index eedce83511..8ced7f1b7c 100644 --- a/viewers/graphql/model/src/main/java/org/apache/causeway/viewer/graphql/model/domain/rich/mutation/RichMutationForProperty.java +++ b/viewers/graphql/model/src/main/java/org/apache/causeway/viewer/graphql/model/domain/rich/mutation/RichMutationForProperty.java @@ -82,7 +82,7 @@ public class RichMutationForProperty extends Element { private static String fieldName( final ObjectSpecification objectSpecification, final OneToOneAssociation otoa) { - return TypeNames.objectTypeFieldNameFor(objectSpecification) + "__" + ObjectFeatureUtils.asciiIdFor(otoa); + return TypeNames.objectTypeFieldNameFor(objectSpecification) + "__" + otoa.asciiId(); } @Override @@ -123,7 +123,7 @@ public class RichMutationForProperty extends Element { val managedObject = ManagedObject.adaptSingular(objectSpec, sourcePojo); Map<String, Object> arguments = dataFetchingEnvironment.getArguments(); - Object argumentValue = arguments.get(ObjectFeatureUtils.asciiIdFor(oneToOneAssociation)); + Object argumentValue = arguments.get(oneToOneAssociation.asciiId()); ManagedObject argumentManagedObject = ManagedObject.adaptProperty(oneToOneAssociation, argumentValue); val visibleConsent = oneToOneAssociation.isVisible(managedObject, InteractionInitiatedBy.USER, Where.ANYWHERE); @@ -160,7 +160,7 @@ public class RichMutationForProperty extends Element { fieldBuilder.argument( GraphQLArgument.newArgument() - .name(ObjectFeatureUtils.asciiIdFor(oneToOneAssociation)) + .name(oneToOneAssociation.asciiId()) .type(context.typeMapper.inputTypeFor(oneToOneAssociation, TypeMapper.InputContext.INVOKE, SchemaType.RICH)) .build()); } diff --git a/viewers/graphql/model/src/main/java/org/apache/causeway/viewer/graphql/model/domain/rich/query/RichAction.java b/viewers/graphql/model/src/main/java/org/apache/causeway/viewer/graphql/model/domain/rich/query/RichAction.java index 13c11b55ba..5e91700eac 100644 --- a/viewers/graphql/model/src/main/java/org/apache/causeway/viewer/graphql/model/domain/rich/query/RichAction.java +++ b/viewers/graphql/model/src/main/java/org/apache/causeway/viewer/graphql/model/domain/rich/query/RichAction.java @@ -91,7 +91,7 @@ public class RichAction : null); addChildFieldFor(this.params = new RichActionParams(this, context)); - buildObjectTypeAndField(ObjectFeatureUtils.asciiIdFor(objectAction), objectAction.getCanonicalDescription().orElse(objectAction.getCanonicalFriendlyName())); + buildObjectTypeAndField(objectAction.asciiId(), objectAction.getCanonicalDescription().orElse(objectAction.getCanonicalFriendlyName())); } private boolean isInvokeAllowed(ObjectAction objectAction) { @@ -132,7 +132,7 @@ public class RichAction return parameters .map(oap -> { final ObjectSpecification elementType = oap.getElementType(); - Object argumentValue = argumentPojos.get(ObjectFeatureUtils.asciiIdFor(oap)); + Object argumentValue = argumentPojos.get(oap.asciiId()); Object pojoOrPojoList; switch (elementType.getBeanSort()) { @@ -273,14 +273,14 @@ public class RichAction final OneToOneActionParameter oap, final TypeMapper.InputContext inputContext) { return GraphQLArgument.newArgument() - .name(ObjectFeatureUtils.asciiIdFor(oap)) + .name(oap.asciiId()) .type(context.typeMapper.inputTypeFor(oap, inputContext, getSchemaType())) .build(); } GraphQLArgument gqlArgumentFor(final OneToManyActionParameter otmp) { return GraphQLArgument.newArgument() - .name(ObjectFeatureUtils.asciiIdFor(otmp)) + .name(otmp.asciiId()) .type(context.typeMapper.inputTypeFor(otmp, getSchemaType())) .build(); } diff --git a/viewers/graphql/model/src/main/java/org/apache/causeway/viewer/graphql/model/domain/rich/query/RichActionInvokeArgsArg.java b/viewers/graphql/model/src/main/java/org/apache/causeway/viewer/graphql/model/domain/rich/query/RichActionInvokeArgsArg.java index 0913b8446e..09c8b865a1 100644 --- a/viewers/graphql/model/src/main/java/org/apache/causeway/viewer/graphql/model/domain/rich/query/RichActionInvokeArgsArg.java +++ b/viewers/graphql/model/src/main/java/org/apache/causeway/viewer/graphql/model/domain/rich/query/RichActionInvokeArgsArg.java @@ -29,7 +29,6 @@ import org.apache.causeway.viewer.graphql.model.context.Context; import org.apache.causeway.viewer.graphql.model.domain.Environment; import org.apache.causeway.viewer.graphql.model.domain.Element; import org.apache.causeway.viewer.graphql.model.domain.common.interactors.ActionInteractor; -import org.apache.causeway.viewer.graphql.model.domain.common.query.ObjectFeatureUtils; import lombok.Getter; import lombok.val; @@ -63,7 +62,7 @@ public class RichActionInvokeArgsArg : gqlObjectTypeForElementType; val fieldBuilder = newFieldDefinition() - .name(ObjectFeatureUtils.asciiIdFor(oap)) + .name(oap.asciiId()) .type(gqlOutputType); setField(fieldBuilder.build()); } else { diff --git a/viewers/graphql/model/src/main/java/org/apache/causeway/viewer/graphql/model/domain/rich/query/RichActionParamsParam.java b/viewers/graphql/model/src/main/java/org/apache/causeway/viewer/graphql/model/domain/rich/query/RichActionParamsParam.java index c93358ccd0..ae70b04dac 100644 --- a/viewers/graphql/model/src/main/java/org/apache/causeway/viewer/graphql/model/domain/rich/query/RichActionParamsParam.java +++ b/viewers/graphql/model/src/main/java/org/apache/causeway/viewer/graphql/model/domain/rich/query/RichActionParamsParam.java @@ -34,7 +34,6 @@ import org.apache.causeway.viewer.graphql.model.domain.SchemaType; import org.apache.causeway.viewer.graphql.model.domain.TypeNames; import org.apache.causeway.viewer.graphql.model.domain.common.interactors.ActionInteractor; import org.apache.causeway.viewer.graphql.model.domain.common.interactors.ActionParamInteractor; -import org.apache.causeway.viewer.graphql.model.domain.common.query.ObjectFeatureUtils; import org.apache.causeway.viewer.graphql.model.fetcher.BookmarkedPojo; import org.apache.causeway.viewer.graphql.model.mmproviders.ObjectActionParameterProvider; import org.apache.causeway.viewer.graphql.model.types.TypeMapper; @@ -101,7 +100,7 @@ public class RichActionParamsParam addChildFieldFor(this.validate = new RichActionParamsParamValidate(this, context)); addChildFieldFor(this.datatype = new RichActionParamsParamDatatype(this, context)); - buildObjectTypeAndField(ObjectFeatureUtils.asciiIdFor(oap), oap.getCanonicalDescription().orElse(oap.getCanonicalFriendlyName())); + buildObjectTypeAndField(oap.asciiId(), oap.getCanonicalDescription().orElse(oap.getCanonicalFriendlyName())); } @Override diff --git a/viewers/graphql/model/src/main/java/org/apache/causeway/viewer/graphql/model/domain/rich/query/RichActionParamsParamAutoComplete.java b/viewers/graphql/model/src/main/java/org/apache/causeway/viewer/graphql/model/domain/rich/query/RichActionParamsParamAutoComplete.java index c9c1ef4d9d..06d09aaf15 100644 --- a/viewers/graphql/model/src/main/java/org/apache/causeway/viewer/graphql/model/domain/rich/query/RichActionParamsParamAutoComplete.java +++ b/viewers/graphql/model/src/main/java/org/apache/causeway/viewer/graphql/model/domain/rich/query/RichActionParamsParamAutoComplete.java @@ -34,11 +34,11 @@ import org.apache.causeway.core.metamodel.consent.InteractionInitiatedBy; import org.apache.causeway.core.metamodel.interactions.managed.ManagedAction; import org.apache.causeway.core.metamodel.interactions.managed.ParameterNegotiationModel; import org.apache.causeway.core.metamodel.object.ManagedObject; -import org.apache.causeway.viewer.graphql.model.context.Context; + import org.apache.causeway.core.metamodel.spec.feature.ObjectFeature; + import org.apache.causeway.viewer.graphql.model.context.Context; import org.apache.causeway.viewer.graphql.model.domain.Environment; import org.apache.causeway.viewer.graphql.model.domain.Element; import org.apache.causeway.viewer.graphql.model.domain.common.interactors.ActionParamInteractor; - import org.apache.causeway.viewer.graphql.model.domain.common.query.ObjectFeatureUtils; import org.apache.causeway.viewer.graphql.model.fetcher.BookmarkedPojo; import org.apache.causeway.viewer.graphql.model.types.TypeMapper; @@ -87,7 +87,8 @@ import lombok.extern.log4j.Log4j2; val objectAction = actionParamInteractor.getObjectMember(); val managedObject = ManagedObject.adaptSingular(objectSpecification, sourcePojo); - val objectActionParameter = objectAction.getParameterById(ObjectFeatureUtils.asciiIdFor(actionParamInteractor.getObjectActionParameter())); + final ObjectFeature objectFeature = actionParamInteractor.getObjectActionParameter(); + val objectActionParameter = objectAction.getParameterById(objectFeature.asciiId()); val argumentManagedObjects = actionParamInteractor.argumentManagedObjectsFor(new Environment.For(dataFetchingEnvironment), objectAction, context.bookmarkService); val managedAction = ManagedAction.of(managedObject, objectAction, Where.ANYWHERE); diff --git a/viewers/graphql/model/src/main/java/org/apache/causeway/viewer/graphql/model/domain/rich/query/RichActionParamsParamChoices.java b/viewers/graphql/model/src/main/java/org/apache/causeway/viewer/graphql/model/domain/rich/query/RichActionParamsParamChoices.java index 02c040ad3c..48acfa9eab 100644 --- a/viewers/graphql/model/src/main/java/org/apache/causeway/viewer/graphql/model/domain/rich/query/RichActionParamsParamChoices.java +++ b/viewers/graphql/model/src/main/java/org/apache/causeway/viewer/graphql/model/domain/rich/query/RichActionParamsParamChoices.java @@ -32,11 +32,11 @@ import org.apache.causeway.core.metamodel.consent.InteractionInitiatedBy; import org.apache.causeway.core.metamodel.interactions.managed.ManagedAction; import org.apache.causeway.core.metamodel.interactions.managed.ParameterNegotiationModel; import org.apache.causeway.core.metamodel.object.ManagedObject; -import org.apache.causeway.viewer.graphql.model.context.Context; + import org.apache.causeway.core.metamodel.spec.feature.ObjectFeature; + import org.apache.causeway.viewer.graphql.model.context.Context; import org.apache.causeway.viewer.graphql.model.domain.Environment; import org.apache.causeway.viewer.graphql.model.domain.Element; import org.apache.causeway.viewer.graphql.model.domain.common.interactors.ActionParamInteractor; - import org.apache.causeway.viewer.graphql.model.domain.common.query.ObjectFeatureUtils; import org.apache.causeway.viewer.graphql.model.fetcher.BookmarkedPojo; import org.apache.causeway.viewer.graphql.model.types.TypeMapper; @@ -79,7 +79,8 @@ import lombok.extern.log4j.Log4j2; val objectAction = actionParamInteractor.getObjectMember(); val managedObject = ManagedObject.adaptSingular(objectSpecification, sourcePojo); - val objectActionParameter = objectAction.getParameterById(ObjectFeatureUtils.asciiIdFor(actionParamInteractor.getObjectActionParameter())); + final ObjectFeature objectFeature = actionParamInteractor.getObjectActionParameter(); + val objectActionParameter = objectAction.getParameterById(objectFeature.asciiId()); val argumentManagedObjects = actionParamInteractor.argumentManagedObjectsFor(new Environment.For(dataFetchingEnvironment), objectAction, context.bookmarkService); val managedAction = ManagedAction.of(managedObject, objectAction, Where.ANYWHERE); diff --git a/viewers/graphql/model/src/main/java/org/apache/causeway/viewer/graphql/model/domain/rich/query/RichActionParamsParamDefault.java b/viewers/graphql/model/src/main/java/org/apache/causeway/viewer/graphql/model/domain/rich/query/RichActionParamsParamDefault.java index 0c22696b1b..7d493787f6 100644 --- a/viewers/graphql/model/src/main/java/org/apache/causeway/viewer/graphql/model/domain/rich/query/RichActionParamsParamDefault.java +++ b/viewers/graphql/model/src/main/java/org/apache/causeway/viewer/graphql/model/domain/rich/query/RichActionParamsParamDefault.java @@ -28,11 +28,11 @@ import org.apache.causeway.applib.annotation.Where; import org.apache.causeway.core.metamodel.interactions.managed.ManagedAction; import org.apache.causeway.core.metamodel.interactions.managed.ParameterNegotiationModel; import org.apache.causeway.core.metamodel.object.ManagedObject; +import org.apache.causeway.core.metamodel.spec.feature.ObjectFeature; import org.apache.causeway.viewer.graphql.model.context.Context; import org.apache.causeway.viewer.graphql.model.domain.Environment; import org.apache.causeway.viewer.graphql.model.domain.Element; import org.apache.causeway.viewer.graphql.model.domain.common.interactors.ActionParamInteractor; -import org.apache.causeway.viewer.graphql.model.domain.common.query.ObjectFeatureUtils; import org.apache.causeway.viewer.graphql.model.fetcher.BookmarkedPojo; import org.apache.causeway.viewer.graphql.model.types.TypeMapper; @@ -71,7 +71,8 @@ public class RichActionParamsParamDefault extends Element { } val objectAction = actionParamInteractor.getObjectMember(); val managedObject = ManagedObject.adaptSingular(objectSpecification, sourcePojo); - val objectActionParameter = objectAction.getParameterById(ObjectFeatureUtils.asciiIdFor(actionParamInteractor.getObjectActionParameter())); + final ObjectFeature objectFeature = actionParamInteractor.getObjectActionParameter(); + val objectActionParameter = objectAction.getParameterById(objectFeature.asciiId()); val argumentManagedObjects = actionParamInteractor.argumentManagedObjectsFor(new Environment.For(dataFetchingEnvironment), objectAction, context.bookmarkService); val managedAction = ManagedAction.of(managedObject, objectAction, Where.ANYWHERE); val pendingArgs = ParameterNegotiationModel.of(managedAction, argumentManagedObjects); diff --git a/viewers/graphql/model/src/main/java/org/apache/causeway/viewer/graphql/model/domain/rich/query/RichActionParamsParamDisabled.java b/viewers/graphql/model/src/main/java/org/apache/causeway/viewer/graphql/model/domain/rich/query/RichActionParamsParamDisabled.java index 1e71ba9b92..0248d2d2bb 100644 --- a/viewers/graphql/model/src/main/java/org/apache/causeway/viewer/graphql/model/domain/rich/query/RichActionParamsParamDisabled.java +++ b/viewers/graphql/model/src/main/java/org/apache/causeway/viewer/graphql/model/domain/rich/query/RichActionParamsParamDisabled.java @@ -25,11 +25,11 @@ import static graphql.schema.GraphQLFieldDefinition.newFieldDefinition; import org.apache.causeway.core.metamodel.consent.InteractionInitiatedBy; import org.apache.causeway.core.metamodel.object.ManagedObject; +import org.apache.causeway.core.metamodel.spec.feature.ObjectFeature; import org.apache.causeway.viewer.graphql.model.context.Context; import org.apache.causeway.viewer.graphql.model.domain.Environment; import org.apache.causeway.viewer.graphql.model.domain.Element; import org.apache.causeway.viewer.graphql.model.domain.common.interactors.ActionParamInteractor; -import org.apache.causeway.viewer.graphql.model.domain.common.query.ObjectFeatureUtils; import org.apache.causeway.viewer.graphql.model.fetcher.BookmarkedPojo; import org.apache.causeway.viewer.graphql.model.types.TypeMapper; @@ -68,7 +68,8 @@ public class RichActionParamsParamDisabled extends Element { val managedObject = ManagedObject.adaptSingular(objectSpecification, sourcePojo); val actionInteractionHead = objectAction.interactionHead(managedObject); - val objectActionParameter = objectAction.getParameterById(ObjectFeatureUtils.asciiIdFor(actionParamInteractor.getObjectActionParameter())); + final ObjectFeature objectFeature = actionParamInteractor.getObjectActionParameter(); + val objectActionParameter = objectAction.getParameterById(objectFeature.asciiId()); val argumentManagedObjects = actionParamInteractor.argumentManagedObjectsFor(new Environment.For(dataFetchingEnvironment), objectAction, context.bookmarkService); val usable = objectActionParameter.isUsable(actionInteractionHead, argumentManagedObjects, InteractionInitiatedBy.USER); diff --git a/viewers/graphql/model/src/main/java/org/apache/causeway/viewer/graphql/model/domain/rich/query/RichActionParamsParamHidden.java b/viewers/graphql/model/src/main/java/org/apache/causeway/viewer/graphql/model/domain/rich/query/RichActionParamsParamHidden.java index c223f22a4c..40aeb6e09d 100644 --- a/viewers/graphql/model/src/main/java/org/apache/causeway/viewer/graphql/model/domain/rich/query/RichActionParamsParamHidden.java +++ b/viewers/graphql/model/src/main/java/org/apache/causeway/viewer/graphql/model/domain/rich/query/RichActionParamsParamHidden.java @@ -25,11 +25,11 @@ import static graphql.schema.GraphQLFieldDefinition.newFieldDefinition; import org.apache.causeway.core.metamodel.consent.InteractionInitiatedBy; import org.apache.causeway.core.metamodel.object.ManagedObject; -import org.apache.causeway.viewer.graphql.model.context.Context; + import org.apache.causeway.core.metamodel.spec.feature.ObjectFeature; + import org.apache.causeway.viewer.graphql.model.context.Context; import org.apache.causeway.viewer.graphql.model.domain.Environment; import org.apache.causeway.viewer.graphql.model.domain.Element; import org.apache.causeway.viewer.graphql.model.domain.common.interactors.ActionParamInteractor; - import org.apache.causeway.viewer.graphql.model.domain.common.query.ObjectFeatureUtils; import org.apache.causeway.viewer.graphql.model.fetcher.BookmarkedPojo; import org.apache.causeway.viewer.graphql.model.types.TypeMapper; @@ -70,7 +70,8 @@ public class RichActionParamsParamHidden extends Element { val managedObject = ManagedObject.adaptSingular(objectSpecification, sourcePojo); val actionInteractionHead = objectAction.interactionHead(managedObject); - val objectActionParameter = objectAction.getParameterById(ObjectFeatureUtils.asciiIdFor(actionParamInteractor.getObjectActionParameter())); + final ObjectFeature objectFeature = actionParamInteractor.getObjectActionParameter(); + val objectActionParameter = objectAction.getParameterById(objectFeature.asciiId()); val argumentManagedObjects = actionParamInteractor.argumentManagedObjectsFor(new Environment.For(dataFetchingEnvironment), objectAction, context.bookmarkService); diff --git a/viewers/graphql/model/src/main/java/org/apache/causeway/viewer/graphql/model/domain/rich/query/RichActionParamsParamValidate.java b/viewers/graphql/model/src/main/java/org/apache/causeway/viewer/graphql/model/domain/rich/query/RichActionParamsParamValidate.java index 8d3472d1bb..c03e9b7807 100644 --- a/viewers/graphql/model/src/main/java/org/apache/causeway/viewer/graphql/model/domain/rich/query/RichActionParamsParamValidate.java +++ b/viewers/graphql/model/src/main/java/org/apache/causeway/viewer/graphql/model/domain/rich/query/RichActionParamsParamValidate.java @@ -25,11 +25,11 @@ import static graphql.schema.GraphQLFieldDefinition.newFieldDefinition; import org.apache.causeway.core.metamodel.consent.InteractionInitiatedBy; import org.apache.causeway.core.metamodel.object.ManagedObject; +import org.apache.causeway.core.metamodel.spec.feature.ObjectFeature; import org.apache.causeway.viewer.graphql.model.context.Context; import org.apache.causeway.viewer.graphql.model.domain.Environment; import org.apache.causeway.viewer.graphql.model.domain.Element; import org.apache.causeway.viewer.graphql.model.domain.common.interactors.ActionParamInteractor; -import org.apache.causeway.viewer.graphql.model.domain.common.query.ObjectFeatureUtils; import org.apache.causeway.viewer.graphql.model.fetcher.BookmarkedPojo; import org.apache.causeway.viewer.graphql.model.types.TypeMapper; @@ -69,7 +69,8 @@ public class RichActionParamsParamValidate extends Element { val managedObject = ManagedObject.adaptSingular(objectSpecification, sourcePojo); val actionInteractionHead = objectAction.interactionHead(managedObject); - val objectActionParameter = objectAction.getParameterById(ObjectFeatureUtils.asciiIdFor(actionParamInteractor.getObjectActionParameter())); + final ObjectFeature objectFeature = actionParamInteractor.getObjectActionParameter(); + val objectActionParameter = objectAction.getParameterById(objectFeature.asciiId()); val argumentManagedObjects = actionParamInteractor.argumentManagedObjectsFor(new Environment.For(dataFetchingEnvironment), objectAction, context.bookmarkService); diff --git a/viewers/graphql/model/src/main/java/org/apache/causeway/viewer/graphql/model/domain/rich/query/RichActionValidity.java b/viewers/graphql/model/src/main/java/org/apache/causeway/viewer/graphql/model/domain/rich/query/RichActionValidity.java index affbd0f5b3..ecccf8cd32 100644 --- a/viewers/graphql/model/src/main/java/org/apache/causeway/viewer/graphql/model/domain/rich/query/RichActionValidity.java +++ b/viewers/graphql/model/src/main/java/org/apache/causeway/viewer/graphql/model/domain/rich/query/RichActionValidity.java @@ -34,7 +34,6 @@ import org.apache.causeway.core.metamodel.spec.feature.ObjectActionParameter; import org.apache.causeway.viewer.graphql.model.context.Context; import org.apache.causeway.viewer.graphql.model.domain.Element; import org.apache.causeway.viewer.graphql.model.domain.common.interactors.ActionInteractor; -import org.apache.causeway.viewer.graphql.model.domain.common.query.ObjectFeatureUtils; import org.apache.causeway.viewer.graphql.model.fetcher.BookmarkedPojo; import org.apache.causeway.viewer.graphql.model.types.TypeMapper; @@ -85,7 +84,7 @@ public class RichActionValidity extends Element { Can<ObjectActionParameter> parameters = objectAction.getParameters(); Can<ManagedObject> argumentManagedObjects = parameters .map(oap -> { - Object argumentValue = argumentPojos.get(ObjectFeatureUtils.asciiIdFor(oap)); + Object argumentValue = argumentPojos.get(oap.asciiId()); return ManagedObject.adaptParameter(oap, argumentValue); }); diff --git a/viewers/graphql/model/src/main/java/org/apache/causeway/viewer/graphql/model/domain/rich/query/RichCollection.java b/viewers/graphql/model/src/main/java/org/apache/causeway/viewer/graphql/model/domain/rich/query/RichCollection.java index ca9d0d585f..ae5449470c 100644 --- a/viewers/graphql/model/src/main/java/org/apache/causeway/viewer/graphql/model/domain/rich/query/RichCollection.java +++ b/viewers/graphql/model/src/main/java/org/apache/causeway/viewer/graphql/model/domain/rich/query/RichCollection.java @@ -25,7 +25,6 @@ import org.apache.causeway.viewer.graphql.model.domain.SchemaType; import org.apache.causeway.viewer.graphql.model.domain.TypeNames; import org.apache.causeway.viewer.graphql.model.domain.common.interactors.MemberInteractor; import org.apache.causeway.viewer.graphql.model.domain.common.interactors.ObjectInteractor; -import org.apache.causeway.viewer.graphql.model.domain.common.query.ObjectFeatureUtils; public class RichCollection extends RichAssociation<OneToManyAssociation, ObjectInteractor> @@ -55,7 +54,7 @@ public class RichCollection addChildFieldFor(this.get = new RichCollectionGet(this, context)); addChildFieldFor(this.datatype = new RichCollectionDatatype(this, context)); - buildObjectTypeAndField(ObjectFeatureUtils.asciiIdFor(otma), otma.getCanonicalDescription().orElse(otma.getCanonicalFriendlyName())); + buildObjectTypeAndField(otma.asciiId(), otma.getCanonicalDescription().orElse(otma.getCanonicalFriendlyName())); } @Override diff --git a/viewers/graphql/model/src/main/java/org/apache/causeway/viewer/graphql/model/domain/rich/query/RichProperty.java b/viewers/graphql/model/src/main/java/org/apache/causeway/viewer/graphql/model/domain/rich/query/RichProperty.java index 0cb1ee518e..581babe5d6 100644 --- a/viewers/graphql/model/src/main/java/org/apache/causeway/viewer/graphql/model/domain/rich/query/RichProperty.java +++ b/viewers/graphql/model/src/main/java/org/apache/causeway/viewer/graphql/model/domain/rich/query/RichProperty.java @@ -32,7 +32,6 @@ import org.apache.causeway.viewer.graphql.model.domain.TypeNames; import org.apache.causeway.viewer.graphql.model.domain.common.interactors.MemberInteractor; import org.apache.causeway.viewer.graphql.model.domain.common.interactors.ObjectInteractor; import org.apache.causeway.viewer.graphql.model.domain.common.interactors.PropertyInteractor; -import org.apache.causeway.viewer.graphql.model.domain.common.query.ObjectFeatureUtils; import org.apache.causeway.viewer.graphql.model.mmproviders.ObjectMemberProvider; import org.apache.causeway.viewer.graphql.model.mmproviders.ObjectSpecificationProvider; import org.apache.causeway.viewer.graphql.model.mmproviders.SchemaTypeProvider; @@ -100,7 +99,7 @@ public class RichProperty addChildFieldFor(this.set = isSetterAllowed() ? new RichPropertySet(this, context) : null); addChildFieldFor(this.datatype = new RichPropertyDatatype(this, context)); - buildObjectTypeAndField(ObjectFeatureUtils.asciiIdFor(otoa), otoa.getCanonicalDescription().orElse(otoa.getCanonicalFriendlyName())); + buildObjectTypeAndField(otoa.asciiId(), otoa.getCanonicalDescription().orElse(otoa.getCanonicalFriendlyName())); } private boolean isSetterAllowed() { @@ -138,7 +137,7 @@ public class RichProperty final OneToOneAssociation otoa, final TypeMapper.InputContext inputContext) { return GraphQLArgument.newArgument() - .name(ObjectFeatureUtils.asciiIdFor(otoa)) + .name(otoa.asciiId()) .type(context.typeMapper.inputTypeFor(otoa, inputContext, SchemaType.RICH)) .build(); } diff --git a/viewers/graphql/model/src/main/java/org/apache/causeway/viewer/graphql/model/domain/rich/query/RichPropertyGetBlobBytes.java b/viewers/graphql/model/src/main/java/org/apache/causeway/viewer/graphql/model/domain/rich/query/RichPropertyGetBlobBytes.java index bcc9dfd222..24e2447911 100644 --- a/viewers/graphql/model/src/main/java/org/apache/causeway/viewer/graphql/model/domain/rich/query/RichPropertyGetBlobBytes.java +++ b/viewers/graphql/model/src/main/java/org/apache/causeway/viewer/graphql/model/domain/rich/query/RichPropertyGetBlobBytes.java @@ -20,10 +20,10 @@ package org.apache.causeway.viewer.graphql.model.domain.rich.query; import graphql.schema.DataFetchingEnvironment; +import org.apache.causeway.core.metamodel.spec.feature.ObjectFeature; import org.apache.causeway.core.metamodel.spec.feature.OneToOneAssociation; import org.apache.causeway.viewer.graphql.model.context.Context; import org.apache.causeway.viewer.graphql.model.domain.common.interactors.MemberInteractor; -import org.apache.causeway.viewer.graphql.model.domain.common.query.ObjectFeatureUtils; import org.apache.causeway.viewer.graphql.model.fetcher.BookmarkedPojo; import lombok.val; @@ -45,8 +45,11 @@ public class RichPropertyGetBlobBytes extends RichPropertyGetBlobAbstract { val sourcePojo = BookmarkedPojo.sourceFrom(environment); val bookmarkIfAny = context.bookmarkService.bookmarkFor(sourcePojo); - return bookmarkIfAny.map(x -> String.format( - "//%s/object/%s:%s/%s/blobBytes", graphqlPath, x.getLogicalTypeName(), x.getIdentifier(), ObjectFeatureUtils.asciiIdFor(memberInteractor.getObjectMember()))).orElse(null); + return bookmarkIfAny.map(x -> { + final ObjectFeature objectFeature = memberInteractor.getObjectMember(); + return String.format( + "//%s/object/%s:%s/%s/blobBytes", graphqlPath, x.getLogicalTypeName(), x.getIdentifier(), objectFeature.asciiId()); + }).orElse(null); } diff --git a/viewers/graphql/model/src/main/java/org/apache/causeway/viewer/graphql/model/domain/rich/query/RichPropertyGetClobChars.java b/viewers/graphql/model/src/main/java/org/apache/causeway/viewer/graphql/model/domain/rich/query/RichPropertyGetClobChars.java index c0c713ab52..e8729ea202 100644 --- a/viewers/graphql/model/src/main/java/org/apache/causeway/viewer/graphql/model/domain/rich/query/RichPropertyGetClobChars.java +++ b/viewers/graphql/model/src/main/java/org/apache/causeway/viewer/graphql/model/domain/rich/query/RichPropertyGetClobChars.java @@ -20,10 +20,10 @@ package org.apache.causeway.viewer.graphql.model.domain.rich.query; import graphql.schema.DataFetchingEnvironment; +import org.apache.causeway.core.metamodel.spec.feature.ObjectFeature; import org.apache.causeway.core.metamodel.spec.feature.OneToOneAssociation; import org.apache.causeway.viewer.graphql.model.context.Context; import org.apache.causeway.viewer.graphql.model.domain.common.interactors.MemberInteractor; -import org.apache.causeway.viewer.graphql.model.domain.common.query.ObjectFeatureUtils; import org.apache.causeway.viewer.graphql.model.fetcher.BookmarkedPojo; import lombok.val; @@ -45,8 +45,11 @@ public class RichPropertyGetClobChars extends RichPropertyGetClobAbstract { val sourcePojo = BookmarkedPojo.sourceFrom(environment); val bookmarkIfAny = context.bookmarkService.bookmarkFor(sourcePojo); - return bookmarkIfAny.map(x -> String.format( - "//%s/object/%s:%s/%s/clobChars", graphqlPath, x.getLogicalTypeName(), x.getIdentifier(), ObjectFeatureUtils.asciiIdFor(holder.getObjectMember()))).orElse(null); + return bookmarkIfAny.map(x -> { + final ObjectFeature objectFeature = holder.getObjectMember(); + return String.format( + "//%s/object/%s:%s/%s/clobChars", graphqlPath, x.getLogicalTypeName(), x.getIdentifier(), objectFeature.asciiId()); + }).orElse(null); } diff --git a/viewers/graphql/model/src/main/java/org/apache/causeway/viewer/graphql/model/domain/rich/query/RichPropertySet.java b/viewers/graphql/model/src/main/java/org/apache/causeway/viewer/graphql/model/domain/rich/query/RichPropertySet.java index 81fd99bec3..7cc570a1ec 100644 --- a/viewers/graphql/model/src/main/java/org/apache/causeway/viewer/graphql/model/domain/rich/query/RichPropertySet.java +++ b/viewers/graphql/model/src/main/java/org/apache/causeway/viewer/graphql/model/domain/rich/query/RichPropertySet.java @@ -31,7 +31,6 @@ import org.apache.causeway.viewer.graphql.model.context.Context; import org.apache.causeway.viewer.graphql.model.domain.Element; import org.apache.causeway.viewer.graphql.model.domain.SchemaType; import org.apache.causeway.viewer.graphql.model.domain.common.interactors.PropertyInteractor; -import org.apache.causeway.viewer.graphql.model.domain.common.query.ObjectFeatureUtils; import org.apache.causeway.viewer.graphql.model.exceptions.DisabledException; import org.apache.causeway.viewer.graphql.model.exceptions.HiddenException; import org.apache.causeway.viewer.graphql.model.exceptions.InvalidException; @@ -75,7 +74,7 @@ public class RichPropertySet extends Element { val managedObject = ManagedObject.adaptSingular(objectSpecification, sourcePojo); Map<String, Object> arguments = dataFetchingEnvironment.getArguments(); - Object argumentValue = arguments.get(ObjectFeatureUtils.asciiIdFor(otoa)); + Object argumentValue = arguments.get(otoa.asciiId()); ManagedObject argumentManagedObject = ManagedObject.adaptProperty(otoa, argumentValue); val visibleConsent = otoa.isVisible(managedObject, InteractionInitiatedBy.USER, Where.ANYWHERE); diff --git a/viewers/graphql/model/src/main/java/org/apache/causeway/viewer/graphql/model/domain/rich/query/RichPropertyValidate.java b/viewers/graphql/model/src/main/java/org/apache/causeway/viewer/graphql/model/domain/rich/query/RichPropertyValidate.java index 021c15fcac..4217eb2f2d 100644 --- a/viewers/graphql/model/src/main/java/org/apache/causeway/viewer/graphql/model/domain/rich/query/RichPropertyValidate.java +++ b/viewers/graphql/model/src/main/java/org/apache/causeway/viewer/graphql/model/domain/rich/query/RichPropertyValidate.java @@ -28,7 +28,6 @@ import org.apache.causeway.core.metamodel.object.ManagedObject; import org.apache.causeway.viewer.graphql.model.context.Context; import org.apache.causeway.viewer.graphql.model.domain.Element; import org.apache.causeway.viewer.graphql.model.domain.common.interactors.PropertyInteractor; -import org.apache.causeway.viewer.graphql.model.domain.common.query.ObjectFeatureUtils; import org.apache.causeway.viewer.graphql.model.fetcher.BookmarkedPojo; import org.apache.causeway.viewer.graphql.model.types.TypeMapper; @@ -66,7 +65,7 @@ public class RichPropertyValidate extends Element { val managedObject = ManagedObject.adaptSingular(objectSpecification, sourcePojo); val arguments = dataFetchingEnvironment.getArguments(); - val argumentValue = arguments.get(ObjectFeatureUtils.asciiIdFor(otoa)); + val argumentValue = arguments.get(otoa.asciiId()); val argumentManagedObject = ManagedObject.adaptProperty(otoa, argumentValue); val valid = otoa.isAssociationValid(managedObject, argumentManagedObject, InteractionInitiatedBy.USER); diff --git a/viewers/graphql/model/src/main/java/org/apache/causeway/viewer/graphql/model/domain/simple/mutation/SimpleMutationForAction.java b/viewers/graphql/model/src/main/java/org/apache/causeway/viewer/graphql/model/domain/simple/mutation/SimpleMutationForAction.java index e8151680cf..6f859e47ee 100644 --- a/viewers/graphql/model/src/main/java/org/apache/causeway/viewer/graphql/model/domain/simple/mutation/SimpleMutationForAction.java +++ b/viewers/graphql/model/src/main/java/org/apache/causeway/viewer/graphql/model/domain/simple/mutation/SimpleMutationForAction.java @@ -31,6 +31,7 @@ import graphql.schema.GraphQLType; import static graphql.schema.GraphQLFieldDefinition.newFieldDefinition; +import org.apache.causeway.core.metamodel.spec.feature.*; import org.springframework.lang.Nullable; import org.apache.causeway.applib.annotation.Where; @@ -40,10 +41,6 @@ import org.apache.causeway.core.metamodel.consent.InteractionInitiatedBy; import org.apache.causeway.core.metamodel.facets.actcoll.typeof.TypeOfFacet; 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.spec.feature.OneToManyActionParameter; -import org.apache.causeway.core.metamodel.spec.feature.OneToOneActionParameter; import org.apache.causeway.viewer.graphql.model.context.Context; import org.apache.causeway.viewer.graphql.model.domain.Environment; import org.apache.causeway.viewer.graphql.model.domain.Element; @@ -92,7 +89,7 @@ public class SimpleMutationForAction extends Element { private static String fieldName( final ObjectSpecification objectSpecification, final ObjectAction oa) { - return TypeNames.objectTypeFieldNameFor(objectSpecification) + "__" + ObjectFeatureUtils.asciiIdFor(oa); + return TypeNames.objectTypeFieldNameFor(objectSpecification) + "__" + oa.asciiId(); } @Nullable @@ -228,7 +225,7 @@ public class SimpleMutationForAction extends Element { // adapted from SimpleAction GraphQLArgument gqlArgumentFor(final OneToOneActionParameter otoap) { return GraphQLArgument.newArgument() - .name(ObjectFeatureUtils.asciiIdFor(otoap)) + .name(otoap.asciiId()) .type(context.typeMapper.inputTypeFor(otoap, TypeMapper.InputContext.INVOKE, SchemaType.RICH)) .build(); } @@ -236,7 +233,7 @@ public class SimpleMutationForAction extends Element { // adapted from SimpleAction GraphQLArgument gqlArgumentFor(final OneToManyActionParameter otmap) { return GraphQLArgument.newArgument() - .name(ObjectFeatureUtils.asciiIdFor(otmap)) + .name(otmap.asciiId()) .type(context.typeMapper.inputTypeFor(otmap, SchemaType.RICH)) .build(); } diff --git a/viewers/graphql/model/src/main/java/org/apache/causeway/viewer/graphql/model/domain/simple/mutation/SimpleMutationForProperty.java b/viewers/graphql/model/src/main/java/org/apache/causeway/viewer/graphql/model/domain/simple/mutation/SimpleMutationForProperty.java index 0074ce1bd5..f36199ec40 100644 --- a/viewers/graphql/model/src/main/java/org/apache/causeway/viewer/graphql/model/domain/simple/mutation/SimpleMutationForProperty.java +++ b/viewers/graphql/model/src/main/java/org/apache/causeway/viewer/graphql/model/domain/simple/mutation/SimpleMutationForProperty.java @@ -82,7 +82,7 @@ public class SimpleMutationForProperty extends Element { private static String fieldName( final ObjectSpecification objectSpecification, final OneToOneAssociation otoa) { - return TypeNames.objectTypeFieldNameFor(objectSpecification) + "__" + ObjectFeatureUtils.asciiIdFor(otoa); + return TypeNames.objectTypeFieldNameFor(objectSpecification) + "__" + otoa.asciiId(); } @Override @@ -123,7 +123,7 @@ public class SimpleMutationForProperty extends Element { val managedObject = ManagedObject.adaptSingular(objectSpec, sourcePojo); Map<String, Object> arguments = dataFetchingEnvironment.getArguments(); - Object argumentValue = arguments.get(ObjectFeatureUtils.asciiIdFor(oneToOneAssociation)); + Object argumentValue = arguments.get(oneToOneAssociation.asciiId()); ManagedObject argumentManagedObject = ManagedObject.adaptProperty(oneToOneAssociation, argumentValue); val visibleConsent = oneToOneAssociation.isVisible(managedObject, InteractionInitiatedBy.USER, Where.ANYWHERE); @@ -160,7 +160,7 @@ public class SimpleMutationForProperty extends Element { fieldBuilder.argument( GraphQLArgument.newArgument() - .name(ObjectFeatureUtils.asciiIdFor(oneToOneAssociation)) + .name(oneToOneAssociation.asciiId()) .type(context.typeMapper.inputTypeFor(oneToOneAssociation, TypeMapper.InputContext.INVOKE, SchemaType.RICH)) .build()); } diff --git a/viewers/graphql/model/src/main/java/org/apache/causeway/viewer/graphql/model/domain/simple/query/SimpleAction.java b/viewers/graphql/model/src/main/java/org/apache/causeway/viewer/graphql/model/domain/simple/query/SimpleAction.java index 566c8d0734..7046644a74 100644 --- a/viewers/graphql/model/src/main/java/org/apache/causeway/viewer/graphql/model/domain/simple/query/SimpleAction.java +++ b/viewers/graphql/model/src/main/java/org/apache/causeway/viewer/graphql/model/domain/simple/query/SimpleAction.java @@ -40,10 +40,7 @@ import org.apache.causeway.core.metamodel.consent.InteractionInitiatedBy; import org.apache.causeway.core.metamodel.facets.actcoll.typeof.TypeOfFacet; 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.spec.feature.OneToManyActionParameter; -import org.apache.causeway.core.metamodel.spec.feature.OneToOneActionParameter; +import org.apache.causeway.core.metamodel.spec.feature.*; import org.apache.causeway.viewer.graphql.model.context.Context; import org.apache.causeway.viewer.graphql.model.domain.Environment; import org.apache.causeway.viewer.graphql.model.domain.Element; @@ -86,7 +83,7 @@ public class SimpleAction } public String getId() { - return ObjectFeatureUtils.asciiIdFor(objectMember); + return objectMember.asciiId(); } private GraphQLOutputType typeFor(final ObjectAction objectAction){ @@ -143,7 +140,7 @@ public class SimpleAction return parameters .map(oap -> { final ObjectSpecification elementType = oap.getElementType(); - Object argumentValue = argumentPojos.get(ObjectFeatureUtils.asciiIdFor(oap)); + Object argumentValue = argumentPojos.get(oap.asciiId()); Object pojoOrPojoList; switch (elementType.getBeanSort()) { @@ -291,7 +288,7 @@ public class SimpleAction GraphQLArgument gqlArgumentFor(final OneToManyActionParameter otmap) { return GraphQLArgument.newArgument() - .name(ObjectFeatureUtils.asciiIdFor(otmap)) + .name(otmap.asciiId()) .type(context.typeMapper.inputTypeFor(otmap, objectInteractor.getSchemaType())) .build(); } diff --git a/viewers/graphql/model/src/main/java/org/apache/causeway/viewer/graphql/model/domain/simple/query/SimpleCollection.java b/viewers/graphql/model/src/main/java/org/apache/causeway/viewer/graphql/model/domain/simple/query/SimpleCollection.java index 941e91aaa2..87053a7f35 100644 --- a/viewers/graphql/model/src/main/java/org/apache/causeway/viewer/graphql/model/domain/simple/query/SimpleCollection.java +++ b/viewers/graphql/model/src/main/java/org/apache/causeway/viewer/graphql/model/domain/simple/query/SimpleCollection.java @@ -27,7 +27,6 @@ import org.apache.causeway.core.metamodel.spec.feature.OneToManyAssociation; import org.apache.causeway.viewer.graphql.model.context.Context; import org.apache.causeway.viewer.graphql.model.domain.Element; import org.apache.causeway.viewer.graphql.model.domain.common.interactors.ObjectInteractor; -import org.apache.causeway.viewer.graphql.model.domain.common.query.ObjectFeatureUtils; import org.apache.causeway.viewer.graphql.model.fetcher.BookmarkedPojo; import lombok.val; @@ -61,7 +60,7 @@ public class SimpleCollection } public String getId() { - return ObjectFeatureUtils.asciiIdFor(objectMember); + return objectMember.asciiId(); } @Override diff --git a/viewers/graphql/model/src/main/java/org/apache/causeway/viewer/graphql/model/domain/simple/query/SimpleProperty.java b/viewers/graphql/model/src/main/java/org/apache/causeway/viewer/graphql/model/domain/simple/query/SimpleProperty.java index 7661daec07..edf7694837 100644 --- a/viewers/graphql/model/src/main/java/org/apache/causeway/viewer/graphql/model/domain/simple/query/SimpleProperty.java +++ b/viewers/graphql/model/src/main/java/org/apache/causeway/viewer/graphql/model/domain/simple/query/SimpleProperty.java @@ -39,7 +39,6 @@ import org.apache.causeway.viewer.graphql.model.domain.SchemaType; import org.apache.causeway.viewer.graphql.model.domain.TypeNames; import org.apache.causeway.viewer.graphql.model.domain.common.interactors.MemberInteractor; import org.apache.causeway.viewer.graphql.model.domain.common.interactors.ObjectInteractor; -import org.apache.causeway.viewer.graphql.model.domain.common.query.ObjectFeatureUtils; import org.apache.causeway.viewer.graphql.model.fetcher.BookmarkedPojo; import lombok.Getter; @@ -104,7 +103,7 @@ public class SimpleProperty if (gqlOutputType != null) { val fieldBuilder = newFieldDefinition() - .name(ObjectFeatureUtils.asciiIdFor(otoa)) + .name(otoa.asciiId()) .type(gqlOutputType); setField(fieldBuilder.build()); } else { diff --git a/viewers/graphql/model/src/main/java/org/apache/causeway/viewer/graphql/model/domain/simple/query/SimplePropertyLobBytes.java b/viewers/graphql/model/src/main/java/org/apache/causeway/viewer/graphql/model/domain/simple/query/SimplePropertyLobBytes.java index a0cc7ec016..1ef9a98c57 100644 --- a/viewers/graphql/model/src/main/java/org/apache/causeway/viewer/graphql/model/domain/simple/query/SimplePropertyLobBytes.java +++ b/viewers/graphql/model/src/main/java/org/apache/causeway/viewer/graphql/model/domain/simple/query/SimplePropertyLobBytes.java @@ -20,10 +20,10 @@ package org.apache.causeway.viewer.graphql.model.domain.simple.query; import graphql.schema.DataFetchingEnvironment; +import org.apache.causeway.core.metamodel.spec.feature.ObjectFeature; import org.apache.causeway.core.metamodel.spec.feature.OneToOneAssociation; import org.apache.causeway.viewer.graphql.model.context.Context; import org.apache.causeway.viewer.graphql.model.domain.common.interactors.MemberInteractor; -import org.apache.causeway.viewer.graphql.model.domain.common.query.ObjectFeatureUtils; import org.apache.causeway.viewer.graphql.model.fetcher.BookmarkedPojo; import lombok.val; @@ -45,8 +45,11 @@ public class SimplePropertyLobBytes extends SimplePropertyLobAbstract { val sourcePojo = BookmarkedPojo.sourceFrom(environment); val bookmarkIfAny = context.bookmarkService.bookmarkFor(sourcePojo); - return bookmarkIfAny.map(x -> String.format( - "//%s/object/%s:%s/%s/blobBytes", graphqlPath, x.getLogicalTypeName(), x.getIdentifier(), ObjectFeatureUtils.asciiIdFor(memberInteractor.getObjectMember()))).orElse(null); + return bookmarkIfAny.map(x -> { + final ObjectFeature objectFeature = memberInteractor.getObjectMember(); + return String.format( + "//%s/object/%s:%s/%s/blobBytes", graphqlPath, x.getLogicalTypeName(), x.getIdentifier(), objectFeature.asciiId()); + }).orElse(null); } diff --git a/viewers/graphql/model/src/main/java/org/apache/causeway/viewer/graphql/model/domain/simple/query/SimplePropertyLobChars.java b/viewers/graphql/model/src/main/java/org/apache/causeway/viewer/graphql/model/domain/simple/query/SimplePropertyLobChars.java index be7473b58f..1162de46be 100644 --- a/viewers/graphql/model/src/main/java/org/apache/causeway/viewer/graphql/model/domain/simple/query/SimplePropertyLobChars.java +++ b/viewers/graphql/model/src/main/java/org/apache/causeway/viewer/graphql/model/domain/simple/query/SimplePropertyLobChars.java @@ -20,10 +20,10 @@ package org.apache.causeway.viewer.graphql.model.domain.simple.query; import graphql.schema.DataFetchingEnvironment; +import org.apache.causeway.core.metamodel.spec.feature.ObjectFeature; import org.apache.causeway.core.metamodel.spec.feature.OneToOneAssociation; import org.apache.causeway.viewer.graphql.model.context.Context; import org.apache.causeway.viewer.graphql.model.domain.common.interactors.MemberInteractor; -import org.apache.causeway.viewer.graphql.model.domain.common.query.ObjectFeatureUtils; import org.apache.causeway.viewer.graphql.model.fetcher.BookmarkedPojo; import lombok.val; @@ -45,8 +45,11 @@ public class SimplePropertyLobChars extends SimplePropertyLobAbstract { val sourcePojo = BookmarkedPojo.sourceFrom(environment); val bookmarkIfAny = context.bookmarkService.bookmarkFor(sourcePojo); - return bookmarkIfAny.map(x -> String.format( - "//%s/object/%s:%s/%s/clobChars", graphqlPath, x.getLogicalTypeName(), x.getIdentifier(), ObjectFeatureUtils.asciiIdFor(memberInteractor.getObjectMember()))).orElse(null); + return bookmarkIfAny.map(x -> { + final ObjectFeature objectFeature = memberInteractor.getObjectMember(); + return String.format( + "//%s/object/%s:%s/%s/clobChars", graphqlPath, x.getLogicalTypeName(), x.getIdentifier(), objectFeature.asciiId()); + }).orElse(null); }
