You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@causeway.apache.org by da...@apache.org on 2024/01/22 22:49:19 UTC

(causeway) 07/10: CAUSEWAY-3676: reducing public API of GqlvDomainService

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 9caee2d925dda26b581e628778902aed9d6e105c
Author: danhaywood <da...@haywood-associates.co.uk>
AuthorDate: Mon Jan 22 22:32:52 2024 +0000

    CAUSEWAY-3676: reducing public API of GqlvDomainService
---
 .../graphql/model/domain/GqlvDomainService.java    | 51 +++++-----------------
 .../integration/GraphQlSourceForCauseway.java      |  3 +-
 2 files changed, 12 insertions(+), 42 deletions(-)

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 009b1c9757..442f261dfe 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
@@ -82,7 +82,7 @@ public class GqlvDomainService implements GqlvActionHolder, GqlvMutationsHolder
                     addAction(objectAction);
                 });
 
-        buildMutationsTypeAndFieldIfRequired();
+        mutations.buildMutationsTypeAndFieldIfRequired();
 
         return anyActions.get();
     }
@@ -96,35 +96,22 @@ public class GqlvDomainService implements GqlvActionHolder, GqlvMutationsHolder
     }
 
 
-    /**
-     * Should be called only after fields etc have been added.
-     */
-    GraphQLObjectType buildGqlObjectType() {
-        if (gqlObjectType != null) {
-            throw new IllegalArgumentException(String.format("GqlObjectType has already been built for %s", getLogicalTypeName()));
-        }
-        return gqlObjectType = gqlObjectTypeBuilder.build();
+    @Override
+    public void addField(GraphQLFieldDefinition fieldDefinition) {
+        gqlObjectTypeBuilder.field(fieldDefinition);
     }
 
 
+    public void registerTypesInto(GraphQLTypeRegistry graphQLTypeRegistry) {
+        gqlObjectType = gqlObjectTypeBuilder.build();
+        // TODO: unlike GqlvDomainObject, not sure why gqlObjectType doesn't need to be registered...
 
-    /**
-     * @see #buildMutationsTypeAndFieldIfRequired()
-     */
-    public Optional<GraphQLObjectType> getMutatorsTypeIfAny() {
-        return mutations.getMutationsTypeIfAny();
-    }
-
-    /**
-     * @see #getMutatorsTypeIfAny()
-     */
-    public Optional<GraphQLObjectType> buildMutationsTypeAndFieldIfRequired() {
-        return mutations.buildMutationsTypeAndFieldIfRequired();
+        mutations.getMutationsTypeIfAny().ifPresent(graphQLTypeRegistry::addTypeIfNotAlreadyPresent);
     }
 
-    @Override
-    public void addField(GraphQLFieldDefinition fieldDefinition) {
-        gqlObjectTypeBuilder.field(fieldDefinition);
+    public void addDataFetchers() {
+        getSafeActions().forEach(GqlvAction::addDataFetcher);
+        getMutations().addDataFetchers();
     }
 
     @Override
@@ -143,22 +130,6 @@ public class GqlvDomainService implements GqlvActionHolder, GqlvMutationsHolder
                 .build();
     }
 
-
-    public void registerTypesInto(GraphQLTypeRegistry graphQLTypeRegistry) {
-        gqlObjectType = gqlObjectTypeBuilder.build();
-        // TODO: not sure why gqlObjectType doesn't need to be registered...
-
-        getMutatorsTypeIfAny().ifPresent(graphQLTypeRegistry::addTypeIfNotAlreadyPresent);
-    }
-
-    public void addDataFetchersForSafeActions() {
-        getSafeActions().forEach(GqlvAction::addDataFetcher);
-    }
-
-    public void addDataFetchersForMutations() {
-        getMutations().addDataFetchers();
-    }
-
     @Override
     public String toString() {
         return objectSpecification.getLogicalTypeName();
diff --git a/incubator/viewers/graphql/viewer/src/main/java/org/apache/causeway/viewer/graphql/viewer/integration/GraphQlSourceForCauseway.java b/incubator/viewers/graphql/viewer/src/main/java/org/apache/causeway/viewer/graphql/viewer/integration/GraphQlSourceForCauseway.java
index bc864eaccd..ccc7c35c6d 100644
--- a/incubator/viewers/graphql/viewer/src/main/java/org/apache/causeway/viewer/graphql/viewer/integration/GraphQlSourceForCauseway.java
+++ b/incubator/viewers/graphql/viewer/src/main/java/org/apache/causeway/viewer/graphql/viewer/integration/GraphQlSourceForCauseway.java
@@ -193,8 +193,7 @@ public class GraphQlSourceForCauseway implements GraphQlSource {
 
         domainService.registerTypesInto(graphQLTypeRegistry);
 
-        domainService.addDataFetchersForSafeActions();
-        domainService.addDataFetchersForMutations();
+        domainService.addDataFetchers();
 
 
         topLevelQueryStructure.addFieldFor(domainService, codeRegistryBuilder);