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 3a6bf75c01 CAUSEWAY-3676: more cleanup of ObjectTypeFactory vs
GqlvObjectSpec
3a6bf75c01 is described below
commit 3a6bf75c018a7643b801f63e11a5b4139f357443
Author: danhaywood <[email protected]>
AuthorDate: Fri Jan 19 12:29:49 2024 +0000
CAUSEWAY-3676: more cleanup of ObjectTypeFactory vs GqlvObjectSpec
---
.../graphql/viewer/source/GqlvObjectSpec.java | 22 ++++++++++++++++++++++
1 file changed, 22 insertions(+)
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 e5198504a5..e72ec723ca 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
@@ -2,6 +2,8 @@ package org.apache.causeway.viewer.graphql.viewer.source;
import graphql.Scalars;
import graphql.schema.GraphQLFieldDefinition;
+import graphql.schema.GraphQLInputObjectField;
+import graphql.schema.GraphQLInputObjectType;
import graphql.schema.GraphQLList;
import graphql.schema.GraphQLObjectType;
@@ -17,9 +19,12 @@ 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.GraphQLInputObjectType.newInputObject;
import static graphql.schema.GraphQLNonNull.nonNull;
import static graphql.schema.GraphQLObjectType.newObject;
+import static
org.apache.causeway.viewer.graphql.viewer.source.ObjectTypeFactory.GQL_INPUTTYPE_PREFIX;
+
/**
* A wrapper around {@link ObjectSpecification}
*/
@@ -30,7 +35,9 @@ public class GqlvObjectSpec {
@Getter private final GraphQLObjectType metaType;
@Getter private final GraphQLFieldDefinition metaField;
+ // TODO: make this private
@Getter private final GraphQLObjectType.Builder gqlObjectTypeBuilder;
+ private final GraphQLInputObjectType.Builder gqlinputObjectTypeBuilder;
public String getLogicalTypeNameSanitized() {
val logicalTypeName = objectSpec.getLogicalTypeName();
@@ -47,8 +54,14 @@ public class GqlvObjectSpec {
private GraphQLObjectType gqlObjectType;
public GqlvObjectSpec(final ObjectSpecification objectSpec) {
+
this.objectSpec = objectSpec;
+
this.gqlObjectTypeBuilder =
newObject().name(getLogicalTypeNameSanitized());
+ this.gqlinputObjectTypeBuilder =
newInputObject().name(GQL_INPUTTYPE_PREFIX + getLogicalTypeNameSanitized());
+
+
+ // output builder's fields
// meta type
val metaTypeBuilder = newObject().name(getLogicalTypeNameSanitized() +
"__DomainObject_meta");
@@ -63,6 +76,15 @@ public class GqlvObjectSpec {
metaField =
newFieldDefinition().name("_gql_meta").type(metaType).build();
gqlObjectTypeBuilder.field(metaField);
+ // input builder's fields
+ // id field
+ gqlinputObjectTypeBuilder
+ .field(GraphQLInputObjectField.newInputObjectField()
+ .name("id")
+ .type(nonNull(Scalars.GraphQLID))
+ .build());
+
+
}