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 f82c4459d5e5d3fc5938c4909a2a57b37db9045d Author: danhaywood <[email protected]> AuthorDate: Mon Feb 12 06:40:33 2024 +0000 CAUSEWAY-3676: adds Scenario and Given --- .../graphql/model/domain/GqlvDomainObject.java | 12 +- .../graphql/model/domain/GqlvDomainService.java | 13 +- .../viewer/graphql/model/domain/GqlvScenario.java | 98 ++++++++++ .../graphql/model/domain/GqlvScenarioGiven.java} | 53 +++--- .../viewer/graphql/model/domain/Scenario.java | 9 + viewers/graphql/test/src/test/resources/schema.gql | 199 ++++++++++++++++----- .../graphql/viewer/toplevel/GqlvTopLevelQuery.java | 11 +- 7 files changed, 327 insertions(+), 68 deletions(-) diff --git a/viewers/graphql/model/src/main/java/org/apache/causeway/viewer/graphql/model/domain/GqlvDomainObject.java b/viewers/graphql/model/src/main/java/org/apache/causeway/viewer/graphql/model/domain/GqlvDomainObject.java index 11016e04b6..cc05e527bb 100644 --- a/viewers/graphql/model/src/main/java/org/apache/causeway/viewer/graphql/model/domain/GqlvDomainObject.java +++ b/viewers/graphql/model/src/main/java/org/apache/causeway/viewer/graphql/model/domain/GqlvDomainObject.java @@ -18,6 +18,7 @@ */ package org.apache.causeway.viewer.graphql.model.domain; +import java.util.LinkedHashMap; import java.util.Map; import java.util.SortedMap; import java.util.TreeMap; @@ -73,7 +74,16 @@ public class GqlvDomainObject @Getter private final GraphQLInputObjectType gqlInputObjectType; - public GqlvDomainObject( + private static Map<ObjectSpecification, GqlvDomainObject> objectByObjectSpec = new LinkedHashMap<>(); + + public static GqlvDomainObject of( + final ObjectSpecification objectSpec, + final GqlvDomainObject.Holder holder, + final Context context) { + return objectByObjectSpec.computeIfAbsent(objectSpec, x -> new GqlvDomainObject(holder, x, context)); + } + + private GqlvDomainObject( final GqlvDomainObject.Holder holder, final ObjectSpecification objectSpecification, final Context context) { diff --git a/viewers/graphql/model/src/main/java/org/apache/causeway/viewer/graphql/model/domain/GqlvDomainService.java b/viewers/graphql/model/src/main/java/org/apache/causeway/viewer/graphql/model/domain/GqlvDomainService.java index c23f5a2f4b..f7ffc3c04d 100644 --- a/viewers/graphql/model/src/main/java/org/apache/causeway/viewer/graphql/model/domain/GqlvDomainService.java +++ b/viewers/graphql/model/src/main/java/org/apache/causeway/viewer/graphql/model/domain/GqlvDomainService.java @@ -53,6 +53,7 @@ public class GqlvDomainService implements GqlvAction.Holder { @Getter private GraphQLFieldDefinition field; + String getLogicalTypeName() { return objectSpecification.getLogicalTypeName(); } @@ -64,7 +65,17 @@ public class GqlvDomainService implements GqlvAction.Holder { */ private GraphQLObjectType gqlObjectType; - public GqlvDomainService( + private static Map<ObjectSpecification, GqlvDomainService> serviceByObjectSpec = new LinkedHashMap<>(); + + public static GqlvDomainService of( + final ObjectSpecification objectSpec, + final Holder holder, + final Object servicePojo, + final Context context) { + return serviceByObjectSpec.computeIfAbsent(objectSpec, x -> new GqlvDomainService(holder, x, servicePojo, context)); + } + + private GqlvDomainService( final GqlvDomainService.Holder holder, final ObjectSpecification objectSpecification, final Object servicePojo, diff --git a/viewers/graphql/model/src/main/java/org/apache/causeway/viewer/graphql/model/domain/GqlvScenario.java b/viewers/graphql/model/src/main/java/org/apache/causeway/viewer/graphql/model/domain/GqlvScenario.java new file mode 100644 index 0000000000..162f30e505 --- /dev/null +++ b/viewers/graphql/model/src/main/java/org/apache/causeway/viewer/graphql/model/domain/GqlvScenario.java @@ -0,0 +1,98 @@ +/* + * 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 graphql.schema.DataFetcher; +import graphql.schema.FieldCoordinates; +import graphql.schema.GraphQLFieldDefinition; +import graphql.schema.GraphQLObjectType; + +import static graphql.schema.FieldCoordinates.coordinates; +import static graphql.schema.GraphQLFieldDefinition.newFieldDefinition; +import static graphql.schema.GraphQLObjectType.newObject; + +import org.apache.causeway.viewer.graphql.model.context.Context; + +import lombok.Getter; + +/** + * Exposes a domain service (view model or entity) via the GQL viewer. + */ +public class GqlvScenario implements GqlvScenarioGiven.Holder { + + private final Holder holder; + private final Context context; + + private final GraphQLObjectType.Builder gqlObjectTypeBuilder; + private final Scenario scenarioPojo; + + private final GqlvScenarioGiven scenarioGiven; + + @Getter private GraphQLFieldDefinition field; + + private GraphQLObjectType gqlObjectType; + + public GqlvScenario( + final GqlvScenario.Holder holder, + final Context context) { + this.holder = holder; + this.context = context; + + this.scenarioPojo = context.serviceRegistry.lookupService(Scenario.class).orElseThrow(); + + this.gqlObjectTypeBuilder = newObject().name("Scenario"); // TODO: probably need to change this type? + + this.scenarioGiven = new GqlvScenarioGiven(this, context); + + this.gqlObjectType = gqlObjectTypeBuilder.build(); + + this.field = new GraphQLFieldDefinition.Builder().name("Scenario").type(gqlObjectType).build(); + + holder.addField(field); + } + + + @Override + public GraphQLFieldDefinition addField(GraphQLFieldDefinition field) { + gqlObjectTypeBuilder.field(field); + return field; + } + + @Override + public FieldCoordinates coordinatesFor(GraphQLFieldDefinition fieldDefinition) { + return coordinates(gqlObjectType, fieldDefinition); + } + + public void addDataFetchers() { + context.codeRegistryBuilder.dataFetcher( + holder.coordinatesFor(getField()), + (DataFetcher<Object>) environment -> scenarioPojo); + // add + } + + + @Override + public String toString() { + return scenarioPojo.toString(); + } + + public interface Holder + extends GqlvHolder { + } +} diff --git a/viewers/graphql/viewer/src/main/java/org/apache/causeway/viewer/graphql/viewer/toplevel/GqlvTopLevelQuery.java b/viewers/graphql/model/src/main/java/org/apache/causeway/viewer/graphql/model/domain/GqlvScenarioGiven.java similarity index 63% copy from viewers/graphql/viewer/src/main/java/org/apache/causeway/viewer/graphql/viewer/toplevel/GqlvTopLevelQuery.java copy to viewers/graphql/model/src/main/java/org/apache/causeway/viewer/graphql/model/domain/GqlvScenarioGiven.java index dfff9fe35c..c16b4629e0 100644 --- a/viewers/graphql/viewer/src/main/java/org/apache/causeway/viewer/graphql/viewer/toplevel/GqlvTopLevelQuery.java +++ b/viewers/graphql/model/src/main/java/org/apache/causeway/viewer/graphql/model/domain/GqlvScenarioGiven.java @@ -1,31 +1,38 @@ -package org.apache.causeway.viewer.graphql.viewer.toplevel; - -import java.util.ArrayList; -import java.util.List; +package org.apache.causeway.viewer.graphql.model.domain; import graphql.schema.FieldCoordinates; import graphql.schema.GraphQLFieldDefinition; import graphql.schema.GraphQLObjectType; -import static graphql.schema.GraphQLObjectType.newObject; +import lombok.Getter; +import java.util.ArrayList; +import java.util.List; +import java.util.Objects; + +import org.apache.causeway.applib.services.metamodel.BeanSort; import org.apache.causeway.viewer.graphql.model.context.Context; -import org.apache.causeway.viewer.graphql.model.domain.GqlvDomainObject; -import org.apache.causeway.viewer.graphql.model.domain.GqlvDomainService; -import lombok.Getter; +import static graphql.schema.GraphQLObjectType.newObject; -public class GqlvTopLevelQuery implements GqlvDomainService.Holder, GqlvDomainObject.Holder { +public class GqlvScenarioGiven implements GqlvDomainService.Holder, GqlvDomainObject.Holder { - private static final String OBJECT_TYPE_NAME = "Query"; + private static final String OBJECT_TYPE_NAME = "Given"; final GraphQLObjectType.Builder objectTypeBuilder; @Getter private final GraphQLObjectType objectType; + private final Holder holder; + private final GraphQLFieldDefinition field; + private final List<GqlvDomainService> domainServices = new ArrayList<>(); private final List<GqlvDomainObject> domainObjects = new ArrayList<>(); - public GqlvTopLevelQuery(final Context context) { + public GqlvScenarioGiven( + final GqlvScenarioGiven.Holder holder, + final Context context) { + + this.holder = holder; this.objectTypeBuilder = newObject().name(OBJECT_TYPE_NAME); @@ -36,7 +43,7 @@ public class GqlvTopLevelQuery implements GqlvDomainService.Holder, GqlvDomainOb case VIEW_MODEL: // @DomainObject(nature=VIEW_MODEL) case ENTITY: // @DomainObject(nature=ENTITY) - domainObjects.add(new GqlvDomainObject(this, objectSpec, context)); + domainObjects.add(GqlvDomainObject.of(objectSpec, this, context)); break; } @@ -44,13 +51,11 @@ public class GqlvTopLevelQuery implements GqlvDomainService.Holder, GqlvDomainOb // add services to top-level query context.objectSpecifications().forEach(objectSpec -> { - switch (objectSpec.getBeanSort()) { - case MANAGED_BEAN_CONTRIBUTING: // @DomainService - context.serviceRegistry.lookupBeanById(objectSpec.getLogicalTypeName()) - .ifPresent(servicePojo -> { - domainServices.add(new GqlvDomainService(this, objectSpec, servicePojo, context)); - }); - break; + if (Objects.requireNonNull(objectSpec.getBeanSort()) == BeanSort.MANAGED_BEAN_CONTRIBUTING) { // @DomainService + context.serviceRegistry.lookupBeanById(objectSpec.getLogicalTypeName()) + .ifPresent(servicePojo -> { + domainServices.add(GqlvDomainService.of(objectSpec, this, servicePojo, context)); + }); } }); @@ -59,13 +64,17 @@ public class GqlvTopLevelQuery implements GqlvDomainService.Holder, GqlvDomainOb addField(domainObject.getLookupField()); } + objectType = objectTypeBuilder.build(); + + this.field = GraphQLFieldDefinition.newFieldDefinition().name("Given").type(objectType).build(); + this.holder.addField(field); } @Override public FieldCoordinates coordinatesFor(GraphQLFieldDefinition fieldDefinition) { - return FieldCoordinates.coordinates(OBJECT_TYPE_NAME, fieldDefinition.getName()); + return FieldCoordinates.coordinates(objectType, fieldDefinition); } @Override @@ -84,8 +93,10 @@ public class GqlvTopLevelQuery implements GqlvDomainService.Holder, GqlvDomainOb domainObjects.forEach(GqlvDomainObject::addDataFetchers); - } + public interface Holder + extends GqlvHolder { + } } diff --git a/viewers/graphql/model/src/main/java/org/apache/causeway/viewer/graphql/model/domain/Scenario.java b/viewers/graphql/model/src/main/java/org/apache/causeway/viewer/graphql/model/domain/Scenario.java new file mode 100644 index 0000000000..0b67dbddcb --- /dev/null +++ b/viewers/graphql/model/src/main/java/org/apache/causeway/viewer/graphql/model/domain/Scenario.java @@ -0,0 +1,9 @@ +package org.apache.causeway.viewer.graphql.model.domain; + +import org.apache.causeway.applib.annotation.InteractionScope; + +import org.springframework.stereotype.Service; + +@Service +public class Scenario { +} diff --git a/viewers/graphql/test/src/test/resources/schema.gql b/viewers/graphql/test/src/test/resources/schema.gql index b7d6eb65ee..ab93b891dd 100644 --- a/viewers/graphql/test/src/test/resources/schema.gql +++ b/viewers/graphql/test/src/test/resources/schema.gql @@ -22,51 +22,48 @@ directive @specifiedBy( url: String! ) on SCALAR -type Mutation { - causeway_applib_PropertyNode__mixedIn(_gqlv_target: causeway_applib_PropertyNode__gqlv_input, mixedIn: Boolean!): causeway_applib_PropertyNode - causeway_applib_node_ActionNode__mixedIn(_gqlv_target: causeway_applib_node_ActionNode__gqlv_input, mixedIn: Boolean!): causeway_applib_node_ActionNode - causeway_applib_node_CollectionNode__mixedIn(_gqlv_target: causeway_applib_node_CollectionNode__gqlv_input, mixedIn: Boolean!): causeway_applib_node_CollectionNode - causeway_applib_node_FacetNode__shadowed(_gqlv_target: causeway_applib_node_FacetNode__gqlv_input, shadowed: Boolean!): causeway_applib_node_FacetNode - causeway_conf_ConfigurationProperty__key(_gqlv_target: causeway_conf_ConfigurationProperty__gqlv_input, key: String!): causeway_conf_ConfigurationProperty - causeway_conf_ConfigurationProperty__value(_gqlv_target: causeway_conf_ConfigurationProperty__gqlv_input, value: String!): causeway_conf_ConfigurationProperty - causeway_schema_metamodel_v2_DomainClassDto__actions(_gqlv_target: causeway_schema_metamodel_v2_DomainClassDto__gqlv_input, actions: String!): causeway_schema_metamodel_v2_DomainClassDto - causeway_schema_metamodel_v2_DomainClassDto__annotations(_gqlv_target: causeway_schema_metamodel_v2_DomainClassDto__gqlv_input, annotations: String!): causeway_schema_metamodel_v2_DomainClassDto - causeway_schema_metamodel_v2_DomainClassDto__collections(_gqlv_target: causeway_schema_metamodel_v2_DomainClassDto__gqlv_input, collections: String!): causeway_schema_metamodel_v2_DomainClassDto - causeway_schema_metamodel_v2_DomainClassDto__facets(_gqlv_target: causeway_schema_metamodel_v2_DomainClassDto__gqlv_input, facets: String!): causeway_schema_metamodel_v2_DomainClassDto - causeway_schema_metamodel_v2_DomainClassDto__id(_gqlv_target: causeway_schema_metamodel_v2_DomainClassDto__gqlv_input, id: String!): causeway_schema_metamodel_v2_DomainClassDto - causeway_schema_metamodel_v2_DomainClassDto__majorVersion(_gqlv_target: causeway_schema_metamodel_v2_DomainClassDto__gqlv_input, majorVersion: String): causeway_schema_metamodel_v2_DomainClassDto - causeway_schema_metamodel_v2_DomainClassDto__minorVersion(_gqlv_target: causeway_schema_metamodel_v2_DomainClassDto__gqlv_input, minorVersion: String): causeway_schema_metamodel_v2_DomainClassDto - causeway_schema_metamodel_v2_DomainClassDto__properties(_gqlv_target: causeway_schema_metamodel_v2_DomainClassDto__gqlv_input, properties: String!): causeway_schema_metamodel_v2_DomainClassDto - causeway_schema_metamodel_v2_DomainClassDto__service(_gqlv_target: causeway_schema_metamodel_v2_DomainClassDto__gqlv_input, service: Boolean!): causeway_schema_metamodel_v2_DomainClassDto - causeway_testing_fixtures_FixtureResult__fixtureScriptClassName(_gqlv_target: causeway_testing_fixtures_FixtureResult__gqlv_input, fixtureScriptClassName: String): causeway_testing_fixtures_FixtureResult - causeway_testing_fixtures_FixtureResult__key(_gqlv_target: causeway_testing_fixtures_FixtureResult__gqlv_input, key: String!): causeway_testing_fixtures_FixtureResult - causeway_testing_fixtures_FixtureResult__object(_gqlv_target: causeway_testing_fixtures_FixtureResult__gqlv_input, object: String!): causeway_testing_fixtures_FixtureResult - org_apache_causeway_core_metamodel_inspect_model_MemberNode__mixedIn(_gqlv_target: org_apache_causeway_core_metamodel_inspect_model_MemberNode__gqlv_input, mixedIn: Boolean!): org_apache_causeway_core_metamodel_inspect_model_MemberNode - org_apache_causeway_testing_fixtures_applib_fixturescripts_FixtureScript__friendlyName(_gqlv_target: org_apache_causeway_testing_fixtures_applib_fixturescripts_FixtureScript__gqlv_input, friendlyName: String!): org_apache_causeway_testing_fixtures_applib_fixturescripts_FixtureScript - university_admin_AdminMenu__actionWithDisabledParam(firstParam: String!, secondParam: String!, thirdParameter: String!): String - university_admin_AdminMenu__actionWithHiddenParam(firstParam: String!, secondParam: String!): String - university_admin_AdminMenu__adminAction: String - university_admin_AdminMenu__otherAdminAction: String - university_dept_Department__addStaffMember(_gqlv_target: university_dept_Department__gqlv_input, staffMember: university_dept_StaffMember__gqlv_input!): university_dept_Department - university_dept_Department__addStaffMembers(_gqlv_target: university_dept_Department__gqlv_input, staffMembers: [university_dept_StaffMember__gqlv_input]): university_dept_Department - university_dept_Department__changeDeptHead(_gqlv_target: university_dept_Department__gqlv_input, newDeptHead: university_dept_DeptHead__gqlv_input!): university_dept_Department - university_dept_Department__changeName(_gqlv_target: university_dept_Department__gqlv_input, newName: String!): university_dept_Department - university_dept_Department__deptHead(_gqlv_target: university_dept_Department__gqlv_input, deptHead: university_dept_DeptHead__gqlv_input): university_dept_Department - university_dept_Department__name(_gqlv_target: university_dept_Department__gqlv_input, name: String!): university_dept_Department - university_dept_Department__removeStaffMember(_gqlv_target: university_dept_Department__gqlv_input, staffMember: university_dept_StaffMember__gqlv_input!): university_dept_Department - university_dept_Departments__createDepartment(deptHead: university_dept_DeptHead__gqlv_input, name: String!): university_dept_Department - university_dept_DeptHead__changeDepartment(_gqlv_target: university_dept_DeptHead__gqlv_input, department: university_dept_Department__gqlv_input!): university_dept_DeptHead - university_dept_DeptHead__changeName(_gqlv_target: university_dept_DeptHead__gqlv_input, newName: String!): university_dept_DeptHead - university_dept_DeptHead__department(_gqlv_target: university_dept_DeptHead__gqlv_input, department: university_dept_Department__gqlv_input): university_dept_DeptHead - university_dept_DeptHead__name(_gqlv_target: university_dept_DeptHead__gqlv_input, name: String): university_dept_DeptHead - university_dept_StaffMember__department(_gqlv_target: university_dept_StaffMember__gqlv_input, department: university_dept_Department__gqlv_input): university_dept_StaffMember - university_dept_StaffMember__grade(_gqlv_target: university_dept_StaffMember__gqlv_input, grade: String!): university_dept_StaffMember - university_dept_StaffMember__name(_gqlv_target: university_dept_StaffMember__gqlv_input, name: String!): university_dept_StaffMember - university_dept_StaffMember__photo(_gqlv_target: university_dept_StaffMember__gqlv_input, photo: String): university_dept_StaffMember - university_dept_Staff__createStaffMember(department: university_dept_Department__gqlv_input!, name: String!): university_dept_StaffMember +type Given { + _gqlv_lookup__causeway_applib_DomainObjectList(object: causeway_applib_DomainObjectList__gqlv_input): causeway_applib_DomainObjectList + _gqlv_lookup__causeway_applib_FacetGroupNode(object: causeway_applib_FacetGroupNode__gqlv_input): causeway_applib_FacetGroupNode + _gqlv_lookup__causeway_applib_ParameterNode(object: causeway_applib_ParameterNode__gqlv_input): causeway_applib_ParameterNode + _gqlv_lookup__causeway_applib_PropertyNode(object: causeway_applib_PropertyNode__gqlv_input): causeway_applib_PropertyNode + _gqlv_lookup__causeway_applib_RoleMemento(object: causeway_applib_RoleMemento__gqlv_input): causeway_applib_RoleMemento + _gqlv_lookup__causeway_applib_TypeNode(object: causeway_applib_TypeNode__gqlv_input): causeway_applib_TypeNode + _gqlv_lookup__causeway_applib_UserMemento(object: causeway_applib_UserMemento__gqlv_input): causeway_applib_UserMemento + _gqlv_lookup__causeway_applib_node_ActionNode(object: causeway_applib_node_ActionNode__gqlv_input): causeway_applib_node_ActionNode + _gqlv_lookup__causeway_applib_node_CollectionNode(object: causeway_applib_node_CollectionNode__gqlv_input): causeway_applib_node_CollectionNode + _gqlv_lookup__causeway_applib_node_FacetAttrNode(object: causeway_applib_node_FacetAttrNode__gqlv_input): causeway_applib_node_FacetAttrNode + _gqlv_lookup__causeway_applib_node_FacetNode(object: causeway_applib_node_FacetNode__gqlv_input): causeway_applib_node_FacetNode + _gqlv_lookup__causeway_conf_ConfigurationProperty(object: causeway_conf_ConfigurationProperty__gqlv_input): causeway_conf_ConfigurationProperty + _gqlv_lookup__causeway_conf_ConfigurationViewmodel(object: causeway_conf_ConfigurationViewmodel__gqlv_input): causeway_conf_ConfigurationViewmodel + _gqlv_lookup__causeway_feat_ApplicationFeatureViewModel(object: causeway_feat_ApplicationFeatureViewModel__gqlv_input): causeway_feat_ApplicationFeatureViewModel + _gqlv_lookup__causeway_feat_ApplicationNamespace(object: causeway_feat_ApplicationNamespace__gqlv_input): causeway_feat_ApplicationNamespace + _gqlv_lookup__causeway_feat_ApplicationType(object: causeway_feat_ApplicationType__gqlv_input): causeway_feat_ApplicationType + _gqlv_lookup__causeway_feat_ApplicationTypeAction(object: causeway_feat_ApplicationTypeAction__gqlv_input): causeway_feat_ApplicationTypeAction + _gqlv_lookup__causeway_feat_ApplicationTypeCollection(object: causeway_feat_ApplicationTypeCollection__gqlv_input): causeway_feat_ApplicationTypeCollection + _gqlv_lookup__causeway_feat_ApplicationTypeMember(object: causeway_feat_ApplicationTypeMember__gqlv_input): causeway_feat_ApplicationTypeMember + _gqlv_lookup__causeway_feat_ApplicationTypeProperty(object: causeway_feat_ApplicationTypeProperty__gqlv_input): causeway_feat_ApplicationTypeProperty + _gqlv_lookup__causeway_schema_metamodel_v2_DomainClassDto(object: causeway_schema_metamodel_v2_DomainClassDto__gqlv_input): causeway_schema_metamodel_v2_DomainClassDto + _gqlv_lookup__causeway_security_LoginRedirect(object: causeway_security_LoginRedirect__gqlv_input): causeway_security_LoginRedirect + _gqlv_lookup__causeway_testing_fixtures_FixtureResult(object: causeway_testing_fixtures_FixtureResult__gqlv_input): causeway_testing_fixtures_FixtureResult + _gqlv_lookup__java_lang_Runnable(object: java_lang_Runnable__gqlv_input): java_lang_Runnable + _gqlv_lookup__java_util_Map(object: java_util_Map__gqlv_input): java_util_Map + _gqlv_lookup__java_util_SortedMap(object: java_util_SortedMap__gqlv_input): java_util_SortedMap + _gqlv_lookup__java_util_concurrent_Callable(object: java_util_concurrent_Callable__gqlv_input): java_util_concurrent_Callable + _gqlv_lookup__java_util_function_BiFunction(object: java_util_function_BiFunction__gqlv_input): java_util_function_BiFunction + _gqlv_lookup__java_util_function_Consumer(object: java_util_function_Consumer__gqlv_input): java_util_function_Consumer + _gqlv_lookup__java_util_function_Function(object: java_util_function_Function__gqlv_input): java_util_function_Function + _gqlv_lookup__java_util_stream_Stream(object: java_util_stream_Stream__gqlv_input): java_util_stream_Stream + _gqlv_lookup__org_apache_causeway_core_metamodel_inspect_model_MMNode(object: org_apache_causeway_core_metamodel_inspect_model_MMNode__gqlv_input): org_apache_causeway_core_metamodel_inspect_model_MMNode + _gqlv_lookup__org_apache_causeway_core_metamodel_inspect_model_MemberNode(object: org_apache_causeway_core_metamodel_inspect_model_MemberNode__gqlv_input): org_apache_causeway_core_metamodel_inspect_model_MemberNode + _gqlv_lookup__org_apache_causeway_testing_fixtures_applib_fixturescripts_FixtureScript(object: org_apache_causeway_testing_fixtures_applib_fixturescripts_FixtureScript__gqlv_input): org_apache_causeway_testing_fixtures_applib_fixturescripts_FixtureScript + _gqlv_lookup__university_dept_Department(object: university_dept_Department__gqlv_input): university_dept_Department + _gqlv_lookup__university_dept_DeptHead(object: university_dept_DeptHead__gqlv_input): university_dept_DeptHead + _gqlv_lookup__university_dept_StaffMember(object: university_dept_StaffMember__gqlv_input): university_dept_StaffMember } type Query { + Scenario: Scenario _gqlv_lookup__causeway_applib_DomainObjectList(object: causeway_applib_DomainObjectList__gqlv_input): causeway_applib_DomainObjectList _gqlv_lookup__causeway_applib_FacetGroupNode(object: causeway_applib_FacetGroupNode__gqlv_input): causeway_applib_FacetGroupNode _gqlv_lookup__causeway_applib_ParameterNode(object: causeway_applib_ParameterNode__gqlv_input): causeway_applib_ParameterNode @@ -114,6 +111,10 @@ type Query { university_dept_Staff: university_dept_Staff } +type Scenario { + Given: Given +} + type causeway_applib_DomainObjectList { _gqlv_meta: causeway_applib_DomainObjectList__gqlv_meta actionArguments: causeway_applib_DomainObjectList__actionArguments__gqlv_property @@ -128,6 +129,7 @@ type causeway_applib_DomainObjectList__actionArguments__gqlv_property { disabled: String get: String hidden: Boolean + set(actionArguments: String): causeway_applib_DomainObjectList validate(actionArguments: String): String } @@ -135,6 +137,7 @@ type causeway_applib_DomainObjectList__actionId__gqlv_property { disabled: String get: String hidden: Boolean + set(actionId: String): causeway_applib_DomainObjectList validate(actionId: String): String } @@ -142,6 +145,7 @@ type causeway_applib_DomainObjectList__actionOwningFqcn__gqlv_property { disabled: String get: String hidden: Boolean + set(actionOwningFqcn: String): causeway_applib_DomainObjectList validate(actionOwningFqcn: String): String } @@ -149,6 +153,7 @@ type causeway_applib_DomainObjectList__elementTypeFqcn__gqlv_property { disabled: String get: String! hidden: Boolean + set(elementTypeFqcn: String!): causeway_applib_DomainObjectList validate(elementTypeFqcn: String): String } @@ -166,6 +171,7 @@ type causeway_applib_DomainObjectList__title__gqlv_property { disabled: String get: String! hidden: Boolean + set(title: String!): causeway_applib_DomainObjectList validate(title: String): String } @@ -185,6 +191,7 @@ type causeway_applib_FacetGroupNode__facets__gqlv_property { disabled: String get: String! hidden: Boolean + set(facets: String!): causeway_applib_FacetGroupNode validate(facets: String): String } @@ -196,6 +203,7 @@ type causeway_applib_FacetGroupNode__gqlv_meta { type causeway_applib_FacetGroupNode__parentNode__gqlv_property { disabled: String hidden: Boolean + set(parentNode: org_apache_causeway_core_metamodel_inspect_model_MMNode__gqlv_input!): causeway_applib_FacetGroupNode validate(parentNode: org_apache_causeway_core_metamodel_inspect_model_MMNode__gqlv_input): String } @@ -220,6 +228,7 @@ type causeway_applib_ParameterNode__parameter__gqlv_property { disabled: String get: String! hidden: Boolean + set(parameter: String!): causeway_applib_ParameterNode validate(parameter: String): String } @@ -227,6 +236,7 @@ type causeway_applib_ParameterNode__parentNode__gqlv_property { disabled: String get: causeway_applib_node_ActionNode! hidden: Boolean + set(parentNode: causeway_applib_node_ActionNode__gqlv_input!): causeway_applib_ParameterNode validate(parentNode: causeway_applib_node_ActionNode__gqlv_input): String } @@ -252,6 +262,7 @@ type causeway_applib_PropertyNode__mixedIn__gqlv_property { disabled: String get: Boolean! hidden: Boolean + set(mixedIn: Boolean!): causeway_applib_PropertyNode validate(mixedIn: Boolean): String } @@ -259,6 +270,7 @@ type causeway_applib_PropertyNode__parentNode__gqlv_property { disabled: String get: causeway_applib_TypeNode! hidden: Boolean + set(parentNode: causeway_applib_TypeNode__gqlv_input!): causeway_applib_PropertyNode validate(parentNode: causeway_applib_TypeNode__gqlv_input): String } @@ -266,6 +278,7 @@ type causeway_applib_PropertyNode__property__gqlv_property { disabled: String get: String! hidden: Boolean + set(property: String!): causeway_applib_PropertyNode validate(property: String): String } @@ -279,6 +292,7 @@ type causeway_applib_RoleMemento__description__gqlv_property { disabled: String get: String! hidden: Boolean + set(description: String!): causeway_applib_RoleMemento validate(description: String): String } @@ -291,6 +305,7 @@ type causeway_applib_RoleMemento__name__gqlv_property { disabled: String get: String! hidden: Boolean + set(name: String!): causeway_applib_RoleMemento validate(name: String): String } @@ -310,6 +325,7 @@ type causeway_applib_TypeNode__domainClassDto__gqlv_property { disabled: String get: causeway_schema_metamodel_v2_DomainClassDto! hidden: Boolean + set(domainClassDto: causeway_schema_metamodel_v2_DomainClassDto__gqlv_input!): causeway_applib_TypeNode validate(domainClassDto: causeway_schema_metamodel_v2_DomainClassDto__gqlv_input): String } @@ -321,6 +337,7 @@ type causeway_applib_TypeNode__gqlv_meta { type causeway_applib_TypeNode__parentNode__gqlv_property { disabled: String hidden: Boolean + set(parentNode: org_apache_causeway_core_metamodel_inspect_model_MMNode__gqlv_input!): causeway_applib_TypeNode validate(parentNode: org_apache_causeway_core_metamodel_inspect_model_MMNode__gqlv_input): String } @@ -343,6 +360,7 @@ type causeway_applib_UserMemento__authenticationCode__gqlv_property { disabled: String get: String! hidden: Boolean + set(authenticationCode: String!): causeway_applib_UserMemento validate(authenticationCode: String): String } @@ -351,6 +369,7 @@ type causeway_applib_UserMemento__authenticationSource__gqlv_property { disabled: String get: String! hidden: Boolean + set(authenticationSource: String!): causeway_applib_UserMemento validate(authenticationSource: String): String } @@ -358,6 +377,7 @@ type causeway_applib_UserMemento__avatarUrl__gqlv_property { disabled: String get: String hidden: Boolean + set(avatarUrl: String): causeway_applib_UserMemento validate(avatarUrl: String): String } @@ -370,6 +390,7 @@ type causeway_applib_UserMemento__impersonating__gqlv_property { disabled: String get: Boolean! hidden: Boolean + set(impersonating: Boolean!): causeway_applib_UserMemento validate(impersonating: Boolean): String } @@ -377,6 +398,7 @@ type causeway_applib_UserMemento__languageLocale__gqlv_property { disabled: String get: String hidden: Boolean + set(languageLocale: String): causeway_applib_UserMemento validate(languageLocale: String): String } @@ -384,6 +406,7 @@ type causeway_applib_UserMemento__multiTenancyToken__gqlv_property { disabled: String get: String hidden: Boolean + set(multiTenancyToken: String): causeway_applib_UserMemento validate(multiTenancyToken: String): String } @@ -391,6 +414,7 @@ type causeway_applib_UserMemento__name__gqlv_property { disabled: String get: String! hidden: Boolean + set(name: String!): causeway_applib_UserMemento validate(name: String): String } @@ -398,6 +422,7 @@ type causeway_applib_UserMemento__numberFormatLocale__gqlv_property { disabled: String get: String hidden: Boolean + set(numberFormatLocale: String): causeway_applib_UserMemento validate(numberFormatLocale: String): String } @@ -405,6 +430,7 @@ type causeway_applib_UserMemento__realName__gqlv_property { disabled: String get: String hidden: Boolean + set(realName: String): causeway_applib_UserMemento validate(realName: String): String } @@ -418,6 +444,7 @@ type causeway_applib_UserMemento__timeFormatLocale__gqlv_property { disabled: String get: String hidden: Boolean + set(timeFormatLocale: String): causeway_applib_UserMemento validate(timeFormatLocale: String): String } @@ -444,6 +471,7 @@ type causeway_applib_node_ActionNode__action__gqlv_property { disabled: String get: String! hidden: Boolean + set(action: String!): causeway_applib_node_ActionNode validate(action: String): String } @@ -461,6 +489,7 @@ type causeway_applib_node_ActionNode__mixedIn__gqlv_property { disabled: String get: Boolean! hidden: Boolean + set(mixedIn: Boolean!): causeway_applib_node_ActionNode validate(mixedIn: Boolean): String } @@ -468,6 +497,7 @@ type causeway_applib_node_ActionNode__parentNode__gqlv_property { disabled: String get: causeway_applib_TypeNode! hidden: Boolean + set(parentNode: causeway_applib_TypeNode__gqlv_input!): causeway_applib_node_ActionNode validate(parentNode: causeway_applib_TypeNode__gqlv_input): String } @@ -488,6 +518,7 @@ type causeway_applib_node_CollectionNode__collection__gqlv_property { disabled: String get: String! hidden: Boolean + set(collection: String!): causeway_applib_node_CollectionNode validate(collection: String): String } @@ -500,6 +531,7 @@ type causeway_applib_node_CollectionNode__mixedIn__gqlv_property { disabled: String get: Boolean! hidden: Boolean + set(mixedIn: Boolean!): causeway_applib_node_CollectionNode validate(mixedIn: Boolean): String } @@ -507,6 +539,7 @@ type causeway_applib_node_CollectionNode__parentNode__gqlv_property { disabled: String get: causeway_applib_TypeNode! hidden: Boolean + set(parentNode: causeway_applib_TypeNode__gqlv_input!): causeway_applib_node_CollectionNode validate(parentNode: causeway_applib_TypeNode__gqlv_input): String } @@ -526,6 +559,7 @@ type causeway_applib_node_FacetAttrNode__facetAttr__gqlv_property { disabled: String get: String! hidden: Boolean + set(facetAttr: String!): causeway_applib_node_FacetAttrNode validate(facetAttr: String): String } @@ -538,6 +572,7 @@ type causeway_applib_node_FacetAttrNode__parentNode__gqlv_property { disabled: String get: causeway_applib_node_FacetNode! hidden: Boolean + set(parentNode: causeway_applib_node_FacetNode__gqlv_input!): causeway_applib_node_FacetAttrNode validate(parentNode: causeway_applib_node_FacetNode__gqlv_input): String } @@ -558,6 +593,7 @@ type causeway_applib_node_FacetNode__facet__gqlv_property { disabled: String get: String! hidden: Boolean + set(facet: String!): causeway_applib_node_FacetNode validate(facet: String): String } @@ -569,6 +605,7 @@ type causeway_applib_node_FacetNode__gqlv_meta { type causeway_applib_node_FacetNode__parentNode__gqlv_property { disabled: String hidden: Boolean + set(parentNode: org_apache_causeway_core_metamodel_inspect_model_MMNode__gqlv_input!): causeway_applib_node_FacetNode validate(parentNode: org_apache_causeway_core_metamodel_inspect_model_MMNode__gqlv_input): String } @@ -576,6 +613,7 @@ type causeway_applib_node_FacetNode__shadowed__gqlv_property { disabled: String get: Boolean! hidden: Boolean + set(shadowed: Boolean!): causeway_applib_node_FacetNode validate(shadowed: Boolean): String } @@ -605,6 +643,7 @@ type causeway_conf_ConfigurationProperty__key__gqlv_property { disabled: String get: String! hidden: Boolean + set(key: String!): causeway_conf_ConfigurationProperty validate(key: String): String } @@ -612,6 +651,7 @@ type causeway_conf_ConfigurationProperty__value__gqlv_property { disabled: String get: String! hidden: Boolean + set(value: String!): causeway_conf_ConfigurationProperty validate(value: String): String } @@ -662,6 +702,7 @@ type causeway_feat_ApplicationFeatureViewModel__memberName__gqlv_property { disabled: String get: String! hidden: Boolean + set(memberName: String!): causeway_feat_ApplicationFeatureViewModel validate(memberName: String): String } @@ -669,12 +710,14 @@ type causeway_feat_ApplicationFeatureViewModel__namespaceName__gqlv_property { disabled: String get: String! hidden: Boolean + set(namespaceName: String!): causeway_feat_ApplicationFeatureViewModel validate(namespaceName: String): String } type causeway_feat_ApplicationFeatureViewModel__parent__gqlv_property { disabled: String hidden: Boolean + set(parent: causeway_feat_ApplicationFeatureViewModel__gqlv_input!): causeway_feat_ApplicationFeatureViewModel validate(parent: causeway_feat_ApplicationFeatureViewModel__gqlv_input): String } @@ -682,6 +725,7 @@ type causeway_feat_ApplicationFeatureViewModel__typeSimpleName__gqlv_property { disabled: String get: String! hidden: Boolean + set(typeSimpleName: String!): causeway_feat_ApplicationFeatureViewModel validate(typeSimpleName: String): String } @@ -708,6 +752,7 @@ type causeway_feat_ApplicationNamespace__memberName__gqlv_property { disabled: String get: String! hidden: Boolean + set(memberName: String!): causeway_feat_ApplicationNamespace validate(memberName: String): String } @@ -715,12 +760,14 @@ type causeway_feat_ApplicationNamespace__namespaceName__gqlv_property { disabled: String get: String! hidden: Boolean + set(namespaceName: String!): causeway_feat_ApplicationNamespace validate(namespaceName: String): String } type causeway_feat_ApplicationNamespace__parent__gqlv_property { disabled: String hidden: Boolean + set(parent: causeway_feat_ApplicationFeatureViewModel__gqlv_input!): causeway_feat_ApplicationNamespace validate(parent: causeway_feat_ApplicationFeatureViewModel__gqlv_input): String } @@ -728,6 +775,7 @@ type causeway_feat_ApplicationNamespace__typeSimpleName__gqlv_property { disabled: String get: String! hidden: Boolean + set(typeSimpleName: String!): causeway_feat_ApplicationNamespace validate(typeSimpleName: String): String } @@ -757,6 +805,7 @@ type causeway_feat_ApplicationTypeAction__actionSemantics__gqlv_property { disabled: String get: String! hidden: Boolean + set(actionSemantics: String!): causeway_feat_ApplicationTypeAction validate(actionSemantics: String): String } @@ -769,6 +818,7 @@ type causeway_feat_ApplicationTypeAction__memberName__gqlv_property { disabled: String get: String! hidden: Boolean + set(memberName: String!): causeway_feat_ApplicationTypeAction validate(memberName: String): String } @@ -776,12 +826,14 @@ type causeway_feat_ApplicationTypeAction__namespaceName__gqlv_property { disabled: String get: String! hidden: Boolean + set(namespaceName: String!): causeway_feat_ApplicationTypeAction validate(namespaceName: String): String } type causeway_feat_ApplicationTypeAction__parent__gqlv_property { disabled: String hidden: Boolean + set(parent: causeway_feat_ApplicationFeatureViewModel__gqlv_input!): causeway_feat_ApplicationTypeAction validate(parent: causeway_feat_ApplicationFeatureViewModel__gqlv_input): String } @@ -789,6 +841,7 @@ type causeway_feat_ApplicationTypeAction__returnType__gqlv_property { disabled: String get: String! hidden: Boolean + set(returnType: String!): causeway_feat_ApplicationTypeAction validate(returnType: String): String } @@ -796,6 +849,7 @@ type causeway_feat_ApplicationTypeAction__typeSimpleName__gqlv_property { disabled: String get: String! hidden: Boolean + set(typeSimpleName: String!): causeway_feat_ApplicationTypeAction validate(typeSimpleName: String): String } @@ -813,6 +867,7 @@ type causeway_feat_ApplicationTypeCollection__derived__gqlv_property { disabled: String get: Boolean! hidden: Boolean + set(derived: Boolean!): causeway_feat_ApplicationTypeCollection validate(derived: Boolean): String } @@ -820,6 +875,7 @@ type causeway_feat_ApplicationTypeCollection__elementType__gqlv_property { disabled: String get: String! hidden: Boolean + set(elementType: String!): causeway_feat_ApplicationTypeCollection validate(elementType: String): String } @@ -832,6 +888,7 @@ type causeway_feat_ApplicationTypeCollection__memberName__gqlv_property { disabled: String get: String! hidden: Boolean + set(memberName: String!): causeway_feat_ApplicationTypeCollection validate(memberName: String): String } @@ -839,12 +896,14 @@ type causeway_feat_ApplicationTypeCollection__namespaceName__gqlv_property { disabled: String get: String! hidden: Boolean + set(namespaceName: String!): causeway_feat_ApplicationTypeCollection validate(namespaceName: String): String } type causeway_feat_ApplicationTypeCollection__parent__gqlv_property { disabled: String hidden: Boolean + set(parent: causeway_feat_ApplicationFeatureViewModel__gqlv_input!): causeway_feat_ApplicationTypeCollection validate(parent: causeway_feat_ApplicationFeatureViewModel__gqlv_input): String } @@ -852,6 +911,7 @@ type causeway_feat_ApplicationTypeCollection__typeSimpleName__gqlv_property { disabled: String get: String! hidden: Boolean + set(typeSimpleName: String!): causeway_feat_ApplicationTypeCollection validate(typeSimpleName: String): String } @@ -872,6 +932,7 @@ type causeway_feat_ApplicationTypeMember__memberName__gqlv_property { disabled: String get: String! hidden: Boolean + set(memberName: String!): causeway_feat_ApplicationTypeMember validate(memberName: String): String } @@ -879,12 +940,14 @@ type causeway_feat_ApplicationTypeMember__namespaceName__gqlv_property { disabled: String get: String! hidden: Boolean + set(namespaceName: String!): causeway_feat_ApplicationTypeMember validate(namespaceName: String): String } type causeway_feat_ApplicationTypeMember__parent__gqlv_property { disabled: String hidden: Boolean + set(parent: causeway_feat_ApplicationFeatureViewModel__gqlv_input!): causeway_feat_ApplicationTypeMember validate(parent: causeway_feat_ApplicationFeatureViewModel__gqlv_input): String } @@ -892,6 +955,7 @@ type causeway_feat_ApplicationTypeMember__typeSimpleName__gqlv_property { disabled: String get: String! hidden: Boolean + set(typeSimpleName: String!): causeway_feat_ApplicationTypeMember validate(typeSimpleName: String): String } @@ -911,6 +975,7 @@ type causeway_feat_ApplicationTypeProperty__derived__gqlv_property { disabled: String get: Boolean! hidden: Boolean + set(derived: Boolean!): causeway_feat_ApplicationTypeProperty validate(derived: Boolean): String } @@ -923,6 +988,7 @@ type causeway_feat_ApplicationTypeProperty__maxLength__gqlv_property { disabled: String get: Int hidden: Boolean + set(maxLength: Int): causeway_feat_ApplicationTypeProperty validate(maxLength: Int): String } @@ -930,6 +996,7 @@ type causeway_feat_ApplicationTypeProperty__memberName__gqlv_property { disabled: String get: String! hidden: Boolean + set(memberName: String!): causeway_feat_ApplicationTypeProperty validate(memberName: String): String } @@ -937,12 +1004,14 @@ type causeway_feat_ApplicationTypeProperty__namespaceName__gqlv_property { disabled: String get: String! hidden: Boolean + set(namespaceName: String!): causeway_feat_ApplicationTypeProperty validate(namespaceName: String): String } type causeway_feat_ApplicationTypeProperty__parent__gqlv_property { disabled: String hidden: Boolean + set(parent: causeway_feat_ApplicationFeatureViewModel__gqlv_input!): causeway_feat_ApplicationTypeProperty validate(parent: causeway_feat_ApplicationFeatureViewModel__gqlv_input): String } @@ -950,6 +1019,7 @@ type causeway_feat_ApplicationTypeProperty__returnType__gqlv_property { disabled: String get: String! hidden: Boolean + set(returnType: String!): causeway_feat_ApplicationTypeProperty validate(returnType: String): String } @@ -957,6 +1027,7 @@ type causeway_feat_ApplicationTypeProperty__typeSimpleName__gqlv_property { disabled: String get: String! hidden: Boolean + set(typeSimpleName: String!): causeway_feat_ApplicationTypeProperty validate(typeSimpleName: String): String } @@ -964,6 +1035,7 @@ type causeway_feat_ApplicationTypeProperty__typicalLength__gqlv_property { disabled: String get: Int hidden: Boolean + set(typicalLength: Int): causeway_feat_ApplicationTypeProperty validate(typicalLength: Int): String } @@ -988,6 +1060,7 @@ type causeway_feat_ApplicationType__memberName__gqlv_property { disabled: String get: String! hidden: Boolean + set(memberName: String!): causeway_feat_ApplicationType validate(memberName: String): String } @@ -995,12 +1068,14 @@ type causeway_feat_ApplicationType__namespaceName__gqlv_property { disabled: String get: String! hidden: Boolean + set(namespaceName: String!): causeway_feat_ApplicationType validate(namespaceName: String): String } type causeway_feat_ApplicationType__parent__gqlv_property { disabled: String hidden: Boolean + set(parent: causeway_feat_ApplicationFeatureViewModel__gqlv_input!): causeway_feat_ApplicationType validate(parent: causeway_feat_ApplicationFeatureViewModel__gqlv_input): String } @@ -1014,6 +1089,7 @@ type causeway_feat_ApplicationType__typeSimpleName__gqlv_property { disabled: String get: String! hidden: Boolean + set(typeSimpleName: String!): causeway_feat_ApplicationType validate(typeSimpleName: String): String } @@ -1034,6 +1110,7 @@ type causeway_schema_metamodel_v2_DomainClassDto__actions__gqlv_property { disabled: String get: String! hidden: Boolean + set(actions: String!): causeway_schema_metamodel_v2_DomainClassDto validate(actions: String): String } @@ -1041,6 +1118,7 @@ type causeway_schema_metamodel_v2_DomainClassDto__annotations__gqlv_property { disabled: String get: String! hidden: Boolean + set(annotations: String!): causeway_schema_metamodel_v2_DomainClassDto validate(annotations: String): String } @@ -1048,6 +1126,7 @@ type causeway_schema_metamodel_v2_DomainClassDto__collections__gqlv_property { disabled: String get: String! hidden: Boolean + set(collections: String!): causeway_schema_metamodel_v2_DomainClassDto validate(collections: String): String } @@ -1055,6 +1134,7 @@ type causeway_schema_metamodel_v2_DomainClassDto__facets__gqlv_property { disabled: String get: String! hidden: Boolean + set(facets: String!): causeway_schema_metamodel_v2_DomainClassDto validate(facets: String): String } @@ -1067,6 +1147,7 @@ type causeway_schema_metamodel_v2_DomainClassDto__id__gqlv_property { disabled: String get: String! hidden: Boolean + set(id: String!): causeway_schema_metamodel_v2_DomainClassDto validate(id: String): String } @@ -1074,6 +1155,7 @@ type causeway_schema_metamodel_v2_DomainClassDto__majorVersion__gqlv_property { disabled: String get: String hidden: Boolean + set(majorVersion: String): causeway_schema_metamodel_v2_DomainClassDto validate(majorVersion: String): String } @@ -1081,6 +1163,7 @@ type causeway_schema_metamodel_v2_DomainClassDto__minorVersion__gqlv_property { disabled: String get: String hidden: Boolean + set(minorVersion: String): causeway_schema_metamodel_v2_DomainClassDto validate(minorVersion: String): String } @@ -1088,6 +1171,7 @@ type causeway_schema_metamodel_v2_DomainClassDto__properties__gqlv_property { disabled: String get: String! hidden: Boolean + set(properties: String!): causeway_schema_metamodel_v2_DomainClassDto validate(properties: String): String } @@ -1095,6 +1179,7 @@ type causeway_schema_metamodel_v2_DomainClassDto__service__gqlv_property { disabled: String get: Boolean! hidden: Boolean + set(service: Boolean!): causeway_schema_metamodel_v2_DomainClassDto validate(service: Boolean): String } @@ -1130,6 +1215,7 @@ type causeway_testing_fixtures_FixtureResult__className__gqlv_property { disabled: String get: String! hidden: Boolean + set(className: String!): causeway_testing_fixtures_FixtureResult validate(className: String): String } @@ -1137,6 +1223,7 @@ type causeway_testing_fixtures_FixtureResult__fixtureScriptClassName__gqlv_prope disabled: String get: String hidden: Boolean + set(fixtureScriptClassName: String): causeway_testing_fixtures_FixtureResult validate(fixtureScriptClassName: String): String } @@ -1149,12 +1236,14 @@ type causeway_testing_fixtures_FixtureResult__key__gqlv_property { disabled: String get: String! hidden: Boolean + set(key: String!): causeway_testing_fixtures_FixtureResult validate(key: String): String } type causeway_testing_fixtures_FixtureResult__object__gqlv_property { disabled: String hidden: Boolean + set(object: String!): causeway_testing_fixtures_FixtureResult validate(object: String): String } @@ -1249,6 +1338,7 @@ type org_apache_causeway_core_metamodel_inspect_model_MMNode__gqlv_meta { type org_apache_causeway_core_metamodel_inspect_model_MMNode__parentNode__gqlv_property { disabled: String hidden: Boolean + set(parentNode: org_apache_causeway_core_metamodel_inspect_model_MMNode__gqlv_input!): org_apache_causeway_core_metamodel_inspect_model_MMNode validate(parentNode: org_apache_causeway_core_metamodel_inspect_model_MMNode__gqlv_input): String } @@ -1273,6 +1363,7 @@ type org_apache_causeway_core_metamodel_inspect_model_MemberNode__mixedIn__gqlv_ disabled: String get: Boolean! hidden: Boolean + set(mixedIn: Boolean!): org_apache_causeway_core_metamodel_inspect_model_MemberNode validate(mixedIn: Boolean): String } @@ -1280,6 +1371,7 @@ type org_apache_causeway_core_metamodel_inspect_model_MemberNode__parentNode__gq disabled: String get: causeway_applib_TypeNode! hidden: Boolean + set(parentNode: causeway_applib_TypeNode__gqlv_input!): org_apache_causeway_core_metamodel_inspect_model_MemberNode validate(parentNode: causeway_applib_TypeNode__gqlv_input): String } @@ -1293,6 +1385,7 @@ type org_apache_causeway_testing_fixtures_applib_fixturescripts_FixtureScript__f disabled: String get: String! hidden: Boolean + set(friendlyName: String!): org_apache_causeway_testing_fixtures_applib_fixturescripts_FixtureScript validate(friendlyName: String): String } @@ -1305,6 +1398,7 @@ type org_apache_causeway_testing_fixtures_applib_fixturescripts_FixtureScript__q disabled: String get: String! hidden: Boolean + set(qualifiedName: String!): org_apache_causeway_testing_fixtures_applib_fixturescripts_FixtureScript validate(qualifiedName: String): String } @@ -1324,6 +1418,7 @@ type university_admin_AdminMenu__actionWithDisabledParam__firstParam__gqlv_actio type university_admin_AdminMenu__actionWithDisabledParam__gqlv_action { disabled: String hidden: Boolean + invokeNonIdempotent(firstParam: String!, secondParam: String!, thirdParameter: String!): String params: university_admin_AdminMenu__actionWithDisabledParam__gqlv_action_params validate(firstParam: String, secondParam: String, thirdParameter: String): String } @@ -1355,6 +1450,7 @@ type university_admin_AdminMenu__actionWithHiddenParam__firstParam__gqlv_action_ type university_admin_AdminMenu__actionWithHiddenParam__gqlv_action { disabled: String hidden: Boolean + invokeNonIdempotent(firstParam: String!, secondParam: String!): String params: university_admin_AdminMenu__actionWithHiddenParam__gqlv_action_params validate(firstParam: String, secondParam: String): String } @@ -1373,12 +1469,14 @@ type university_admin_AdminMenu__actionWithHiddenParam__secondParam__gqlv_action type university_admin_AdminMenu__adminAction__gqlv_action { disabled: String hidden: Boolean + invokeNonIdempotent: String validate: String } type university_admin_AdminMenu__otherAdminAction__gqlv_action { disabled: String hidden: Boolean + invokeNonIdempotent: String validate: String } @@ -1881,6 +1979,7 @@ type university_dept_Department { type university_dept_Department__addStaffMember__gqlv_action { disabled: String hidden: Boolean + invokeIdempotent(staffMember: university_dept_StaffMember__gqlv_input!): university_dept_Department params: university_dept_Department__addStaffMember__gqlv_action_params validate(staffMember: university_dept_StaffMember__gqlv_input): String } @@ -1899,6 +1998,7 @@ type university_dept_Department__addStaffMember__staffMember__gqlv_action_parame type university_dept_Department__addStaffMembers__gqlv_action { disabled: String hidden: Boolean + invokeIdempotent(staffMembers: [university_dept_StaffMember__gqlv_input]): university_dept_Department params: university_dept_Department__addStaffMembers__gqlv_action_params validate(staffMembers: [university_dept_StaffMember__gqlv_input]): String } @@ -1917,6 +2017,7 @@ type university_dept_Department__addStaffMembers__staffMembers__gqlv_action_para type university_dept_Department__changeDeptHead__gqlv_action { disabled: String hidden: Boolean + invokeIdempotent(newDeptHead: university_dept_DeptHead__gqlv_input!): university_dept_Department params: university_dept_Department__changeDeptHead__gqlv_action_params validate(newDeptHead: university_dept_DeptHead__gqlv_input): String } @@ -1936,6 +2037,7 @@ type university_dept_Department__changeDeptHead__newDeptHead__gqlv_action_parame type university_dept_Department__changeName__gqlv_action { disabled: String hidden: Boolean + invokeIdempotent(newName: String!): university_dept_Department params: university_dept_Department__changeName__gqlv_action_params validate(newName: String): String } @@ -1956,6 +2058,7 @@ type university_dept_Department__deptHead__gqlv_property { disabled: String get: university_dept_DeptHead hidden: Boolean + set(deptHead: university_dept_DeptHead__gqlv_input): university_dept_Department validate(deptHead: university_dept_DeptHead__gqlv_input): String } @@ -1969,12 +2072,14 @@ type university_dept_Department__name__gqlv_property { disabled: String get: String! hidden: Boolean + set(name: String!): university_dept_Department validate(name: String): String } type university_dept_Department__removeStaffMember__gqlv_action { disabled: String hidden: Boolean + invokeIdempotent(staffMember: university_dept_StaffMember__gqlv_input!): university_dept_Department params: university_dept_Department__removeStaffMember__gqlv_action_params validate(staffMember: university_dept_StaffMember__gqlv_input): String } @@ -2012,6 +2117,7 @@ type university_dept_Departments__createDepartment__deptHead__gqlv_action_parame type university_dept_Departments__createDepartment__gqlv_action { disabled: String hidden: Boolean + invokeNonIdempotent(deptHead: university_dept_DeptHead__gqlv_input, name: String!): university_dept_Department params: university_dept_Departments__createDepartment__gqlv_action_params validate(deptHead: university_dept_DeptHead__gqlv_input, name: String): String } @@ -2070,6 +2176,7 @@ type university_dept_DeptHead__changeDepartment__department__gqlv_action_paramet type university_dept_DeptHead__changeDepartment__gqlv_action { disabled: String hidden: Boolean + invokeIdempotent(department: university_dept_Department__gqlv_input!): university_dept_DeptHead params: university_dept_DeptHead__changeDepartment__gqlv_action_params validate(department: university_dept_Department__gqlv_input): String } @@ -2081,6 +2188,7 @@ type university_dept_DeptHead__changeDepartment__gqlv_action_params { type university_dept_DeptHead__changeName__gqlv_action { disabled: String hidden: Boolean + invokeIdempotent(newName: String!): university_dept_DeptHead params: university_dept_DeptHead__changeName__gqlv_action_params validate(newName: String): String } @@ -2101,6 +2209,7 @@ type university_dept_DeptHead__department__gqlv_property { disabled: String get: university_dept_Department hidden: Boolean + set(department: university_dept_Department__gqlv_input): university_dept_DeptHead validate(department: university_dept_Department__gqlv_input): String } @@ -2114,6 +2223,7 @@ type university_dept_DeptHead__name__gqlv_property { disabled: String get: String hidden: Boolean + set(name: String): university_dept_DeptHead validate(name: String): String } @@ -2166,6 +2276,7 @@ type university_dept_StaffMember__department__gqlv_property { disabled: String get: university_dept_Department hidden: Boolean + set(department: university_dept_Department__gqlv_input): university_dept_StaffMember validate(department: university_dept_Department__gqlv_input): String } @@ -2180,6 +2291,7 @@ type university_dept_StaffMember__grade__gqlv_property { disabled: String get: String! hidden: Boolean + set(grade: String!): university_dept_StaffMember validate(grade: String): String } @@ -2187,6 +2299,7 @@ type university_dept_StaffMember__name__gqlv_property { disabled: String get: String! hidden: Boolean + set(name: String!): university_dept_StaffMember validate(name: String): String } @@ -2194,6 +2307,7 @@ type university_dept_StaffMember__photo__gqlv_property { disabled: String get: String hidden: Boolean + set(photo: String): university_dept_StaffMember validate(photo: String): String } @@ -2207,6 +2321,7 @@ type university_dept_Staff__createStaffMember__department__gqlv_action_parameter type university_dept_Staff__createStaffMember__gqlv_action { disabled: String hidden: Boolean + invokeNonIdempotent(department: university_dept_Department__gqlv_input!, name: String!): university_dept_StaffMember params: university_dept_Staff__createStaffMember__gqlv_action_params validate(department: university_dept_Department__gqlv_input, name: String): String } diff --git a/viewers/graphql/viewer/src/main/java/org/apache/causeway/viewer/graphql/viewer/toplevel/GqlvTopLevelQuery.java b/viewers/graphql/viewer/src/main/java/org/apache/causeway/viewer/graphql/viewer/toplevel/GqlvTopLevelQuery.java index dfff9fe35c..ff5ca87aca 100644 --- a/viewers/graphql/viewer/src/main/java/org/apache/causeway/viewer/graphql/viewer/toplevel/GqlvTopLevelQuery.java +++ b/viewers/graphql/viewer/src/main/java/org/apache/causeway/viewer/graphql/viewer/toplevel/GqlvTopLevelQuery.java @@ -12,10 +12,11 @@ import static graphql.schema.GraphQLObjectType.newObject; import org.apache.causeway.viewer.graphql.model.context.Context; import org.apache.causeway.viewer.graphql.model.domain.GqlvDomainObject; import org.apache.causeway.viewer.graphql.model.domain.GqlvDomainService; +import org.apache.causeway.viewer.graphql.model.domain.GqlvScenario; import lombok.Getter; -public class GqlvTopLevelQuery implements GqlvDomainService.Holder, GqlvDomainObject.Holder { +public class GqlvTopLevelQuery implements GqlvDomainService.Holder, GqlvDomainObject.Holder, GqlvScenario.Holder { private static final String OBJECT_TYPE_NAME = "Query"; @@ -25,6 +26,8 @@ public class GqlvTopLevelQuery implements GqlvDomainService.Holder, GqlvDomainOb private final List<GqlvDomainService> domainServices = new ArrayList<>(); private final List<GqlvDomainObject> domainObjects = new ArrayList<>(); + private final GqlvScenario scenario; + public GqlvTopLevelQuery(final Context context) { this.objectTypeBuilder = newObject().name(OBJECT_TYPE_NAME); @@ -36,7 +39,7 @@ public class GqlvTopLevelQuery implements GqlvDomainService.Holder, GqlvDomainOb case VIEW_MODEL: // @DomainObject(nature=VIEW_MODEL) case ENTITY: // @DomainObject(nature=ENTITY) - domainObjects.add(new GqlvDomainObject(this, objectSpec, context)); + domainObjects.add(GqlvDomainObject.of(objectSpec, this, context)); break; } @@ -48,7 +51,7 @@ public class GqlvTopLevelQuery implements GqlvDomainService.Holder, GqlvDomainOb case MANAGED_BEAN_CONTRIBUTING: // @DomainService context.serviceRegistry.lookupBeanById(objectSpec.getLogicalTypeName()) .ifPresent(servicePojo -> { - domainServices.add(new GqlvDomainService(this, objectSpec, servicePojo, context)); + domainServices.add(GqlvDomainService.of(objectSpec, this, servicePojo, context)); }); break; } @@ -59,6 +62,8 @@ public class GqlvTopLevelQuery implements GqlvDomainService.Holder, GqlvDomainOb addField(domainObject.getLookupField()); } + scenario = new GqlvScenario(this, context); + objectType = objectTypeBuilder.build(); }
