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
commit 5d74bdfe3047cbd387f8f4c47d69b56d3744b11e Author: danhaywood <[email protected]> AuthorDate: Wed Jan 24 09:12:30 2024 +0000 CAUSEWAY-3676: adds CollectionGet --- .../graphql/model/domain/GqlvCollection.java | 104 ++- .../graphql/model/domain/GqlvCollectionGet.java | 109 +++ .../model/domain/GqlvCollectionGetHolder.java | 26 + ...lvCollection.java => GqlvCollectionSimple.java} | 22 +- .../graphql/model/domain/GqlvDomainObject.java | 11 +- .../viewer/graphql/model/types/TypeMapper.java | 19 + .../test/e2e/Schema_IntegTest.schema.approved.json | 906 +++++++++++++++++++-- ...chema_IntegTest.schema_types_name.approved.json | 38 + .../graphql/test/src/test/resources/schema.gql | 128 ++- 9 files changed, 1248 insertions(+), 115 deletions(-) diff --git a/incubator/viewers/graphql/model/src/main/java/org/apache/causeway/viewer/graphql/model/domain/GqlvCollection.java b/incubator/viewers/graphql/model/src/main/java/org/apache/causeway/viewer/graphql/model/domain/GqlvCollection.java index 90fd4e934a..488223bd98 100644 --- a/incubator/viewers/graphql/model/src/main/java/org/apache/causeway/viewer/graphql/model/domain/GqlvCollection.java +++ b/incubator/viewers/graphql/model/src/main/java/org/apache/causeway/viewer/graphql/model/domain/GqlvCollection.java @@ -18,59 +18,95 @@ */ package org.apache.causeway.viewer.graphql.model.domain; -import org.springframework.lang.Nullable; - -import org.apache.causeway.core.metamodel.spec.ObjectSpecification; +import org.apache.causeway.applib.services.bookmark.BookmarkService; import org.apache.causeway.core.metamodel.spec.feature.OneToManyAssociation; -import org.apache.causeway.viewer.graphql.model.types.TypeMapper; +import org.apache.causeway.core.metamodel.spec.feature.OneToOneAssociation; import org.apache.causeway.viewer.graphql.model.util.TypeNames; +import lombok.val; + +import graphql.schema.DataFetcher; +import graphql.schema.DataFetchingEnvironment; +import graphql.schema.FieldCoordinates; import graphql.schema.GraphQLCodeRegistry; import graphql.schema.GraphQLFieldDefinition; -import graphql.schema.GraphQLList; +import graphql.schema.GraphQLObjectType; import static graphql.schema.GraphQLFieldDefinition.newFieldDefinition; -import static graphql.schema.GraphQLTypeReference.typeRef; +import static graphql.schema.GraphQLObjectType.newObject; + +public class GqlvCollection extends GqlvAssociation<OneToManyAssociation, GqlvCollectionHolder> implements GqlvCollectionGetHolder, GqlvMemberHiddenHolder, GqlvMemberDisabledHolder { -public class GqlvCollection extends GqlvAssociation<OneToManyAssociation, GqlvCollectionHolder> { + private final GraphQLObjectType.Builder gqlObjectTypeBuilder; + private final GraphQLObjectType gqlObjectType; + private final GqlvMemberHidden hidden; + private final GqlvMemberDisabled disabled; + private final GqlvCollectionGet get; + private final BookmarkService bookmarkService; public GqlvCollection( final GqlvCollectionHolder domainObject, final OneToManyAssociation oneToManyAssociation, - final GraphQLCodeRegistry.Builder codeRegistryBuilder + final GraphQLCodeRegistry.Builder codeRegistryBuilder, + final BookmarkService bookmarkService ) { - super(domainObject, oneToManyAssociation, fieldDefinition(domainObject, oneToManyAssociation), codeRegistryBuilder); - } + super(domainObject, oneToManyAssociation, codeRegistryBuilder); - @Nullable private static GraphQLFieldDefinition fieldDefinition( - final GqlvCollectionHolder holder, - final OneToManyAssociation otom) { - ObjectSpecification elementType = otom.getElementType(); - - GraphQLFieldDefinition fieldDefinition = null; - GraphQLList type = listTypeFor(elementType); - if (type != null) { - fieldDefinition = newFieldDefinition() - .name(otom.getId()) - .type(type).build(); - holder.addField(fieldDefinition); - } - return fieldDefinition; - } + this.gqlObjectTypeBuilder = newObject().name(TypeNames.collectionTypeNameFor(holder.getObjectSpecification(), oneToManyAssociation)); + this.bookmarkService = bookmarkService; - @Nullable private static GraphQLList listTypeFor(ObjectSpecification elementType) { - switch (elementType.getBeanSort()) { - case VIEW_MODEL: - case ENTITY: - return GraphQLList.list(typeRef(TypeNames.objectTypeNameFor(elementType))); - case VALUE: - return GraphQLList.list(TypeMapper.scalarTypeFor(elementType.getCorrespondingClass())); - } - return null; + this.hidden = new GqlvMemberHidden(this, codeRegistryBuilder); + this.disabled = new GqlvMemberDisabled(this, codeRegistryBuilder); + this.get = new GqlvCollectionGet(this, codeRegistryBuilder); + + this.gqlObjectType = gqlObjectTypeBuilder.build(); + + setField( + holder.addField( + newFieldDefinition() + .name(oneToManyAssociation.getId()) + .type(gqlObjectTypeBuilder) + .build() + ) + ); } + public OneToManyAssociation getOneToManyAssociation() { return getObjectAssociation(); } + @Override + public GraphQLFieldDefinition addField(GraphQLFieldDefinition field) { + gqlObjectTypeBuilder.field(field); + return field; + } + + public void addDataFetcher() { + codeRegistryBuilder.dataFetcher( + holder.coordinatesFor(getField()), + new GqlvCollection.Fetcher()); + + hidden.addDataFetcher(); + disabled.addDataFetcher(); + get.addDataFetcher(); + } + + private class Fetcher implements DataFetcher<Object> { + @Override + public Object get(DataFetchingEnvironment dataFetchingEnvironment) { + + val sourcePojo = BookmarkedPojo.sourceFrom(dataFetchingEnvironment); + + return bookmarkService.bookmarkFor(sourcePojo) + .map(bookmark -> new BookmarkedPojo(bookmark, bookmarkService)) + .orElseThrow(); + } + } + + + @Override + public FieldCoordinates coordinatesFor(GraphQLFieldDefinition fieldDefinition) { + return FieldCoordinates.coordinates(gqlObjectType, fieldDefinition); + } } diff --git a/incubator/viewers/graphql/model/src/main/java/org/apache/causeway/viewer/graphql/model/domain/GqlvCollectionGet.java b/incubator/viewers/graphql/model/src/main/java/org/apache/causeway/viewer/graphql/model/domain/GqlvCollectionGet.java new file mode 100644 index 0000000000..faec3d340a --- /dev/null +++ b/incubator/viewers/graphql/model/src/main/java/org/apache/causeway/viewer/graphql/model/domain/GqlvCollectionGet.java @@ -0,0 +1,109 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ +package org.apache.causeway.viewer.graphql.model.domain; + +import org.apache.causeway.core.metamodel.object.ManagedObject; +import org.apache.causeway.viewer.graphql.model.types.TypeMapper; + +import lombok.val; + +import graphql.schema.DataFetchingEnvironment; +import graphql.schema.GraphQLCodeRegistry; +import graphql.schema.GraphQLFieldDefinition; +import graphql.schema.GraphQLOutputType; + +import static graphql.schema.GraphQLFieldDefinition.newFieldDefinition; + +public class GqlvCollectionGet { + + private final GqlvCollectionGetHolder holder; + private final GraphQLCodeRegistry.Builder codeRegistryBuilder; + private final GraphQLFieldDefinition field; + + + public GqlvCollectionGet( + final GqlvCollectionGetHolder holder, + final GraphQLCodeRegistry.Builder codeRegistryBuilder) { + this.holder = holder; + this.codeRegistryBuilder = codeRegistryBuilder; + this.field = fieldDefinition(holder); + } + + private static GraphQLFieldDefinition fieldDefinition(final GqlvCollectionGetHolder holder) { + + val oneToManyAssociation = holder.getOneToManyAssociation(); + + GraphQLFieldDefinition fieldDefinition = null; + GraphQLOutputType type = TypeMapper.listTypeForElementTypeOf(oneToManyAssociation); + if (type != null) { + val fieldBuilder = newFieldDefinition() + .name("get") + .type(type); + fieldDefinition = fieldBuilder.build(); + + holder.addField(fieldDefinition); + } + return fieldDefinition; + } + + public void addDataFetcher() { + + val association = holder.getOneToManyAssociation(); + val fieldObjectSpecification = association.getElementType(); + val beanSort = fieldObjectSpecification.getBeanSort(); + + switch (beanSort) { + + case VALUE: + case VIEW_MODEL: + case ENTITY: + + codeRegistryBuilder.dataFetcher( + holder.coordinatesFor(field), + this::get); + + break; + + } + } + + private Object get(final DataFetchingEnvironment dataFetchingEnvironment) { + + val association = holder.getOneToManyAssociation(); + + val sourcePojo = BookmarkedPojo.sourceFrom(dataFetchingEnvironment); + + val sourcePojoClass = sourcePojo.getClass(); + val specificationLoader = association.getSpecificationLoader(); + val objectSpecification = specificationLoader.loadSpecification(sourcePojoClass); + if (objectSpecification == null) { + // not expected + return null; + } + + // TODO: probably incorrect to adapt as a singular here? + val managedObject = ManagedObject.adaptSingular(objectSpecification, sourcePojo); + val resultManagedObject = association.get(managedObject); + + return resultManagedObject != null + ? resultManagedObject.getPojo() + : null; + } + +} diff --git a/incubator/viewers/graphql/model/src/main/java/org/apache/causeway/viewer/graphql/model/domain/GqlvCollectionGetHolder.java b/incubator/viewers/graphql/model/src/main/java/org/apache/causeway/viewer/graphql/model/domain/GqlvCollectionGetHolder.java new file mode 100644 index 0000000000..be3dc7a899 --- /dev/null +++ b/incubator/viewers/graphql/model/src/main/java/org/apache/causeway/viewer/graphql/model/domain/GqlvCollectionGetHolder.java @@ -0,0 +1,26 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ +package org.apache.causeway.viewer.graphql.model.domain; + +import org.apache.causeway.core.metamodel.spec.feature.OneToManyAssociation; + +public interface GqlvCollectionGetHolder extends GqlvHolder { + + OneToManyAssociation getOneToManyAssociation(); +} diff --git a/incubator/viewers/graphql/model/src/main/java/org/apache/causeway/viewer/graphql/model/domain/GqlvCollection.java b/incubator/viewers/graphql/model/src/main/java/org/apache/causeway/viewer/graphql/model/domain/GqlvCollectionSimple.java similarity index 71% copy from incubator/viewers/graphql/model/src/main/java/org/apache/causeway/viewer/graphql/model/domain/GqlvCollection.java copy to incubator/viewers/graphql/model/src/main/java/org/apache/causeway/viewer/graphql/model/domain/GqlvCollectionSimple.java index 90fd4e934a..eb4a867652 100644 --- a/incubator/viewers/graphql/model/src/main/java/org/apache/causeway/viewer/graphql/model/domain/GqlvCollection.java +++ b/incubator/viewers/graphql/model/src/main/java/org/apache/causeway/viewer/graphql/model/domain/GqlvCollectionSimple.java @@ -20,21 +20,18 @@ package org.apache.causeway.viewer.graphql.model.domain; import org.springframework.lang.Nullable; -import org.apache.causeway.core.metamodel.spec.ObjectSpecification; import org.apache.causeway.core.metamodel.spec.feature.OneToManyAssociation; import org.apache.causeway.viewer.graphql.model.types.TypeMapper; -import org.apache.causeway.viewer.graphql.model.util.TypeNames; import graphql.schema.GraphQLCodeRegistry; import graphql.schema.GraphQLFieldDefinition; import graphql.schema.GraphQLList; import static graphql.schema.GraphQLFieldDefinition.newFieldDefinition; -import static graphql.schema.GraphQLTypeReference.typeRef; -public class GqlvCollection extends GqlvAssociation<OneToManyAssociation, GqlvCollectionHolder> { +public class GqlvCollectionSimple extends GqlvAssociation<OneToManyAssociation, GqlvCollectionHolder> { - public GqlvCollection( + public GqlvCollectionSimple( final GqlvCollectionHolder domainObject, final OneToManyAssociation oneToManyAssociation, final GraphQLCodeRegistry.Builder codeRegistryBuilder @@ -45,10 +42,8 @@ public class GqlvCollection extends GqlvAssociation<OneToManyAssociation, GqlvCo @Nullable private static GraphQLFieldDefinition fieldDefinition( final GqlvCollectionHolder holder, final OneToManyAssociation otom) { - ObjectSpecification elementType = otom.getElementType(); - + GraphQLList type = TypeMapper.listTypeForElementTypeOf(otom); GraphQLFieldDefinition fieldDefinition = null; - GraphQLList type = listTypeFor(elementType); if (type != null) { fieldDefinition = newFieldDefinition() .name(otom.getId()) @@ -58,17 +53,6 @@ public class GqlvCollection extends GqlvAssociation<OneToManyAssociation, GqlvCo return fieldDefinition; } - @Nullable private static GraphQLList listTypeFor(ObjectSpecification elementType) { - switch (elementType.getBeanSort()) { - case VIEW_MODEL: - case ENTITY: - return GraphQLList.list(typeRef(TypeNames.objectTypeNameFor(elementType))); - case VALUE: - return GraphQLList.list(TypeMapper.scalarTypeFor(elementType.getCorrespondingClass())); - } - return null; - } - public OneToManyAssociation getOneToManyAssociation() { return getObjectAssociation(); } 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 0e7475df42..13b328cfd9 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 @@ -65,6 +65,7 @@ public class GqlvDomainObject implements GqlvActionHolder, GqlvPropertyHolder, G private final SortedMap<String, GqlvProperty> properties = new TreeMap<>(); private final SortedMap<String, GqlvCollection> collections = new TreeMap<>(); + private final SortedMap<String, GqlvCollectionSimple> collectionSimples = new TreeMap<>(); private final Map<String, GqlvAction> safeActions = new TreeMap<>(); private GraphQLObjectType gqlObjectType; @@ -124,13 +125,20 @@ public class GqlvDomainObject implements GqlvActionHolder, GqlvPropertyHolder, G } private void addCollection(OneToManyAssociation otom) { - GqlvCollection collection = new GqlvCollection(this, otom, codeRegistryBuilder); + GqlvCollection collection = new GqlvCollection(this, otom, codeRegistryBuilder, bookmarkService); if (collection.hasFieldDefinition()) { String collectionId = collection.getId(); if (!collections.containsKey(collectionId)) { collections.put(collectionId, collection); } } +// GqlvCollectionSimple collection = new GqlvCollectionSimple(this, otom, codeRegistryBuilder); +// if (collection.hasFieldDefinition()) { +// String collectionId = collection.getId(); +// if (!collectionSimples.containsKey(collectionId)) { +// collectionSimples.put(collectionId, collection); +// } +// } } private void addAction(final ObjectAction objectAction) { @@ -169,6 +177,7 @@ public class GqlvDomainObject implements GqlvActionHolder, GqlvPropertyHolder, G meta.addDataFetchers(); properties.forEach((id, property) -> property.addDataFetcher()); collections.forEach((id, collection) -> collection.addDataFetcher()); +// collectionSimples.forEach((id, collection) -> collection.addDataFetcher()); safeActions.forEach((id, action) -> action.addDataFetcher()); mutations.addDataFetchers(); } diff --git a/incubator/viewers/graphql/model/src/main/java/org/apache/causeway/viewer/graphql/model/types/TypeMapper.java b/incubator/viewers/graphql/model/src/main/java/org/apache/causeway/viewer/graphql/model/types/TypeMapper.java index 6b44bf2ce6..0516be22c7 100644 --- a/incubator/viewers/graphql/model/src/main/java/org/apache/causeway/viewer/graphql/model/types/TypeMapper.java +++ b/incubator/viewers/graphql/model/src/main/java/org/apache/causeway/viewer/graphql/model/types/TypeMapper.java @@ -23,6 +23,7 @@ import java.math.BigInteger; import java.util.Map; import graphql.Scalars; +import graphql.schema.GraphQLList; import graphql.schema.GraphQLOutputType; import graphql.schema.GraphQLScalarType; @@ -34,6 +35,7 @@ import javax.ws.rs.NotSupportedException; import org.apache.causeway.commons.internal.collections._Maps; import org.apache.causeway.core.metamodel.spec.ObjectSpecification; +import org.apache.causeway.core.metamodel.spec.feature.OneToManyAssociation; import org.apache.causeway.core.metamodel.spec.feature.OneToOneFeature; import org.apache.causeway.viewer.graphql.model.util.TypeNames; @@ -114,4 +116,21 @@ public class TypeMapper { return Scalars.GraphQLString; } } + + @Nullable public static GraphQLList listTypeForElementTypeOf(OneToManyAssociation oneToManyAssociation) { + ObjectSpecification elementType = oneToManyAssociation.getElementType(); + return TypeMapper.listTypeFor(elementType); + } + + @Nullable public static GraphQLList listTypeFor(ObjectSpecification elementType) { + switch (elementType.getBeanSort()) { + case VIEW_MODEL: + case ENTITY: + return GraphQLList.list(typeRef(TypeNames.objectTypeNameFor(elementType))); + case VALUE: + return GraphQLList.list(TypeMapper.scalarTypeFor(elementType.getCorrespondingClass())); + } + return null; + } + } diff --git a/incubator/viewers/graphql/test/src/test/java/org/apache/causeway/viewer/graphql/viewer/test/e2e/Schema_IntegTest.schema.approved.json b/incubator/viewers/graphql/test/src/test/java/org/apache/causeway/viewer/graphql/viewer/test/e2e/Schema_IntegTest.schema.approved.json index 92a86dfc26..4ce91fc10a 100644 --- a/incubator/viewers/graphql/test/src/test/java/org/apache/causeway/viewer/graphql/viewer/test/e2e/Schema_IntegTest.schema.approved.json +++ b/incubator/viewers/graphql/test/src/test/java/org/apache/causeway/viewer/graphql/viewer/test/e2e/Schema_IntegTest.schema.approved.json @@ -1023,6 +1023,17 @@ }, "isDeprecated" : false, "deprecationReason" : null + }, { + "name" : "objects", + "description" : null, + "args" : [ ], + "type" : { + "kind" : "OBJECT", + "name" : "causeway_applib_DomainObjectList__objects__collection", + "ofType" : null + }, + "isDeprecated" : false, + "deprecationReason" : null } ], "inputFields" : null, "interfaces" : [ ], @@ -1261,6 +1272,37 @@ "interfaces" : [ ], "enumValues" : null, "possibleTypes" : null + }, { + "kind" : "OBJECT", + "name" : "causeway_applib_DomainObjectList__objects__collection", + "description" : null, + "fields" : [ { + "name" : "hidden", + "description" : null, + "args" : [ ], + "type" : { + "kind" : "SCALAR", + "name" : "Boolean", + "ofType" : null + }, + "isDeprecated" : false, + "deprecationReason" : null + }, { + "name" : "disabled", + "description" : null, + "args" : [ ], + "type" : { + "kind" : "SCALAR", + "name" : "String", + "ofType" : null + }, + "isDeprecated" : false, + "deprecationReason" : null + } ], + "inputFields" : null, + "interfaces" : [ ], + "enumValues" : null, + "possibleTypes" : null }, { "kind" : "OBJECT", "name" : "causeway_applib_DomainObjectList__title__property", @@ -1344,6 +1386,48 @@ }, "isDeprecated" : false, "deprecationReason" : null + }, { + "name" : "childNodes", + "description" : null, + "args" : [ ], + "type" : { + "kind" : "OBJECT", + "name" : "causeway_applib_FacetGroupNode__childNodes__collection", + "ofType" : null + }, + "isDeprecated" : false, + "deprecationReason" : null + } ], + "inputFields" : null, + "interfaces" : [ ], + "enumValues" : null, + "possibleTypes" : null + }, { + "kind" : "OBJECT", + "name" : "causeway_applib_FacetGroupNode__childNodes__collection", + "description" : null, + "fields" : [ { + "name" : "hidden", + "description" : null, + "args" : [ ], + "type" : { + "kind" : "SCALAR", + "name" : "Boolean", + "ofType" : null + }, + "isDeprecated" : false, + "deprecationReason" : null + }, { + "name" : "disabled", + "description" : null, + "args" : [ ], + "type" : { + "kind" : "SCALAR", + "name" : "String", + "ofType" : null + }, + "isDeprecated" : false, + "deprecationReason" : null } ], "inputFields" : null, "interfaces" : [ ], @@ -1524,6 +1608,48 @@ }, "isDeprecated" : false, "deprecationReason" : null + }, { + "name" : "childNodes", + "description" : null, + "args" : [ ], + "type" : { + "kind" : "OBJECT", + "name" : "causeway_applib_ParameterNode__childNodes__collection", + "ofType" : null + }, + "isDeprecated" : false, + "deprecationReason" : null + } ], + "inputFields" : null, + "interfaces" : [ ], + "enumValues" : null, + "possibleTypes" : null + }, { + "kind" : "OBJECT", + "name" : "causeway_applib_ParameterNode__childNodes__collection", + "description" : null, + "fields" : [ { + "name" : "hidden", + "description" : null, + "args" : [ ], + "type" : { + "kind" : "SCALAR", + "name" : "Boolean", + "ofType" : null + }, + "isDeprecated" : false, + "deprecationReason" : null + }, { + "name" : "disabled", + "description" : null, + "args" : [ ], + "type" : { + "kind" : "SCALAR", + "name" : "String", + "ofType" : null + }, + "isDeprecated" : false, + "deprecationReason" : null } ], "inputFields" : null, "interfaces" : [ ], @@ -1730,6 +1856,17 @@ }, "isDeprecated" : false, "deprecationReason" : null + }, { + "name" : "childNodes", + "description" : null, + "args" : [ ], + "type" : { + "kind" : "OBJECT", + "name" : "causeway_applib_PropertyNode__childNodes__collection", + "ofType" : null + }, + "isDeprecated" : false, + "deprecationReason" : null }, { "name" : "_gql_mutations", "description" : null, @@ -1746,6 +1883,37 @@ "interfaces" : [ ], "enumValues" : null, "possibleTypes" : null + }, { + "kind" : "OBJECT", + "name" : "causeway_applib_PropertyNode__childNodes__collection", + "description" : null, + "fields" : [ { + "name" : "hidden", + "description" : null, + "args" : [ ], + "type" : { + "kind" : "SCALAR", + "name" : "Boolean", + "ofType" : null + }, + "isDeprecated" : false, + "deprecationReason" : null + }, { + "name" : "disabled", + "description" : null, + "args" : [ ], + "type" : { + "kind" : "SCALAR", + "name" : "String", + "ofType" : null + }, + "isDeprecated" : false, + "deprecationReason" : null + } ], + "inputFields" : null, + "interfaces" : [ ], + "enumValues" : null, + "possibleTypes" : null }, { "kind" : "INPUT_OBJECT", "name" : "causeway_applib_PropertyNode__gql_input", @@ -2239,6 +2407,48 @@ }, "isDeprecated" : false, "deprecationReason" : null + }, { + "name" : "childNodes", + "description" : null, + "args" : [ ], + "type" : { + "kind" : "OBJECT", + "name" : "causeway_applib_TypeNode__childNodes__collection", + "ofType" : null + }, + "isDeprecated" : false, + "deprecationReason" : null + } ], + "inputFields" : null, + "interfaces" : [ ], + "enumValues" : null, + "possibleTypes" : null + }, { + "kind" : "OBJECT", + "name" : "causeway_applib_TypeNode__childNodes__collection", + "description" : null, + "fields" : [ { + "name" : "hidden", + "description" : null, + "args" : [ ], + "type" : { + "kind" : "SCALAR", + "name" : "Boolean", + "ofType" : null + }, + "isDeprecated" : false, + "deprecationReason" : null + }, { + "name" : "disabled", + "description" : null, + "args" : [ ], + "type" : { + "kind" : "SCALAR", + "name" : "String", + "ofType" : null + }, + "isDeprecated" : false, + "deprecationReason" : null } ], "inputFields" : null, "interfaces" : [ ], @@ -2512,13 +2722,9 @@ "description" : null, "args" : [ ], "type" : { - "kind" : "LIST", - "name" : null, - "ofType" : { - "kind" : "OBJECT", - "name" : "causeway_applib_RoleMemento", - "ofType" : null - } + "kind" : "OBJECT", + "name" : "causeway_applib_UserMemento__roles__collection", + "ofType" : null }, "isDeprecated" : false, "deprecationReason" : null @@ -2982,6 +3188,52 @@ "interfaces" : [ ], "enumValues" : null, "possibleTypes" : null + }, { + "kind" : "OBJECT", + "name" : "causeway_applib_UserMemento__roles__collection", + "description" : null, + "fields" : [ { + "name" : "hidden", + "description" : null, + "args" : [ ], + "type" : { + "kind" : "SCALAR", + "name" : "Boolean", + "ofType" : null + }, + "isDeprecated" : false, + "deprecationReason" : null + }, { + "name" : "disabled", + "description" : null, + "args" : [ ], + "type" : { + "kind" : "SCALAR", + "name" : "String", + "ofType" : null + }, + "isDeprecated" : false, + "deprecationReason" : null + }, { + "name" : "get", + "description" : null, + "args" : [ ], + "type" : { + "kind" : "LIST", + "name" : null, + "ofType" : { + "kind" : "OBJECT", + "name" : "causeway_applib_RoleMemento", + "ofType" : null + } + }, + "isDeprecated" : false, + "deprecationReason" : null + } ], + "inputFields" : null, + "interfaces" : [ ], + "enumValues" : null, + "possibleTypes" : null }, { "kind" : "OBJECT", "name" : "causeway_applib_UserMemento__timeFormatLocale__property", @@ -3135,21 +3387,32 @@ "isDeprecated" : false, "deprecationReason" : null }, { - "name" : "_gql_mutations", + "name" : "childNodes", "description" : null, "args" : [ ], "type" : { "kind" : "OBJECT", - "name" : "causeway_applib_node_ActionNode__gql_mutations", + "name" : "causeway_applib_node_ActionNode__childNodes__collection", "ofType" : null }, "isDeprecated" : false, "deprecationReason" : null - } ], - "inputFields" : null, - "interfaces" : [ ], - "enumValues" : null, - "possibleTypes" : null + }, { + "name" : "_gql_mutations", + "description" : null, + "args" : [ ], + "type" : { + "kind" : "OBJECT", + "name" : "causeway_applib_node_ActionNode__gql_mutations", + "ofType" : null + }, + "isDeprecated" : false, + "deprecationReason" : null + } ], + "inputFields" : null, + "interfaces" : [ ], + "enumValues" : null, + "possibleTypes" : null }, { "kind" : "OBJECT", "name" : "causeway_applib_node_ActionNode__action__property", @@ -3196,6 +3459,37 @@ "interfaces" : [ ], "enumValues" : null, "possibleTypes" : null + }, { + "kind" : "OBJECT", + "name" : "causeway_applib_node_ActionNode__childNodes__collection", + "description" : null, + "fields" : [ { + "name" : "hidden", + "description" : null, + "args" : [ ], + "type" : { + "kind" : "SCALAR", + "name" : "Boolean", + "ofType" : null + }, + "isDeprecated" : false, + "deprecationReason" : null + }, { + "name" : "disabled", + "description" : null, + "args" : [ ], + "type" : { + "kind" : "SCALAR", + "name" : "String", + "ofType" : null + }, + "isDeprecated" : false, + "deprecationReason" : null + } ], + "inputFields" : null, + "interfaces" : [ ], + "enumValues" : null, + "possibleTypes" : null }, { "kind" : "INPUT_OBJECT", "name" : "causeway_applib_node_ActionNode__gql_input", @@ -3459,6 +3753,17 @@ }, "isDeprecated" : false, "deprecationReason" : null + }, { + "name" : "childNodes", + "description" : null, + "args" : [ ], + "type" : { + "kind" : "OBJECT", + "name" : "causeway_applib_node_CollectionNode__childNodes__collection", + "ofType" : null + }, + "isDeprecated" : false, + "deprecationReason" : null }, { "name" : "_gql_mutations", "description" : null, @@ -3475,6 +3780,37 @@ "interfaces" : [ ], "enumValues" : null, "possibleTypes" : null + }, { + "kind" : "OBJECT", + "name" : "causeway_applib_node_CollectionNode__childNodes__collection", + "description" : null, + "fields" : [ { + "name" : "hidden", + "description" : null, + "args" : [ ], + "type" : { + "kind" : "SCALAR", + "name" : "Boolean", + "ofType" : null + }, + "isDeprecated" : false, + "deprecationReason" : null + }, { + "name" : "disabled", + "description" : null, + "args" : [ ], + "type" : { + "kind" : "SCALAR", + "name" : "String", + "ofType" : null + }, + "isDeprecated" : false, + "deprecationReason" : null + } ], + "inputFields" : null, + "interfaces" : [ ], + "enumValues" : null, + "possibleTypes" : null }, { "kind" : "OBJECT", "name" : "causeway_applib_node_CollectionNode__collection__property", @@ -3773,6 +4109,48 @@ }, "isDeprecated" : false, "deprecationReason" : null + }, { + "name" : "childNodes", + "description" : null, + "args" : [ ], + "type" : { + "kind" : "OBJECT", + "name" : "causeway_applib_node_FacetAttrNode__childNodes__collection", + "ofType" : null + }, + "isDeprecated" : false, + "deprecationReason" : null + } ], + "inputFields" : null, + "interfaces" : [ ], + "enumValues" : null, + "possibleTypes" : null + }, { + "kind" : "OBJECT", + "name" : "causeway_applib_node_FacetAttrNode__childNodes__collection", + "description" : null, + "fields" : [ { + "name" : "hidden", + "description" : null, + "args" : [ ], + "type" : { + "kind" : "SCALAR", + "name" : "Boolean", + "ofType" : null + }, + "isDeprecated" : false, + "deprecationReason" : null + }, { + "name" : "disabled", + "description" : null, + "args" : [ ], + "type" : { + "kind" : "SCALAR", + "name" : "String", + "ofType" : null + }, + "isDeprecated" : false, + "deprecationReason" : null } ], "inputFields" : null, "interfaces" : [ ], @@ -3979,6 +4357,48 @@ }, "isDeprecated" : false, "deprecationReason" : null + }, { + "name" : "childNodes", + "description" : null, + "args" : [ ], + "type" : { + "kind" : "OBJECT", + "name" : "causeway_applib_node_FacetNode__childNodes__collection", + "ofType" : null + }, + "isDeprecated" : false, + "deprecationReason" : null + } ], + "inputFields" : null, + "interfaces" : [ ], + "enumValues" : null, + "possibleTypes" : null + }, { + "kind" : "OBJECT", + "name" : "causeway_applib_node_FacetNode__childNodes__collection", + "description" : null, + "fields" : [ { + "name" : "hidden", + "description" : null, + "args" : [ ], + "type" : { + "kind" : "SCALAR", + "name" : "Boolean", + "ofType" : null + }, + "isDeprecated" : false, + "deprecationReason" : null + }, { + "name" : "disabled", + "description" : null, + "args" : [ ], + "type" : { + "kind" : "SCALAR", + "name" : "String", + "ofType" : null + }, + "isDeprecated" : false, + "deprecationReason" : null } ], "inputFields" : null, "interfaces" : [ ], @@ -4445,13 +4865,9 @@ "description" : null, "args" : [ ], "type" : { - "kind" : "LIST", - "name" : null, - "ofType" : { - "kind" : "OBJECT", - "name" : "causeway_conf_ConfigurationProperty", - "ofType" : null - } + "kind" : "OBJECT", + "name" : "causeway_conf_ConfigurationViewmodel__environment__collection", + "ofType" : null }, "isDeprecated" : false, "deprecationReason" : null @@ -4460,13 +4876,9 @@ "description" : null, "args" : [ ], "type" : { - "kind" : "LIST", - "name" : null, - "ofType" : { - "kind" : "OBJECT", - "name" : "causeway_conf_ConfigurationProperty", - "ofType" : null - } + "kind" : "OBJECT", + "name" : "causeway_conf_ConfigurationViewmodel__primary__collection", + "ofType" : null }, "isDeprecated" : false, "deprecationReason" : null @@ -4474,6 +4886,48 @@ "name" : "secondary", "description" : null, "args" : [ ], + "type" : { + "kind" : "OBJECT", + "name" : "causeway_conf_ConfigurationViewmodel__secondary__collection", + "ofType" : null + }, + "isDeprecated" : false, + "deprecationReason" : null + } ], + "inputFields" : null, + "interfaces" : [ ], + "enumValues" : null, + "possibleTypes" : null + }, { + "kind" : "OBJECT", + "name" : "causeway_conf_ConfigurationViewmodel__environment__collection", + "description" : null, + "fields" : [ { + "name" : "hidden", + "description" : null, + "args" : [ ], + "type" : { + "kind" : "SCALAR", + "name" : "Boolean", + "ofType" : null + }, + "isDeprecated" : false, + "deprecationReason" : null + }, { + "name" : "disabled", + "description" : null, + "args" : [ ], + "type" : { + "kind" : "SCALAR", + "name" : "String", + "ofType" : null + }, + "isDeprecated" : false, + "deprecationReason" : null + }, { + "name" : "get", + "description" : null, + "args" : [ ], "type" : { "kind" : "LIST", "name" : null, @@ -4551,6 +5005,98 @@ "interfaces" : [ ], "enumValues" : null, "possibleTypes" : null + }, { + "kind" : "OBJECT", + "name" : "causeway_conf_ConfigurationViewmodel__primary__collection", + "description" : null, + "fields" : [ { + "name" : "hidden", + "description" : null, + "args" : [ ], + "type" : { + "kind" : "SCALAR", + "name" : "Boolean", + "ofType" : null + }, + "isDeprecated" : false, + "deprecationReason" : null + }, { + "name" : "disabled", + "description" : null, + "args" : [ ], + "type" : { + "kind" : "SCALAR", + "name" : "String", + "ofType" : null + }, + "isDeprecated" : false, + "deprecationReason" : null + }, { + "name" : "get", + "description" : null, + "args" : [ ], + "type" : { + "kind" : "LIST", + "name" : null, + "ofType" : { + "kind" : "OBJECT", + "name" : "causeway_conf_ConfigurationProperty", + "ofType" : null + } + }, + "isDeprecated" : false, + "deprecationReason" : null + } ], + "inputFields" : null, + "interfaces" : [ ], + "enumValues" : null, + "possibleTypes" : null + }, { + "kind" : "OBJECT", + "name" : "causeway_conf_ConfigurationViewmodel__secondary__collection", + "description" : null, + "fields" : [ { + "name" : "hidden", + "description" : null, + "args" : [ ], + "type" : { + "kind" : "SCALAR", + "name" : "Boolean", + "ofType" : null + }, + "isDeprecated" : false, + "deprecationReason" : null + }, { + "name" : "disabled", + "description" : null, + "args" : [ ], + "type" : { + "kind" : "SCALAR", + "name" : "String", + "ofType" : null + }, + "isDeprecated" : false, + "deprecationReason" : null + }, { + "name" : "get", + "description" : null, + "args" : [ ], + "type" : { + "kind" : "LIST", + "name" : null, + "ofType" : { + "kind" : "OBJECT", + "name" : "causeway_conf_ConfigurationProperty", + "ofType" : null + } + }, + "isDeprecated" : false, + "deprecationReason" : null + } ], + "inputFields" : null, + "interfaces" : [ ], + "enumValues" : null, + "possibleTypes" : null }, { "kind" : "OBJECT", "name" : "causeway_feat_ApplicationFeatureViewModel", @@ -4887,19 +5433,61 @@ "description" : null, "args" : [ ], "type" : { - "kind" : "OBJECT", - "name" : "causeway_feat_ApplicationNamespace__memberName__property", + "kind" : "OBJECT", + "name" : "causeway_feat_ApplicationNamespace__memberName__property", + "ofType" : null + }, + "isDeprecated" : false, + "deprecationReason" : null + }, { + "name" : "parent", + "description" : null, + "args" : [ ], + "type" : { + "kind" : "OBJECT", + "name" : "causeway_feat_ApplicationNamespace__parent__property", + "ofType" : null + }, + "isDeprecated" : false, + "deprecationReason" : null + }, { + "name" : "contents", + "description" : null, + "args" : [ ], + "type" : { + "kind" : "OBJECT", + "name" : "causeway_feat_ApplicationNamespace__contents__collection", + "ofType" : null + }, + "isDeprecated" : false, + "deprecationReason" : null + } ], + "inputFields" : null, + "interfaces" : [ ], + "enumValues" : null, + "possibleTypes" : null + }, { + "kind" : "OBJECT", + "name" : "causeway_feat_ApplicationNamespace__contents__collection", + "description" : null, + "fields" : [ { + "name" : "hidden", + "description" : null, + "args" : [ ], + "type" : { + "kind" : "SCALAR", + "name" : "Boolean", "ofType" : null }, "isDeprecated" : false, "deprecationReason" : null }, { - "name" : "parent", + "name" : "disabled", "description" : null, "args" : [ ], "type" : { - "kind" : "OBJECT", - "name" : "causeway_feat_ApplicationNamespace__parent__property", + "kind" : "SCALAR", + "name" : "String", "ofType" : null }, "isDeprecated" : false, @@ -5203,13 +5791,9 @@ "description" : null, "args" : [ ], "type" : { - "kind" : "LIST", - "name" : null, - "ofType" : { - "kind" : "OBJECT", - "name" : "causeway_feat_ApplicationTypeAction", - "ofType" : null - } + "kind" : "OBJECT", + "name" : "causeway_feat_ApplicationType__actions__collection", + "ofType" : null }, "isDeprecated" : false, "deprecationReason" : null @@ -5218,13 +5802,9 @@ "description" : null, "args" : [ ], "type" : { - "kind" : "LIST", - "name" : null, - "ofType" : { - "kind" : "OBJECT", - "name" : "causeway_feat_ApplicationTypeProperty", - "ofType" : null - } + "kind" : "OBJECT", + "name" : "causeway_feat_ApplicationType__properties__collection", + "ofType" : null }, "isDeprecated" : false, "deprecationReason" : null @@ -5233,13 +5813,9 @@ "description" : null, "args" : [ ], "type" : { - "kind" : "LIST", - "name" : null, - "ofType" : { - "kind" : "OBJECT", - "name" : "causeway_feat_ApplicationTypeCollection", - "ofType" : null - } + "kind" : "OBJECT", + "name" : "causeway_feat_ApplicationType__collections__collection", + "ofType" : null }, "isDeprecated" : false, "deprecationReason" : null @@ -6872,6 +7448,98 @@ "interfaces" : [ ], "enumValues" : null, "possibleTypes" : null + }, { + "kind" : "OBJECT", + "name" : "causeway_feat_ApplicationType__actions__collection", + "description" : null, + "fields" : [ { + "name" : "hidden", + "description" : null, + "args" : [ ], + "type" : { + "kind" : "SCALAR", + "name" : "Boolean", + "ofType" : null + }, + "isDeprecated" : false, + "deprecationReason" : null + }, { + "name" : "disabled", + "description" : null, + "args" : [ ], + "type" : { + "kind" : "SCALAR", + "name" : "String", + "ofType" : null + }, + "isDeprecated" : false, + "deprecationReason" : null + }, { + "name" : "get", + "description" : null, + "args" : [ ], + "type" : { + "kind" : "LIST", + "name" : null, + "ofType" : { + "kind" : "OBJECT", + "name" : "causeway_feat_ApplicationTypeAction", + "ofType" : null + } + }, + "isDeprecated" : false, + "deprecationReason" : null + } ], + "inputFields" : null, + "interfaces" : [ ], + "enumValues" : null, + "possibleTypes" : null + }, { + "kind" : "OBJECT", + "name" : "causeway_feat_ApplicationType__collections__collection", + "description" : null, + "fields" : [ { + "name" : "hidden", + "description" : null, + "args" : [ ], + "type" : { + "kind" : "SCALAR", + "name" : "Boolean", + "ofType" : null + }, + "isDeprecated" : false, + "deprecationReason" : null + }, { + "name" : "disabled", + "description" : null, + "args" : [ ], + "type" : { + "kind" : "SCALAR", + "name" : "String", + "ofType" : null + }, + "isDeprecated" : false, + "deprecationReason" : null + }, { + "name" : "get", + "description" : null, + "args" : [ ], + "type" : { + "kind" : "LIST", + "name" : null, + "ofType" : { + "kind" : "OBJECT", + "name" : "causeway_feat_ApplicationTypeCollection", + "ofType" : null + } + }, + "isDeprecated" : false, + "deprecationReason" : null + } ], + "inputFields" : null, + "interfaces" : [ ], + "enumValues" : null, + "possibleTypes" : null }, { "kind" : "INPUT_OBJECT", "name" : "causeway_feat_ApplicationType__gql_input", @@ -7056,6 +7724,52 @@ "interfaces" : [ ], "enumValues" : null, "possibleTypes" : null + }, { + "kind" : "OBJECT", + "name" : "causeway_feat_ApplicationType__properties__collection", + "description" : null, + "fields" : [ { + "name" : "hidden", + "description" : null, + "args" : [ ], + "type" : { + "kind" : "SCALAR", + "name" : "Boolean", + "ofType" : null + }, + "isDeprecated" : false, + "deprecationReason" : null + }, { + "name" : "disabled", + "description" : null, + "args" : [ ], + "type" : { + "kind" : "SCALAR", + "name" : "String", + "ofType" : null + }, + "isDeprecated" : false, + "deprecationReason" : null + }, { + "name" : "get", + "description" : null, + "args" : [ ], + "type" : { + "kind" : "LIST", + "name" : null, + "ofType" : { + "kind" : "OBJECT", + "name" : "causeway_feat_ApplicationTypeProperty", + "ofType" : null + } + }, + "isDeprecated" : false, + "deprecationReason" : null + } ], + "inputFields" : null, + "interfaces" : [ ], + "enumValues" : null, + "possibleTypes" : null }, { "kind" : "OBJECT", "name" : "causeway_feat_ApplicationType__typeSimpleName__property", @@ -12413,6 +13127,48 @@ }, "isDeprecated" : false, "deprecationReason" : null + }, { + "name" : "childNodes", + "description" : null, + "args" : [ ], + "type" : { + "kind" : "OBJECT", + "name" : "org_apache_causeway_core_metamodel_inspect_model_MMNode__childNodes__collection", + "ofType" : null + }, + "isDeprecated" : false, + "deprecationReason" : null + } ], + "inputFields" : null, + "interfaces" : [ ], + "enumValues" : null, + "possibleTypes" : null + }, { + "kind" : "OBJECT", + "name" : "org_apache_causeway_core_metamodel_inspect_model_MMNode__childNodes__collection", + "description" : null, + "fields" : [ { + "name" : "hidden", + "description" : null, + "args" : [ ], + "type" : { + "kind" : "SCALAR", + "name" : "Boolean", + "ofType" : null + }, + "isDeprecated" : false, + "deprecationReason" : null + }, { + "name" : "disabled", + "description" : null, + "args" : [ ], + "type" : { + "kind" : "SCALAR", + "name" : "String", + "ofType" : null + }, + "isDeprecated" : false, + "deprecationReason" : null } ], "inputFields" : null, "interfaces" : [ ], @@ -12547,6 +13303,17 @@ }, "isDeprecated" : false, "deprecationReason" : null + }, { + "name" : "childNodes", + "description" : null, + "args" : [ ], + "type" : { + "kind" : "OBJECT", + "name" : "org_apache_causeway_core_metamodel_inspect_model_MemberNode__childNodes__collection", + "ofType" : null + }, + "isDeprecated" : false, + "deprecationReason" : null }, { "name" : "_gql_mutations", "description" : null, @@ -12563,6 +13330,37 @@ "interfaces" : [ ], "enumValues" : null, "possibleTypes" : null + }, { + "kind" : "OBJECT", + "name" : "org_apache_causeway_core_metamodel_inspect_model_MemberNode__childNodes__collection", + "description" : null, + "fields" : [ { + "name" : "hidden", + "description" : null, + "args" : [ ], + "type" : { + "kind" : "SCALAR", + "name" : "Boolean", + "ofType" : null + }, + "isDeprecated" : false, + "deprecationReason" : null + }, { + "name" : "disabled", + "description" : null, + "args" : [ ], + "type" : { + "kind" : "SCALAR", + "name" : "String", + "ofType" : null + }, + "isDeprecated" : false, + "deprecationReason" : null + } ], + "inputFields" : null, + "interfaces" : [ ], + "enumValues" : null, + "possibleTypes" : null }, { "kind" : "INPUT_OBJECT", "name" : "org_apache_causeway_core_metamodel_inspect_model_MemberNode__gql_input", diff --git a/incubator/viewers/graphql/test/src/test/java/org/apache/causeway/viewer/graphql/viewer/test/e2e/Schema_IntegTest.schema_types_name.approved.json b/incubator/viewers/graphql/test/src/test/java/org/apache/causeway/viewer/graphql/viewer/test/e2e/Schema_IntegTest.schema_types_name.approved.json index 370dd5e27c..773f4214ea 100644 --- a/incubator/viewers/graphql/test/src/test/java/org/apache/causeway/viewer/graphql/viewer/test/e2e/Schema_IntegTest.schema_types_name.approved.json +++ b/incubator/viewers/graphql/test/src/test/java/org/apache/causeway/viewer/graphql/viewer/test/e2e/Schema_IntegTest.schema_types_name.approved.json @@ -41,10 +41,14 @@ "name" : "causeway_applib_DomainObjectList__gql_input" }, { "name" : "causeway_applib_DomainObjectList__gql_meta" + }, { + "name" : "causeway_applib_DomainObjectList__objects__collection" }, { "name" : "causeway_applib_DomainObjectList__title__property" }, { "name" : "causeway_applib_FacetGroupNode" + }, { + "name" : "causeway_applib_FacetGroupNode__childNodes__collection" }, { "name" : "causeway_applib_FacetGroupNode__facets__property" }, { @@ -55,6 +59,8 @@ "name" : "causeway_applib_FacetGroupNode__parentNode__property" }, { "name" : "causeway_applib_ParameterNode" + }, { + "name" : "causeway_applib_ParameterNode__childNodes__collection" }, { "name" : "causeway_applib_ParameterNode__gql_input" }, { @@ -65,6 +71,8 @@ "name" : "causeway_applib_ParameterNode__parentNode__property" }, { "name" : "causeway_applib_PropertyNode" + }, { + "name" : "causeway_applib_PropertyNode__childNodes__collection" }, { "name" : "causeway_applib_PropertyNode__gql_input" }, { @@ -91,6 +99,8 @@ "name" : "causeway_applib_RoleMemento__name__property" }, { "name" : "causeway_applib_TypeNode" + }, { + "name" : "causeway_applib_TypeNode__childNodes__collection" }, { "name" : "causeway_applib_TypeNode__domainClassDto__property" }, { @@ -123,6 +133,8 @@ "name" : "causeway_applib_UserMemento__numberFormatLocale__property" }, { "name" : "causeway_applib_UserMemento__realName__property" + }, { + "name" : "causeway_applib_UserMemento__roles__collection" }, { "name" : "causeway_applib_UserMemento__timeFormatLocale__property" }, { @@ -133,6 +145,8 @@ "name" : "causeway_applib_node_ActionNode" }, { "name" : "causeway_applib_node_ActionNode__action__property" + }, { + "name" : "causeway_applib_node_ActionNode__childNodes__collection" }, { "name" : "causeway_applib_node_ActionNode__gql_input" }, { @@ -147,6 +161,8 @@ "name" : "causeway_applib_node_ActionNode__streamChildNodes__action" }, { "name" : "causeway_applib_node_CollectionNode" + }, { + "name" : "causeway_applib_node_CollectionNode__childNodes__collection" }, { "name" : "causeway_applib_node_CollectionNode__collection__property" }, { @@ -163,6 +179,8 @@ "name" : "causeway_applib_node_CollectionNode__streamChildNodes__action" }, { "name" : "causeway_applib_node_FacetAttrNode" + }, { + "name" : "causeway_applib_node_FacetAttrNode__childNodes__collection" }, { "name" : "causeway_applib_node_FacetAttrNode__facetAttr__property" }, { @@ -173,6 +191,8 @@ "name" : "causeway_applib_node_FacetAttrNode__parentNode__property" }, { "name" : "causeway_applib_node_FacetNode" + }, { + "name" : "causeway_applib_node_FacetNode__childNodes__collection" }, { "name" : "causeway_applib_node_FacetNode__facet__property" }, { @@ -199,10 +219,16 @@ "name" : "causeway_conf_ConfigurationProperty__value__property" }, { "name" : "causeway_conf_ConfigurationViewmodel" + }, { + "name" : "causeway_conf_ConfigurationViewmodel__environment__collection" }, { "name" : "causeway_conf_ConfigurationViewmodel__gql_input" }, { "name" : "causeway_conf_ConfigurationViewmodel__gql_meta" + }, { + "name" : "causeway_conf_ConfigurationViewmodel__primary__collection" + }, { + "name" : "causeway_conf_ConfigurationViewmodel__secondary__collection" }, { "name" : "causeway_feat_ApplicationFeatureViewModel" }, { @@ -219,6 +245,8 @@ "name" : "causeway_feat_ApplicationFeatureViewModel__typeSimpleName__property" }, { "name" : "causeway_feat_ApplicationNamespace" + }, { + "name" : "causeway_feat_ApplicationNamespace__contents__collection" }, { "name" : "causeway_feat_ApplicationNamespace__gql_input" }, { @@ -305,6 +333,10 @@ "name" : "causeway_feat_ApplicationTypeProperty__typeSimpleName__property" }, { "name" : "causeway_feat_ApplicationTypeProperty__typicalLength__property" + }, { + "name" : "causeway_feat_ApplicationType__actions__collection" + }, { + "name" : "causeway_feat_ApplicationType__collections__collection" }, { "name" : "causeway_feat_ApplicationType__gql_input" }, { @@ -315,6 +347,8 @@ "name" : "causeway_feat_ApplicationType__namespaceName__property" }, { "name" : "causeway_feat_ApplicationType__parent__property" + }, { + "name" : "causeway_feat_ApplicationType__properties__collection" }, { "name" : "causeway_feat_ApplicationType__typeSimpleName__property" }, { @@ -559,6 +593,8 @@ "name" : "org_apache_causeway_commons_functional_Try__value__property" }, { "name" : "org_apache_causeway_core_metamodel_inspect_model_MMNode" + }, { + "name" : "org_apache_causeway_core_metamodel_inspect_model_MMNode__childNodes__collection" }, { "name" : "org_apache_causeway_core_metamodel_inspect_model_MMNode__gql_input" }, { @@ -567,6 +603,8 @@ "name" : "org_apache_causeway_core_metamodel_inspect_model_MMNode__parentNode__property" }, { "name" : "org_apache_causeway_core_metamodel_inspect_model_MemberNode" + }, { + "name" : "org_apache_causeway_core_metamodel_inspect_model_MemberNode__childNodes__collection" }, { "name" : "org_apache_causeway_core_metamodel_inspect_model_MemberNode__gql_input" }, { diff --git a/incubator/viewers/graphql/test/src/test/resources/schema.gql b/incubator/viewers/graphql/test/src/test/resources/schema.gql index 98dcbc22a3..ea7334ef6a 100644 --- a/incubator/viewers/graphql/test/src/test/resources/schema.gql +++ b/incubator/viewers/graphql/test/src/test/resources/schema.gql @@ -37,6 +37,7 @@ type causeway_applib_DomainObjectList { actionId: causeway_applib_DomainObjectList__actionId__property actionOwningFqcn: causeway_applib_DomainObjectList__actionOwningFqcn__property elementTypeFqcn: causeway_applib_DomainObjectList__elementTypeFqcn__property + objects: causeway_applib_DomainObjectList__objects__collection title: causeway_applib_DomainObjectList__title__property } @@ -69,6 +70,11 @@ type causeway_applib_DomainObjectList__gql_meta { logicalTypeName: String! } +type causeway_applib_DomainObjectList__objects__collection { + disabled: String + hidden: Boolean +} + type causeway_applib_DomainObjectList__title__property { disabled: String get: String! @@ -77,10 +83,16 @@ type causeway_applib_DomainObjectList__title__property { type causeway_applib_FacetGroupNode { _gql_meta: causeway_applib_FacetGroupNode__gql_meta + childNodes: causeway_applib_FacetGroupNode__childNodes__collection facets: causeway_applib_FacetGroupNode__facets__property parentNode: causeway_applib_FacetGroupNode__parentNode__property } +type causeway_applib_FacetGroupNode__childNodes__collection { + disabled: String + hidden: Boolean +} + type causeway_applib_FacetGroupNode__facets__property { disabled: String get: String! @@ -99,10 +111,16 @@ type causeway_applib_FacetGroupNode__parentNode__property { type causeway_applib_ParameterNode { _gql_meta: causeway_applib_ParameterNode__gql_meta + childNodes: causeway_applib_ParameterNode__childNodes__collection parameter: causeway_applib_ParameterNode__parameter__property parentNode: causeway_applib_ParameterNode__parentNode__property } +type causeway_applib_ParameterNode__childNodes__collection { + disabled: String + hidden: Boolean +} + type causeway_applib_ParameterNode__gql_meta { id: String! logicalTypeName: String! @@ -123,11 +141,17 @@ type causeway_applib_ParameterNode__parentNode__property { type causeway_applib_PropertyNode { _gql_meta: causeway_applib_PropertyNode__gql_meta _gql_mutations: causeway_applib_PropertyNode__gql_mutations + childNodes: causeway_applib_PropertyNode__childNodes__collection mixedIn: causeway_applib_PropertyNode__mixedIn__property parentNode: causeway_applib_PropertyNode__parentNode__property property: causeway_applib_PropertyNode__property__property } +type causeway_applib_PropertyNode__childNodes__collection { + disabled: String + hidden: Boolean +} + type causeway_applib_PropertyNode__gql_meta { id: String! logicalTypeName: String! @@ -186,10 +210,16 @@ type causeway_applib_RoleMemento__name__property { type causeway_applib_TypeNode { _gql_meta: causeway_applib_TypeNode__gql_meta + childNodes: causeway_applib_TypeNode__childNodes__collection domainClassDto: causeway_applib_TypeNode__domainClassDto__property parentNode: causeway_applib_TypeNode__parentNode__property } +type causeway_applib_TypeNode__childNodes__collection { + disabled: String + hidden: Boolean +} + type causeway_applib_TypeNode__domainClassDto__property { disabled: String get: causeway_schema_metamodel_v2_DomainClassDto! @@ -217,7 +247,7 @@ type causeway_applib_UserMemento { name: causeway_applib_UserMemento__name__property numberFormatLocale: causeway_applib_UserMemento__numberFormatLocale__property realName: causeway_applib_UserMemento__realName__property - roles: [causeway_applib_RoleMemento] + roles: causeway_applib_UserMemento__roles__collection timeFormatLocale: causeway_applib_UserMemento__timeFormatLocale__property } @@ -280,6 +310,12 @@ type causeway_applib_UserMemento__realName__property { hidden: Boolean } +type causeway_applib_UserMemento__roles__collection { + disabled: String + get: [causeway_applib_RoleMemento] + hidden: Boolean +} + type causeway_applib_UserMemento__timeFormatLocale__property { disabled: String get: String @@ -300,6 +336,7 @@ type causeway_applib_node_ActionNode { _gql_meta: causeway_applib_node_ActionNode__gql_meta _gql_mutations: causeway_applib_node_ActionNode__gql_mutations action: causeway_applib_node_ActionNode__action__property + childNodes: causeway_applib_node_ActionNode__childNodes__collection mixedIn: causeway_applib_node_ActionNode__mixedIn__property parentNode: causeway_applib_node_ActionNode__parentNode__property } @@ -310,6 +347,11 @@ type causeway_applib_node_ActionNode__action__property { hidden: Boolean } +type causeway_applib_node_ActionNode__childNodes__collection { + disabled: String + hidden: Boolean +} + type causeway_applib_node_ActionNode__gql_meta { id: String! logicalTypeName: String! @@ -340,11 +382,17 @@ type causeway_applib_node_ActionNode__streamChildNodes__action { type causeway_applib_node_CollectionNode { _gql_meta: causeway_applib_node_CollectionNode__gql_meta _gql_mutations: causeway_applib_node_CollectionNode__gql_mutations + childNodes: causeway_applib_node_CollectionNode__childNodes__collection collection: causeway_applib_node_CollectionNode__collection__property mixedIn: causeway_applib_node_CollectionNode__mixedIn__property parentNode: causeway_applib_node_CollectionNode__parentNode__property } +type causeway_applib_node_CollectionNode__childNodes__collection { + disabled: String + hidden: Boolean +} + type causeway_applib_node_CollectionNode__collection__property { disabled: String get: String! @@ -380,10 +428,16 @@ type causeway_applib_node_CollectionNode__streamChildNodes__action { type causeway_applib_node_FacetAttrNode { _gql_meta: causeway_applib_node_FacetAttrNode__gql_meta + childNodes: causeway_applib_node_FacetAttrNode__childNodes__collection facetAttr: causeway_applib_node_FacetAttrNode__facetAttr__property parentNode: causeway_applib_node_FacetAttrNode__parentNode__property } +type causeway_applib_node_FacetAttrNode__childNodes__collection { + disabled: String + hidden: Boolean +} + type causeway_applib_node_FacetAttrNode__facetAttr__property { disabled: String get: String! @@ -403,11 +457,17 @@ type causeway_applib_node_FacetAttrNode__parentNode__property { type causeway_applib_node_FacetNode { _gql_meta: causeway_applib_node_FacetNode__gql_meta + childNodes: causeway_applib_node_FacetNode__childNodes__collection facet: causeway_applib_node_FacetNode__facet__property parentNode: causeway_applib_node_FacetNode__parentNode__property shadowed: causeway_applib_node_FacetNode__shadowed__property } +type causeway_applib_node_FacetNode__childNodes__collection { + disabled: String + hidden: Boolean +} + type causeway_applib_node_FacetNode__facet__property { disabled: String get: String! @@ -465,9 +525,15 @@ type causeway_conf_ConfigurationProperty__value__property { type causeway_conf_ConfigurationViewmodel { _gql_meta: causeway_conf_ConfigurationViewmodel__gql_meta - environment: [causeway_conf_ConfigurationProperty] - primary: [causeway_conf_ConfigurationProperty] - secondary: [causeway_conf_ConfigurationProperty] + environment: causeway_conf_ConfigurationViewmodel__environment__collection + primary: causeway_conf_ConfigurationViewmodel__primary__collection + secondary: causeway_conf_ConfigurationViewmodel__secondary__collection +} + +type causeway_conf_ConfigurationViewmodel__environment__collection { + disabled: String + get: [causeway_conf_ConfigurationProperty] + hidden: Boolean } type causeway_conf_ConfigurationViewmodel__gql_meta { @@ -475,6 +541,18 @@ type causeway_conf_ConfigurationViewmodel__gql_meta { logicalTypeName: String! } +type causeway_conf_ConfigurationViewmodel__primary__collection { + disabled: String + get: [causeway_conf_ConfigurationProperty] + hidden: Boolean +} + +type causeway_conf_ConfigurationViewmodel__secondary__collection { + disabled: String + get: [causeway_conf_ConfigurationProperty] + hidden: Boolean +} + type causeway_feat_ApplicationFeatureViewModel { _gql_meta: causeway_feat_ApplicationFeatureViewModel__gql_meta memberName: causeway_feat_ApplicationFeatureViewModel__memberName__property @@ -513,12 +591,18 @@ type causeway_feat_ApplicationFeatureViewModel__typeSimpleName__property { type causeway_feat_ApplicationNamespace { _gql_meta: causeway_feat_ApplicationNamespace__gql_meta + contents: causeway_feat_ApplicationNamespace__contents__collection memberName: causeway_feat_ApplicationNamespace__memberName__property namespaceName: causeway_feat_ApplicationNamespace__namespaceName__property parent: causeway_feat_ApplicationNamespace__parent__property typeSimpleName: causeway_feat_ApplicationNamespace__typeSimpleName__property } +type causeway_feat_ApplicationNamespace__contents__collection { + disabled: String + hidden: Boolean +} + type causeway_feat_ApplicationNamespace__gql_meta { id: String! logicalTypeName: String! @@ -549,12 +633,12 @@ type causeway_feat_ApplicationNamespace__typeSimpleName__property { type causeway_feat_ApplicationType { _gql_meta: causeway_feat_ApplicationType__gql_meta - actions: [causeway_feat_ApplicationTypeAction] - collections: [causeway_feat_ApplicationTypeCollection] + actions: causeway_feat_ApplicationType__actions__collection + collections: causeway_feat_ApplicationType__collections__collection memberName: causeway_feat_ApplicationType__memberName__property namespaceName: causeway_feat_ApplicationType__namespaceName__property parent: causeway_feat_ApplicationType__parent__property - properties: [causeway_feat_ApplicationTypeProperty] + properties: causeway_feat_ApplicationType__properties__collection typeSimpleName: causeway_feat_ApplicationType__typeSimpleName__property } @@ -758,6 +842,18 @@ type causeway_feat_ApplicationTypeProperty__typicalLength__property { hidden: Boolean } +type causeway_feat_ApplicationType__actions__collection { + disabled: String + get: [causeway_feat_ApplicationTypeAction] + hidden: Boolean +} + +type causeway_feat_ApplicationType__collections__collection { + disabled: String + get: [causeway_feat_ApplicationTypeCollection] + hidden: Boolean +} + type causeway_feat_ApplicationType__gql_meta { id: String! logicalTypeName: String! @@ -780,6 +876,12 @@ type causeway_feat_ApplicationType__parent__property { hidden: Boolean } +type causeway_feat_ApplicationType__properties__collection { + disabled: String + get: [causeway_feat_ApplicationTypeProperty] + hidden: Boolean +} + type causeway_feat_ApplicationType__typeSimpleName__property { disabled: String get: String! @@ -1400,9 +1502,15 @@ type org_apache_causeway_commons_functional_Try__value__property { type org_apache_causeway_core_metamodel_inspect_model_MMNode { _gql_meta: org_apache_causeway_core_metamodel_inspect_model_MMNode__gql_meta + childNodes: org_apache_causeway_core_metamodel_inspect_model_MMNode__childNodes__collection parentNode: org_apache_causeway_core_metamodel_inspect_model_MMNode__parentNode__property } +type org_apache_causeway_core_metamodel_inspect_model_MMNode__childNodes__collection { + disabled: String + hidden: Boolean +} + type org_apache_causeway_core_metamodel_inspect_model_MMNode__gql_meta { id: String! logicalTypeName: String! @@ -1416,10 +1524,16 @@ type org_apache_causeway_core_metamodel_inspect_model_MMNode__parentNode__proper type org_apache_causeway_core_metamodel_inspect_model_MemberNode { _gql_meta: org_apache_causeway_core_metamodel_inspect_model_MemberNode__gql_meta _gql_mutations: org_apache_causeway_core_metamodel_inspect_model_MemberNode__gql_mutations + childNodes: org_apache_causeway_core_metamodel_inspect_model_MemberNode__childNodes__collection mixedIn: org_apache_causeway_core_metamodel_inspect_model_MemberNode__mixedIn__property parentNode: org_apache_causeway_core_metamodel_inspect_model_MemberNode__parentNode__property } +type org_apache_causeway_core_metamodel_inspect_model_MemberNode__childNodes__collection { + disabled: String + hidden: Boolean +} + type org_apache_causeway_core_metamodel_inspect_model_MemberNode__gql_meta { id: String! logicalTypeName: String!
