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);
