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/19 11:58:06 UTC

(causeway) 11/11: CAUSEWAY-3676: creates metaField within GqlvObjectSpec

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 <da...@haywood-associates.co.uk>
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);