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