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 67fa1c83ef2ba40fbb3cb79525dbf30323d42855 Author: danhaywood <[email protected]> AuthorDate: Sun Jan 21 14:17:59 2024 +0000 CAUSEWAY-3676: moves fetchers for meta and mutations alongside --- .../graphql/model/src/main/java/module-info.java | 1 - .../viewer/graphql/model/domain/GqlvDomainObject.java | 12 ++++++------ .../graphql/model/domain/GqlvDomainService.java | 7 +++---- .../viewer/graphql/model/domain/GqlvMeta.java | 14 +++++++------- .../GqlvMeta.java => domain/GqlvMetaFetcher.java} | 4 ++-- .../domain/{GqlvMutators.java => GqlvMutations.java} | 19 +++++-------------- .../GqlvMutationsFetcher.java} | 4 ++-- ...lvMutatorsHolder.java => GqlvMutationsHolder.java} | 7 ++++--- 8 files changed, 29 insertions(+), 39 deletions(-) diff --git a/incubator/viewers/graphql/model/src/main/java/module-info.java b/incubator/viewers/graphql/model/src/main/java/module-info.java index 45d9b632dc..64db20375f 100644 --- a/incubator/viewers/graphql/model/src/main/java/module-info.java +++ b/incubator/viewers/graphql/model/src/main/java/module-info.java @@ -1,6 +1,5 @@ module org.apache.causeway.incubator.viewer.graphql.model { exports org.apache.causeway.viewer.graphql.model; - exports org.apache.causeway.viewer.graphql.model.parts; exports org.apache.causeway.viewer.graphql.model.util; exports org.apache.causeway.viewer.graphql.model.types; exports org.apache.causeway.viewer.graphql.model.registry; diff --git a/incubator/viewers/graphql/model/src/main/java/org/apache/causeway/viewer/graphql/model/domain/GqlvDomainObject.java b/incubator/viewers/graphql/model/src/main/java/org/apache/causeway/viewer/graphql/model/domain/GqlvDomainObject.java index de03dcccc6..e63bff0c50 100644 --- a/incubator/viewers/graphql/model/src/main/java/org/apache/causeway/viewer/graphql/model/domain/GqlvDomainObject.java +++ b/incubator/viewers/graphql/model/src/main/java/org/apache/causeway/viewer/graphql/model/domain/GqlvDomainObject.java @@ -46,13 +46,13 @@ import static graphql.schema.GraphQLTypeReference.typeRef; /** * Exposes a domain object (view model or entity) via the GQL viewer. */ -public class GqlvDomainObject implements GqlvActionHolder, GqlvPropertyHolder, GqlvCollectionHolder, GqlvMutatorsHolder { +public class GqlvDomainObject implements GqlvActionHolder, GqlvPropertyHolder, GqlvCollectionHolder, GqlvMutationsHolder { @Getter private final ObjectSpecification objectSpecification; private final GraphQLCodeRegistry.Builder codeRegistryBuilder; @Getter private final GqlvMeta meta; - @Getter private final GqlvMutators mutators; + @Getter private final GqlvMutations mutators; private final GraphQLObjectType.Builder objectTypeBuilder; String getLogicalTypeName() { @@ -93,7 +93,7 @@ public class GqlvDomainObject implements GqlvActionHolder, GqlvPropertyHolder, G this.objectTypeBuilder = newObject().name(TypeNames.objectTypeNameFor(objectSpecification)); this.meta = new GqlvMeta(this, codeRegistryBuilder, bookmarkService, objectManager); - this.mutators = new GqlvMutators(this, codeRegistryBuilder); + this.mutators = new GqlvMutations(this, codeRegistryBuilder); objectTypeBuilder.field(meta.getMetaField()); @@ -277,7 +277,7 @@ public class GqlvDomainObject implements GqlvActionHolder, GqlvPropertyHolder, G public void addDataFetchersForMutators() { - // TODO: something similar to addFetchers for safe actions, but applied to GqlvMutators instead; perhaps they share a common interface? + // TODO: something similar to addFetchers for safe actions, but applied to GqlvMutationsFetcher instead; perhaps they share a common interface? // earlier code... @@ -287,7 +287,7 @@ public class GqlvDomainObject implements GqlvActionHolder, GqlvPropertyHolder, G // // Bookmark bookmark = bookmarkService.bookmarkFor(environment.getSource()).orElse(null); // if (bookmark == null) return null; //TODO: is this correct ? -// return new GqlvMutations(bookmark, bookmarkService, mutatorsTypeFields); +// return new GqlvMutationsFetcher(bookmark, bookmarkService, mutatorsTypeFields); // } // }); // @@ -296,7 +296,7 @@ public class GqlvDomainObject implements GqlvActionHolder, GqlvPropertyHolder, G // @Override // public Object get(DataFetchingEnvironment environment) throws Exception { // -// GqlvMeta gqlMeta = environment.getSource(); +// GqlvMetaFetcher gqlMeta = environment.getSource(); // // return gqlMeta.id(); // } diff --git a/incubator/viewers/graphql/model/src/main/java/org/apache/causeway/viewer/graphql/model/domain/GqlvDomainService.java b/incubator/viewers/graphql/model/src/main/java/org/apache/causeway/viewer/graphql/model/domain/GqlvDomainService.java index 2a4a0d4e65..5f4f6fc3a9 100644 --- a/incubator/viewers/graphql/model/src/main/java/org/apache/causeway/viewer/graphql/model/domain/GqlvDomainService.java +++ b/incubator/viewers/graphql/model/src/main/java/org/apache/causeway/viewer/graphql/model/domain/GqlvDomainService.java @@ -5,7 +5,6 @@ import java.util.Collections; import java.util.List; import java.util.Optional; import java.util.concurrent.atomic.AtomicBoolean; -import java.util.stream.Collectors; import org.apache.causeway.core.metamodel.spec.ActionScope; import org.apache.causeway.core.metamodel.spec.ObjectSpecification; @@ -29,13 +28,13 @@ import static graphql.schema.GraphQLObjectType.newObject; /** * Exposes a domain service (view model or entity) via the GQL viewer. */ -public class GqlvDomainService implements GqlvActionHolder, GqlvMutatorsHolder { +public class GqlvDomainService implements GqlvActionHolder, GqlvMutationsHolder { @Getter private final ObjectSpecification objectSpecification; @Getter private final Object servicePojo; private final GraphQLCodeRegistry.Builder codeRegistryBuilder; - @Getter private final GqlvMutators mutators; + @Getter private final GqlvMutations mutators; private final GraphQLObjectType.Builder objectTypeBuilder; String getLogicalTypeName() { @@ -65,7 +64,7 @@ public class GqlvDomainService implements GqlvActionHolder, GqlvMutatorsHolder { this.objectTypeBuilder = newObject().name(TypeNames.objectTypeNameFor(objectSpecification)); - this.mutators = new GqlvMutators(this, codeRegistryBuilder); + this.mutators = new GqlvMutations(this, codeRegistryBuilder); } diff --git a/incubator/viewers/graphql/model/src/main/java/org/apache/causeway/viewer/graphql/model/domain/GqlvMeta.java b/incubator/viewers/graphql/model/src/main/java/org/apache/causeway/viewer/graphql/model/domain/GqlvMeta.java index f3f7cc9724..365fbff217 100644 --- a/incubator/viewers/graphql/model/src/main/java/org/apache/causeway/viewer/graphql/model/domain/GqlvMeta.java +++ b/incubator/viewers/graphql/model/src/main/java/org/apache/causeway/viewer/graphql/model/domain/GqlvMeta.java @@ -83,30 +83,30 @@ public class GqlvMeta { coordinates(domainObject.getGqlObjectType(), getMetaField()), (DataFetcher<Object>) environment -> { return bookmarkService.bookmarkFor(environment.getSource()) - .map(bookmark -> new org.apache.causeway.viewer.graphql.model.parts.GqlvMeta(bookmark, bookmarkService, objectManager)) + .map(bookmark -> new GqlvMetaFetcher(bookmark, bookmarkService, objectManager)) .orElse(null); //TODO: is this correct ? }); codeRegistryBuilder.dataFetcher( coordinates(getMetaType(), GqlvMeta.Fields.id), (DataFetcher<Object>) environment -> { - org.apache.causeway.viewer.graphql.model.parts.GqlvMeta gqlvMeta = environment.getSource(); - return gqlvMeta.id(); + GqlvMetaFetcher gqlvMetaFetcher = environment.getSource(); + return gqlvMetaFetcher.id(); }); codeRegistryBuilder.dataFetcher( coordinates(getMetaType(), GqlvMeta.Fields.logicalTypeName), (DataFetcher<Object>) environment -> { - org.apache.causeway.viewer.graphql.model.parts.GqlvMeta gqlvMeta = environment.getSource(); - return gqlvMeta.logicalTypeName(); + GqlvMetaFetcher gqlvMetaFetcher = environment.getSource(); + return gqlvMetaFetcher.logicalTypeName(); }); if (domainObject.getBeanSort() == BeanSort.ENTITY) { codeRegistryBuilder.dataFetcher( coordinates(getMetaType(), GqlvMeta.Fields.version), (DataFetcher<Object>) environment -> { - org.apache.causeway.viewer.graphql.model.parts.GqlvMeta gqlvMeta = environment.getSource(); - return gqlvMeta.version(); + GqlvMetaFetcher gqlvMetaFetcher = environment.getSource(); + return gqlvMetaFetcher.version(); }); } } diff --git a/incubator/viewers/graphql/model/src/main/java/org/apache/causeway/viewer/graphql/model/parts/GqlvMeta.java b/incubator/viewers/graphql/model/src/main/java/org/apache/causeway/viewer/graphql/model/domain/GqlvMetaFetcher.java similarity index 95% rename from incubator/viewers/graphql/model/src/main/java/org/apache/causeway/viewer/graphql/model/parts/GqlvMeta.java rename to incubator/viewers/graphql/model/src/main/java/org/apache/causeway/viewer/graphql/model/domain/GqlvMetaFetcher.java index ad72b0b30b..a0bc81cdc8 100644 --- a/incubator/viewers/graphql/model/src/main/java/org/apache/causeway/viewer/graphql/model/parts/GqlvMeta.java +++ b/incubator/viewers/graphql/model/src/main/java/org/apache/causeway/viewer/graphql/model/domain/GqlvMetaFetcher.java @@ -16,7 +16,7 @@ * specific language governing permissions and limitations * under the License. */ -package org.apache.causeway.viewer.graphql.model.parts; +package org.apache.causeway.viewer.graphql.model.domain; import org.apache.causeway.applib.services.bookmark.Bookmark; import org.apache.causeway.applib.services.bookmark.BookmarkService; @@ -32,7 +32,7 @@ import java.util.Optional; * Metadata for every domain object. */ @Data -public class GqlvMeta { +public class GqlvMetaFetcher { private final Bookmark bookmark; private final BookmarkService bookmarkService; diff --git a/incubator/viewers/graphql/model/src/main/java/org/apache/causeway/viewer/graphql/model/domain/GqlvMutators.java b/incubator/viewers/graphql/model/src/main/java/org/apache/causeway/viewer/graphql/model/domain/GqlvMutations.java similarity index 78% rename from incubator/viewers/graphql/model/src/main/java/org/apache/causeway/viewer/graphql/model/domain/GqlvMutators.java rename to incubator/viewers/graphql/model/src/main/java/org/apache/causeway/viewer/graphql/model/domain/GqlvMutations.java index e907ee6481..76a489c306 100644 --- a/incubator/viewers/graphql/model/src/main/java/org/apache/causeway/viewer/graphql/model/domain/GqlvMutators.java +++ b/incubator/viewers/graphql/model/src/main/java/org/apache/causeway/viewer/graphql/model/domain/GqlvMutations.java @@ -14,9 +14,9 @@ import org.apache.causeway.viewer.graphql.model.util.TypeNames; import static graphql.schema.GraphQLFieldDefinition.newFieldDefinition; import static graphql.schema.GraphQLObjectType.newObject; -public class GqlvMutators implements GqlvActionHolder { +public class GqlvMutations implements GqlvActionHolder { - private final GqlvMutatorsHolder holder; + private final GqlvMutationsHolder holder; private final GraphQLCodeRegistry.Builder codeRegistryBuilder; final GraphQLObjectType.Builder objectTypeBuilder; @@ -27,8 +27,8 @@ public class GqlvMutators implements GqlvActionHolder { @SuppressWarnings("OptionalUsedAsFieldOrParameterType") private Optional<GraphQLObjectType> mutatorsTypeIfAny; - public GqlvMutators( - final GqlvMutatorsHolder holder, + public GqlvMutations( + final GqlvMutationsHolder holder, final GraphQLCodeRegistry.Builder codeRegistryBuilder ) { this.holder = holder; @@ -39,16 +39,7 @@ public class GqlvMutators implements GqlvActionHolder { } public void addAction(final ObjectAction objectAction) { - -// val fieldName = objectAction.getId(); -// GraphQLFieldDefinition.Builder fieldBuilder = newFieldDefinition() -// .name(fieldName) -// .type((GraphQLOutputType) TypeMapper.typeForObjectAction(objectAction)); -// addGqlArguments(objectAction, fieldBuilder); -// GraphQLFieldDefinition fieldDefinition = fieldBuilder.build(); -// -// objectTypeBuilder.field(fieldDefinition); - actions.add(new GqlvAction(holder, objectAction, objectTypeBuilder, codeRegistryBuilder)); + actions.add(new GqlvAction(this, objectAction, objectTypeBuilder, codeRegistryBuilder)); } private final List<GqlvAction> actions = new ArrayList<>(); diff --git a/incubator/viewers/graphql/model/src/main/java/org/apache/causeway/viewer/graphql/model/parts/GqlvMutations.java b/incubator/viewers/graphql/model/src/main/java/org/apache/causeway/viewer/graphql/model/domain/GqlvMutationsFetcher.java similarity index 92% rename from incubator/viewers/graphql/model/src/main/java/org/apache/causeway/viewer/graphql/model/parts/GqlvMutations.java rename to incubator/viewers/graphql/model/src/main/java/org/apache/causeway/viewer/graphql/model/domain/GqlvMutationsFetcher.java index c3111ea7d9..4d72efca58 100644 --- a/incubator/viewers/graphql/model/src/main/java/org/apache/causeway/viewer/graphql/model/parts/GqlvMutations.java +++ b/incubator/viewers/graphql/model/src/main/java/org/apache/causeway/viewer/graphql/model/domain/GqlvMutationsFetcher.java @@ -16,7 +16,7 @@ * specific language governing permissions and limitations * under the License. */ -package org.apache.causeway.viewer.graphql.model.parts; +package org.apache.causeway.viewer.graphql.model.domain; import java.util.List; @@ -26,7 +26,7 @@ import org.apache.causeway.applib.services.bookmark.BookmarkService; import lombok.Data; @Data -public class GqlvMutations { +public class GqlvMutationsFetcher { private final Bookmark bookmark; private final BookmarkService bookmarkService; diff --git a/incubator/viewers/graphql/model/src/main/java/org/apache/causeway/viewer/graphql/model/domain/GqlvMutatorsHolder.java b/incubator/viewers/graphql/model/src/main/java/org/apache/causeway/viewer/graphql/model/domain/GqlvMutationsHolder.java similarity index 63% rename from incubator/viewers/graphql/model/src/main/java/org/apache/causeway/viewer/graphql/model/domain/GqlvMutatorsHolder.java rename to incubator/viewers/graphql/model/src/main/java/org/apache/causeway/viewer/graphql/model/domain/GqlvMutationsHolder.java index f87df03c4b..a8caa067c9 100644 --- a/incubator/viewers/graphql/model/src/main/java/org/apache/causeway/viewer/graphql/model/domain/GqlvMutatorsHolder.java +++ b/incubator/viewers/graphql/model/src/main/java/org/apache/causeway/viewer/graphql/model/domain/GqlvMutationsHolder.java @@ -1,9 +1,10 @@ package org.apache.causeway.viewer.graphql.model.domain; -import graphql.schema.GraphQLObjectType; - import org.apache.causeway.core.metamodel.spec.ObjectSpecification; -public interface GqlvMutatorsHolder extends GqlvActionHolder { +/** + * A holder of <code>_gql_mutations</code> field. + */ +public interface GqlvMutationsHolder { ObjectSpecification getObjectSpecification(); }
