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 923fd9bc22 CAUSEWAY-3676: moves responsibility for registering field
into top-level query
923fd9bc22 is described below
commit 923fd9bc2287bb47ba7d3c9bd6d5547a0a95dba7
Author: danhaywood <[email protected]>
AuthorDate: Sat Jan 20 09:52:46 2024 +0000
CAUSEWAY-3676: moves responsibility for registering field into top-level
query
---
.../viewer/source/GqlvServiceStructure.java | 37 ++--------------------
.../viewer/source/GqlvTopLevelQueryStructure.java | 4 +--
.../graphql/viewer/source/QueryFieldFactory.java | 2 +-
3 files changed, 6 insertions(+), 37 deletions(-)
diff --git
a/incubator/viewers/graphql/viewer/src/main/java/org/apache/causeway/viewer/graphql/viewer/source/GqlvServiceStructure.java
b/incubator/viewers/graphql/viewer/src/main/java/org/apache/causeway/viewer/graphql/viewer/source/GqlvServiceStructure.java
index b9588152e5..2b363ce325 100644
---
a/incubator/viewers/graphql/viewer/src/main/java/org/apache/causeway/viewer/graphql/viewer/source/GqlvServiceStructure.java
+++
b/incubator/viewers/graphql/viewer/src/main/java/org/apache/causeway/viewer/graphql/viewer/source/GqlvServiceStructure.java
@@ -22,10 +22,6 @@ import static graphql.schema.GraphQLObjectType.newObject;
public class GqlvServiceStructure {
@Getter private final ObjectSpecification serviceSpec;
- @Getter private final GqlvTopLevelQueryStructure topLevelQueryStructure;
- private final SpecificationLoader specificationLoader;
-
- private GraphQLFieldDefinition topLevelQueryField;
private String getLogicalTypeName() {
@@ -37,22 +33,14 @@ public class GqlvServiceStructure {
}
private final GraphQLObjectType.Builder gqlObjectTypeBuilder;
- private final GraphQLObjectType.Builder queryBuilder;
private GraphQLObjectType gqlObjectType;
- public GqlvServiceStructure(
- final ObjectSpecification serviceSpec,
- final GqlvTopLevelQueryStructure topLevelQueryStructure,
- final SpecificationLoader specificationLoader
+ public GqlvServiceStructure(final ObjectSpecification serviceSpec
) {
this.serviceSpec = serviceSpec;
- this.topLevelQueryStructure = topLevelQueryStructure;
this.gqlObjectTypeBuilder =
newObject().name(_LTN.sanitized(serviceSpec));
-
- this.queryBuilder = topLevelQueryStructure.getQueryBuilder();
- this.specificationLoader = specificationLoader;
}
@@ -90,30 +78,11 @@ public class GqlvServiceStructure {
return gqlObjectType;
}
- /**
- * @see #getTopLevelQueryField()
- */
- public GraphQLFieldDefinition buildTopLevelQueryField() {
- if (topLevelQueryField != null) {
- throw new IllegalStateException(String.format(
- "queryField has already been added to top-level Query, for
%s", getLogicalTypeName()));
- }
- topLevelQueryField = newFieldDefinition()
+ public GraphQLFieldDefinition createTopLevelQueryField() {
+ return newFieldDefinition()
.name(_LTN.sanitized(serviceSpec))
.type(gqlObjectTypeBuilder)
.build();
- return topLevelQueryField;
- }
-
- /**
- * @see #buildTopLevelQueryField()
- */
- public GraphQLFieldDefinition getTopLevelQueryField() {
- if (topLevelQueryField == null) {
- throw new IllegalStateException(String.format(
- "queryField has not yet been added to top-level Query, for
%s", getLogicalTypeName()));
- }
- return topLevelQueryField;
}
diff --git
a/incubator/viewers/graphql/viewer/src/main/java/org/apache/causeway/viewer/graphql/viewer/source/GqlvTopLevelQueryStructure.java
b/incubator/viewers/graphql/viewer/src/main/java/org/apache/causeway/viewer/graphql/viewer/source/GqlvTopLevelQueryStructure.java
index 0e88c15c9c..e813aa5a7b 100644
---
a/incubator/viewers/graphql/viewer/src/main/java/org/apache/causeway/viewer/graphql/viewer/source/GqlvTopLevelQueryStructure.java
+++
b/incubator/viewers/graphql/viewer/src/main/java/org/apache/causeway/viewer/graphql/viewer/source/GqlvTopLevelQueryStructure.java
@@ -59,8 +59,8 @@ public class GqlvTopLevelQueryStructure {
final GqlvServiceBehaviour serviceBehaviour,
final GraphQLCodeRegistry.Builder codeRegistryBuilder) {
- GraphQLFieldDefinition topLevelQueryField =
serviceStructure.buildTopLevelQueryField();
- queryBuilder.field(topLevelQueryField);
+ GraphQLFieldDefinition topLevelQueryField =
serviceStructure.createTopLevelQueryField();
+ queryBuilder.field(serviceStructure.createTopLevelQueryField());
codeRegistryBuilder.dataFetcher(
// TODO: it would be nice to make these typesafe...
diff --git
a/incubator/viewers/graphql/viewer/src/main/java/org/apache/causeway/viewer/graphql/viewer/source/QueryFieldFactory.java
b/incubator/viewers/graphql/viewer/src/main/java/org/apache/causeway/viewer/graphql/viewer/source/QueryFieldFactory.java
index 2cc1a8aac5..90a46133c1 100644
---
a/incubator/viewers/graphql/viewer/src/main/java/org/apache/causeway/viewer/graphql/viewer/source/QueryFieldFactory.java
+++
b/incubator/viewers/graphql/viewer/src/main/java/org/apache/causeway/viewer/graphql/viewer/source/QueryFieldFactory.java
@@ -64,7 +64,7 @@ public class QueryFieldFactory {
final GqlvTopLevelQueryStructure topLevelQueryStructure,
final GraphQLCodeRegistry.Builder codeRegistryBuilder) {
- val serviceStructure = new GqlvServiceStructure(serviceSpec,
topLevelQueryStructure, specificationLoader);
+ val serviceStructure = new GqlvServiceStructure(serviceSpec);
List<ObjectAction> objectActionList =
serviceSpec.streamRuntimeActions(MixedIn.INCLUDED)
.map(ObjectAction.class::cast)