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 d30edbf1fb CAUSEWAY-3676: moves responsibilities into 
GqlvDomainObject's constructor
d30edbf1fb is described below

commit d30edbf1fbcdd3d6f53e4385ea9e40a91dae649a
Author: danhaywood <[email protected]>
AuthorDate: Thu Jan 25 06:41:51 2024 +0000

    CAUSEWAY-3676: moves responsibilities into GqlvDomainObject's constructor
---
 .../graphql/model/domain/GqlvDomainObject.java     | 30 +++++++++++-----------
 .../integration/GraphQlSourceForCauseway.java      |  6 ++---
 2 files changed, 17 insertions(+), 19 deletions(-)

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 3e40ddc3d2..2ed34a5308 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
@@ -71,7 +71,9 @@ public class GqlvDomainObject implements GqlvActionHolder, 
GqlvPropertyHolder, G
             final ObjectSpecification objectSpecification,
             final GraphQLCodeRegistry.Builder codeRegistryBuilder,
             final BookmarkService bookmarkService,
-            final ObjectManager objectManager) {
+            final ObjectManager objectManager,
+            final GraphQLTypeRegistry graphQLTypeRegistry) {
+
         this.objectSpecification = objectSpecification;
         this.codeRegistryBuilder = codeRegistryBuilder;
         this.bookmarkService = bookmarkService;
@@ -80,8 +82,6 @@ public class GqlvDomainObject implements GqlvActionHolder, 
GqlvPropertyHolder, G
 
         this.meta = new GqlvMeta(this, codeRegistryBuilder, bookmarkService, 
objectManager);
 
-
-        // input object type
         GraphQLInputObjectType.Builder inputTypeBuilder = 
newInputObject().name(TypeNames.inputTypeNameFor(objectSpecification));
         inputTypeBuilder
                 .field(newInputObjectField()
@@ -89,10 +89,20 @@ public class GqlvDomainObject implements GqlvActionHolder, 
GqlvPropertyHolder, G
                         .type(nonNull(Scalars.GraphQLID))
                         .build());
         gqlInputObjectType = inputTypeBuilder.build();
+
+        addMembers();
+
+        // register types
+        gqlObjectType = gqlObjectTypeBuilder.build();
+        graphQLTypeRegistry.addTypeIfNotAlreadyPresent(gqlObjectType);
+        meta.registerTypesInto(graphQLTypeRegistry);
+        graphQLTypeRegistry.addTypeIfNotAlreadyPresent(gqlInputObjectType);
+
+        addDataFetchers();
     }
 
 
-    public void addMembers() {
+    private void addMembers() {
         
objectSpecification.streamProperties(MixedIn.INCLUDED).forEach(this::addProperty);
         
objectSpecification.streamCollections(MixedIn.INCLUDED).forEach(this::addCollection);
 
@@ -144,17 +154,7 @@ public class GqlvDomainObject implements GqlvActionHolder, 
GqlvPropertyHolder, G
     }
 
 
-    public void registerTypesInto(GraphQLTypeRegistry graphQLTypeRegistry) {
-
-        gqlObjectType = 
gqlObjectTypeBuilder.name(TypeNames.objectTypeNameFor(objectSpecification)).build();
-        graphQLTypeRegistry.addTypeIfNotAlreadyPresent(gqlObjectType);
-
-        meta.registerTypesInto(graphQLTypeRegistry);
-
-        
graphQLTypeRegistry.addTypeIfNotAlreadyPresent(getGqlInputObjectType());
-    }
-
-    public void addDataFetchers() {
+    private void addDataFetchers() {
         meta.addDataFetchers();
         properties.forEach((id, property) -> property.addDataFetcher());
         collections.forEach((id, collection) -> collection.addDataFetcher());
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 462d436da8..7d55bad710 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
@@ -209,10 +209,8 @@ public class GraphQlSourceForCauseway implements 
GraphQlSource {
             final ObjectSpecification objectSpec,
             final GraphQLCodeRegistry.Builder codeRegistryBuilder) {
 
-        val domainObject = new GqlvDomainObject(objectSpec, 
codeRegistryBuilder, bookmarkService, objectManager);
-        domainObject.addMembers();
-        domainObject.registerTypesInto(graphQLTypeRegistry);
-        domainObject.addDataFetchers();
+        new GqlvDomainObject(objectSpec, codeRegistryBuilder, bookmarkService, 
objectManager, graphQLTypeRegistry);
+
     }
 
 }

Reply via email to