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