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 facf8ef509 CAUSEWAY-3676: minor tidy ups
facf8ef509 is described below

commit facf8ef5097a420baa213107210e206e25e1a904
Author: danhaywood <[email protected]>
AuthorDate: Fri Jan 19 12:41:33 2024 +0000

    CAUSEWAY-3676: minor tidy ups
---
 .../graphql/viewer/source/GqlvObjectSpec.java      | 36 +++++++++++-----------
 .../graphql/viewer/source/ObjectTypeFactory.java   |  6 ++--
 2 files changed, 22 insertions(+), 20 deletions(-)

diff --git 
a/incubator/viewers/graphql/viewer/src/main/java/org/apache/causeway/viewer/graphql/viewer/source/GqlvObjectSpec.java
 
b/incubator/viewers/graphql/viewer/src/main/java/org/apache/causeway/viewer/graphql/viewer/source/GqlvObjectSpec.java
index c6f4e1df78..b5c7e98e79 100644
--- 
a/incubator/viewers/graphql/viewer/src/main/java/org/apache/causeway/viewer/graphql/viewer/source/GqlvObjectSpec.java
+++ 
b/incubator/viewers/graphql/viewer/src/main/java/org/apache/causeway/viewer/graphql/viewer/source/GqlvObjectSpec.java
@@ -20,6 +20,7 @@ import 
org.apache.causeway.core.metamodel.spec.feature.OneToManyAssociation;
 import org.apache.causeway.core.metamodel.spec.feature.OneToOneAssociation;
 
 import static graphql.schema.GraphQLFieldDefinition.newFieldDefinition;
+import static graphql.schema.GraphQLInputObjectField.newInputObjectField;
 import static graphql.schema.GraphQLInputObjectType.newInputObject;
 import static graphql.schema.GraphQLNonNull.nonNull;
 import static graphql.schema.GraphQLObjectType.newObject;
@@ -32,12 +33,8 @@ import static 
org.apache.causeway.viewer.graphql.viewer.source.ObjectTypeFactory
 public class GqlvObjectSpec {
 
     @Getter private final ObjectSpecification objectSpec;
-
-    @Getter private final GraphQLObjectType metaType;
     @Getter private final GraphQLFieldDefinition metaField;
-
     @Getter private final GraphQLObjectType.Builder gqlObjectTypeBuilder;
-
     @Getter private final GraphQLInputObjectType gqlInputObjectType;
 
     public String getLogicalTypeNameSanitized() {
@@ -49,6 +46,10 @@ public class GqlvObjectSpec {
         return objectSpec.getBeanSort();
     }
 
+    public GraphQLObjectType getMetaType() {
+        return (GraphQLObjectType) metaField.getType();
+    }
+
     /**
      * Built using {@link #buildGqlObjectType()}
      */
@@ -58,30 +59,29 @@ public class GqlvObjectSpec {
         this.objectSpec = objectSpec;
         this.gqlObjectTypeBuilder = 
newObject().name(getLogicalTypeNameSanitized());
 
-        // meta type
-        val metaTypeBuilder = newObject().name(getLogicalTypeNameSanitized() + 
"__DomainObject_meta");
-        metaTypeBuilder.field(ObjectTypeFactory.Fields.id);
-        metaTypeBuilder.field(ObjectTypeFactory.Fields.logicalTypeName);
-        if (getBeanSort() == BeanSort.ENTITY) {
-            metaTypeBuilder.field(ObjectTypeFactory.Fields.version);
-        }
-        this.metaType = metaTypeBuilder.build();
-
-        // meta field
-        metaField = 
newFieldDefinition().name("_gql_meta").type(metaType).build();
+        // object type's meta field
+        metaField = 
newFieldDefinition().name("_gql_meta").type(metaType()).build();
         gqlObjectTypeBuilder.field(metaField);
 
-
+        // input object type
         String inputTypeName = GQL_INPUTTYPE_PREFIX + 
getLogicalTypeNameSanitized();
         GraphQLInputObjectType.Builder inputTypeBuilder = 
newInputObject().name(inputTypeName);
         inputTypeBuilder
-                .field(GraphQLInputObjectField.newInputObjectField()
+                .field(newInputObjectField()
                         .name("id")
                         .type(nonNull(Scalars.GraphQLID))
                         .build());
         gqlInputObjectType = inputTypeBuilder.build();
+    }
 
-
+    private GraphQLObjectType metaType() {
+        val metaTypeBuilder = newObject().name(getLogicalTypeNameSanitized() + 
"__DomainObject_meta");
+        metaTypeBuilder.field(ObjectTypeFactory.Fields.id);
+        metaTypeBuilder.field(ObjectTypeFactory.Fields.logicalTypeName);
+        if (getBeanSort() == BeanSort.ENTITY) {
+            metaTypeBuilder.field(ObjectTypeFactory.Fields.version);
+        }
+        return metaTypeBuilder.build();
     }
 
 
diff --git 
a/incubator/viewers/graphql/viewer/src/main/java/org/apache/causeway/viewer/graphql/viewer/source/ObjectTypeFactory.java
 
b/incubator/viewers/graphql/viewer/src/main/java/org/apache/causeway/viewer/graphql/viewer/source/ObjectTypeFactory.java
index 8043b7a4fb..0b8b3a28b8 100644
--- 
a/incubator/viewers/graphql/viewer/src/main/java/org/apache/causeway/viewer/graphql/viewer/source/ObjectTypeFactory.java
+++ 
b/incubator/viewers/graphql/viewer/src/main/java/org/apache/causeway/viewer/graphql/viewer/source/ObjectTypeFactory.java
@@ -104,7 +104,7 @@ public class ObjectTypeFactory {
 
         val gqlvObjectSpec = new GqlvObjectSpec(objectSpec);
 
-        
graphQLTypeRegistry.addTypeIfNotAlreadyPresent(gqlvObjectSpec.getMetaType());
+        
graphQLTypeRegistry.addTypeIfNotAlreadyPresent(gqlvObjectSpec.getMetaField().getType());
 
 
         // create input type
@@ -355,8 +355,10 @@ public class ObjectTypeFactory {
                             .orElse(null); //TODO: is this correct ?
                 });
 
+        GraphQLObjectType metaType = gqlvObjectSpec.getMetaType();
+        gqlvObjectSpec.getMetaField().getType();
         codeRegistryBuilder.dataFetcher(
-                FieldCoordinates.coordinates(gqlvObjectSpec.getMetaType(), 
Fields.id),
+                FieldCoordinates.coordinates(metaType, Fields.id),
                 (DataFetcher<Object>) environment -> {
                     GqlvMeta gqlvMeta = environment.getSource();
                     return gqlvMeta.id();

Reply via email to