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 f12917f8e7 CAUSEWAY-3676: towards removing builder being exposed by
ServiceStructure
f12917f8e7 is described below
commit f12917f8e76849956dce96373dceb19f9e5a5880
Author: danhaywood <[email protected]>
AuthorDate: Fri Jan 19 17:41:02 2024 +0000
CAUSEWAY-3676: towards removing builder being exposed by ServiceStructure
---
.../viewer/source/GqlvServiceStructure.java | 12 ++++----
.../graphql/viewer/source/QueryFieldFactory.java | 34 ++++++++++------------
2 files changed, 22 insertions(+), 24 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 71f1f3d398..126f1a2817 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
@@ -24,7 +24,7 @@ public class GqlvServiceStructure {
@Getter private final ObjectSpecification serviceSpec;
@Getter private final GqlvTopLevelQueryStructure topLevelQueryStructure;
- private GraphQLObjectType.Builder topLevelQueryField;
+ private GraphQLFieldDefinition topLevelQueryField;
private String getLogicalTypeName() {
@@ -94,21 +94,23 @@ public class GqlvServiceStructure {
/**
* @see #getTopLevelQueryField()
*/
- public GraphQLObjectType.Builder addTopLevelQueryField() {
+ public GraphQLFieldDefinition addTopLevelQueryField() {
if (topLevelQueryField != null) {
throw new IllegalStateException(String.format(
"queryField has already been added to top-level Query, for
%s", getLogicalTypeName()));
}
- return topLevelQueryField = queryBuilder.field(newFieldDefinition()
+ topLevelQueryField = newFieldDefinition()
.name(_LTN.sanitized(serviceSpec))
.type(getGraphQlTypeBuilder())
- .build());
+ .build();
+ queryBuilder.field(topLevelQueryField);
+ return topLevelQueryField;
}
/**
* @see #addTopLevelQueryField()
*/
- public GraphQLObjectType.Builder getTopLevelQueryField() {
+ public GraphQLFieldDefinition getTopLevelQueryField() {
if (topLevelQueryField == null) {
throw new IllegalStateException(String.format(
"queryField has not yet been added to top-level Query, for
%s", getLogicalTypeName()));
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 12a2d48c0d..edb9c3b227 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
@@ -45,6 +45,7 @@ import graphql.schema.DataFetcher;
import graphql.schema.DataFetchingEnvironment;
import graphql.schema.FieldCoordinates;
import graphql.schema.GraphQLCodeRegistry;
+import graphql.schema.GraphQLFieldDefinition;
import graphql.schema.GraphQLObjectType;
import lombok.RequiredArgsConstructor;
@@ -82,31 +83,26 @@ public class QueryFieldFactory {
.filter((final ObjectAction x) ->
x.containsFacet(ActionSemanticsFacet.class))
.collect(Collectors.toList());
- if (!objectActionList.isEmpty()) {
-
- val serviceAsGraphQlType =
gqlvServiceStructure.getGraphQlTypeBuilder();
+ if (objectActionList.isEmpty()) {
+ return;
+ }
- objectActionList.forEach(gqlvServiceStructure::addAction);
+ val serviceAsGraphQlType =
gqlvServiceStructure.getGraphQlTypeBuilder();
- gqlvServiceStructure.buildObjectGqlType();
+ objectActionList.forEach(gqlvServiceStructure::addAction);
- objectActionList
- .forEach(objectAction -> {
- addBehaviour(gqlvServiceStructure, objectAction,
codeRegistryBuilder);
- });
+ gqlvServiceStructure.buildObjectGqlType();
- gqlvServiceStructure.addTopLevelQueryField();
+ objectActionList
+ .forEach(objectAction -> {
+ addBehaviour(gqlvServiceStructure, objectAction,
codeRegistryBuilder);
+ });
- String fieldName = newFieldDefinition()
- .name(_LTN.sanitized(serviceSpec))
- .type(serviceAsGraphQlType)
- .build().getName();
+ GraphQLFieldDefinition topLevelQueryField =
gqlvServiceStructure.addTopLevelQueryField();
- codeRegistryBuilder
- .dataFetcher(
- FieldCoordinates.coordinates("Query", fieldName),
- (DataFetcher<Object>) environment -> service);
- }
+ codeRegistryBuilder.dataFetcher(
+ FieldCoordinates.coordinates("Query",
topLevelQueryField.getName()),
+ (DataFetcher<Object>) environment -> service);
}
private void addBehaviour(