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 8e8ec2d00f6d48a8979b38ff866c660af7e765cf
Author: danhaywood <[email protected]>
AuthorDate: Fri Jan 19 11:56:43 2024 +0000

    CAUSEWAY-3676: creates metaField within GqlvObjectSpec
---
 .../causeway/viewer/graphql/viewer/source/GqlvObjectSpec.java |  9 ++++++++-
 .../viewer/graphql/viewer/source/ObjectTypeFactory.java       | 11 +----------
 2 files changed, 9 insertions(+), 11 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 2079bb682a..3f4e3795e8 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
@@ -37,20 +37,27 @@ public class GqlvObjectSpec {
     }
 
     @Getter private final GraphQLObjectType metaType;
+    @Getter private final GraphQLFieldDefinition metaField;
+
     @Getter private final GraphQLObjectType.Builder gqlObjectTypeBuilder;
 
     public GqlvObjectSpec(final ObjectSpecification objectSpec) {
         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();
+        gqlObjectTypeBuilder.field(metaField);
+
     }
 
 
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 503a6fd4fd..688d01988c 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
@@ -106,18 +106,9 @@ public class ObjectTypeFactory {
 
         val gqlvObjectSpec = new GqlvObjectSpec(objectSpec);
 
-        // create meta field type
-
-        GraphQLObjectType metaType = gqlvObjectSpec.getMetaType();
-
-        // add meta field
-        val _gql_meta_Field = 
newFieldDefinition().name("_gql_meta").type(metaType).build();
-        gqlvObjectSpec.getGqlObjectTypeBuilder().field(_gql_meta_Field);
-
         
graphQLTypeRegistry.addTypeIfNotAlreadyPresent(gqlvObjectSpec.getMetaType());
 
 
-
         // create input type
         String inputTypeName = GQL_INPUTTYPE_PREFIX + 
gqlvObjectSpec.getLogicalTypeNameSanitized();
         GraphQLInputObjectType.Builder inputTypeBuilder = 
newInputObject().name(inputTypeName);
@@ -147,7 +138,7 @@ public class ObjectTypeFactory {
 
         // create and register data fetchers
         createAndRegisterDataFetchersForMetaData(
-                codeRegistryBuilder, gqlvObjectSpec.getBeanSort(), 
gqlvObjectSpec.getMetaType(), _gql_meta_Field, graphQLObjectType);
+                codeRegistryBuilder, gqlvObjectSpec.getBeanSort(), 
gqlvObjectSpec.getMetaType(), gqlvObjectSpec.getMetaField(), graphQLObjectType);
         if (mutatorsDataForEntity!=null) {
             createAndRegisterDataFetchersForMutators(
                     codeRegistryBuilder, gqlvObjectSpec.getBeanSort(), 
mutatorsDataForEntity, graphQLObjectType);

Reply via email to