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 d30edbf1fb CAUSEWAY-3676: moves responsibilities into
GqlvDomainObject's constructor
d30edbf1fb is described below
commit d30edbf1fbcdd3d6f53e4385ea9e40a91dae649a
Author: danhaywood <[email protected]>
AuthorDate: Thu Jan 25 06:41:51 2024 +0000
CAUSEWAY-3676: moves responsibilities into GqlvDomainObject's constructor
---
.../graphql/model/domain/GqlvDomainObject.java | 30 +++++++++++-----------
.../integration/GraphQlSourceForCauseway.java | 6 ++---
2 files changed, 17 insertions(+), 19 deletions(-)
diff --git
a/incubator/viewers/graphql/model/src/main/java/org/apache/causeway/viewer/graphql/model/domain/GqlvDomainObject.java
b/incubator/viewers/graphql/model/src/main/java/org/apache/causeway/viewer/graphql/model/domain/GqlvDomainObject.java
index 3e40ddc3d2..2ed34a5308 100644
---
a/incubator/viewers/graphql/model/src/main/java/org/apache/causeway/viewer/graphql/model/domain/GqlvDomainObject.java
+++
b/incubator/viewers/graphql/model/src/main/java/org/apache/causeway/viewer/graphql/model/domain/GqlvDomainObject.java
@@ -71,7 +71,9 @@ public class GqlvDomainObject implements GqlvActionHolder,
GqlvPropertyHolder, G
final ObjectSpecification objectSpecification,
final GraphQLCodeRegistry.Builder codeRegistryBuilder,
final BookmarkService bookmarkService,
- final ObjectManager objectManager) {
+ final ObjectManager objectManager,
+ final GraphQLTypeRegistry graphQLTypeRegistry) {
+
this.objectSpecification = objectSpecification;
this.codeRegistryBuilder = codeRegistryBuilder;
this.bookmarkService = bookmarkService;
@@ -80,8 +82,6 @@ public class GqlvDomainObject implements GqlvActionHolder,
GqlvPropertyHolder, G
this.meta = new GqlvMeta(this, codeRegistryBuilder, bookmarkService,
objectManager);
-
- // input object type
GraphQLInputObjectType.Builder inputTypeBuilder =
newInputObject().name(TypeNames.inputTypeNameFor(objectSpecification));
inputTypeBuilder
.field(newInputObjectField()
@@ -89,10 +89,20 @@ public class GqlvDomainObject implements GqlvActionHolder,
GqlvPropertyHolder, G
.type(nonNull(Scalars.GraphQLID))
.build());
gqlInputObjectType = inputTypeBuilder.build();
+
+ addMembers();
+
+ // register types
+ gqlObjectType = gqlObjectTypeBuilder.build();
+ graphQLTypeRegistry.addTypeIfNotAlreadyPresent(gqlObjectType);
+ meta.registerTypesInto(graphQLTypeRegistry);
+ graphQLTypeRegistry.addTypeIfNotAlreadyPresent(gqlInputObjectType);
+
+ addDataFetchers();
}
- public void addMembers() {
+ private void addMembers() {
objectSpecification.streamProperties(MixedIn.INCLUDED).forEach(this::addProperty);
objectSpecification.streamCollections(MixedIn.INCLUDED).forEach(this::addCollection);
@@ -144,17 +154,7 @@ public class GqlvDomainObject implements GqlvActionHolder,
GqlvPropertyHolder, G
}
- public void registerTypesInto(GraphQLTypeRegistry graphQLTypeRegistry) {
-
- gqlObjectType =
gqlObjectTypeBuilder.name(TypeNames.objectTypeNameFor(objectSpecification)).build();
- graphQLTypeRegistry.addTypeIfNotAlreadyPresent(gqlObjectType);
-
- meta.registerTypesInto(graphQLTypeRegistry);
-
-
graphQLTypeRegistry.addTypeIfNotAlreadyPresent(getGqlInputObjectType());
- }
-
- public void addDataFetchers() {
+ private void addDataFetchers() {
meta.addDataFetchers();
properties.forEach((id, property) -> property.addDataFetcher());
collections.forEach((id, collection) -> collection.addDataFetcher());
diff --git
a/incubator/viewers/graphql/viewer/src/main/java/org/apache/causeway/viewer/graphql/viewer/integration/GraphQlSourceForCauseway.java
b/incubator/viewers/graphql/viewer/src/main/java/org/apache/causeway/viewer/graphql/viewer/integration/GraphQlSourceForCauseway.java
index 462d436da8..7d55bad710 100644
---
a/incubator/viewers/graphql/viewer/src/main/java/org/apache/causeway/viewer/graphql/viewer/integration/GraphQlSourceForCauseway.java
+++
b/incubator/viewers/graphql/viewer/src/main/java/org/apache/causeway/viewer/graphql/viewer/integration/GraphQlSourceForCauseway.java
@@ -209,10 +209,8 @@ public class GraphQlSourceForCauseway implements
GraphQlSource {
final ObjectSpecification objectSpec,
final GraphQLCodeRegistry.Builder codeRegistryBuilder) {
- val domainObject = new GqlvDomainObject(objectSpec,
codeRegistryBuilder, bookmarkService, objectManager);
- domainObject.addMembers();
- domainObject.registerTypesInto(graphQLTypeRegistry);
- domainObject.addDataFetchers();
+ new GqlvDomainObject(objectSpec, codeRegistryBuilder, bookmarkService,
objectManager, graphQLTypeRegistry);
+
}
}