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 1806e4b5e0ba2562ff5158e731103d4f42e56603
Author: danhaywood <[email protected]>
AuthorDate: Mon Feb 12 20:22:03 2024 +0000

    CAUSEWAY-3676: adds in scenario, ensure use factory method for 
GqlvDomainObject
---
 .../graphql/model/domain/GqlvDomainObject.java     |  2 +-
 .../graphql/model/domain/GqlvScenarioGiven.java    |  2 +-
 .../graphql/model/toplevel/GqlvTopLevelQuery.java  | 14 +++---
 viewers/graphql/test/src/test/resources/schema.gql | 54 ++++++++++++++++++++++
 4 files changed, 62 insertions(+), 10 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 36d653b728..e21bb2f075 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
@@ -73,7 +73,7 @@ public class GqlvDomainObject
         return domainObjectBySpec.computeIfAbsent(objectSpecification, spec -> 
new GqlvDomainObject(spec, context));
     }
 
-    public GqlvDomainObject(
+    private GqlvDomainObject(
             final ObjectSpecification objectSpecification,
             final Context context) {
         super(TypeNames.objectTypeNameFor(objectSpecification), context);
diff --git 
a/viewers/graphql/model/src/main/java/org/apache/causeway/viewer/graphql/model/domain/GqlvScenarioGiven.java
 
b/viewers/graphql/model/src/main/java/org/apache/causeway/viewer/graphql/model/domain/GqlvScenarioGiven.java
index f01faa063f..099d547ea8 100644
--- 
a/viewers/graphql/model/src/main/java/org/apache/causeway/viewer/graphql/model/domain/GqlvScenarioGiven.java
+++ 
b/viewers/graphql/model/src/main/java/org/apache/causeway/viewer/graphql/model/domain/GqlvScenarioGiven.java
@@ -27,7 +27,7 @@ public class GqlvScenarioGiven
                 case VIEW_MODEL: // @DomainObject(nature=VIEW_MODEL)
                 case ENTITY:     // @DomainObject(nature=ENTITY)
 
-                    domainObjects.add(new GqlvDomainObject(objectSpec, 
context));
+                    domainObjects.add(GqlvDomainObject.of(objectSpec, 
context));
 
                     break;
             }
diff --git 
a/viewers/graphql/model/src/main/java/org/apache/causeway/viewer/graphql/model/toplevel/GqlvTopLevelQuery.java
 
b/viewers/graphql/model/src/main/java/org/apache/causeway/viewer/graphql/model/toplevel/GqlvTopLevelQuery.java
index 6205082faf..eff065063f 100644
--- 
a/viewers/graphql/model/src/main/java/org/apache/causeway/viewer/graphql/model/toplevel/GqlvTopLevelQuery.java
+++ 
b/viewers/graphql/model/src/main/java/org/apache/causeway/viewer/graphql/model/toplevel/GqlvTopLevelQuery.java
@@ -1,11 +1,9 @@
 package org.apache.causeway.viewer.graphql.model.toplevel;
 
-import graphql.schema.GraphQLObjectType;
-
 import java.util.ArrayList;
 import java.util.List;
 
-import static graphql.schema.GraphQLObjectType.newObject;
+import graphql.schema.GraphQLObjectType;
 
 import org.apache.causeway.viewer.graphql.model.context.Context;
 import org.apache.causeway.viewer.graphql.model.domain.GqlvAbstractCustom;
@@ -21,7 +19,7 @@ public class GqlvTopLevelQuery
     private final List<GqlvDomainService> domainServices = new ArrayList<>();
     private final List<GqlvDomainObject> domainObjects = new ArrayList<>();
 
-//    private final GqlvScenario scenario;
+    private final GqlvScenario scenario;
 
     public GqlvTopLevelQuery(final Context context) {
         super("Query", context);
@@ -33,7 +31,7 @@ public class GqlvTopLevelQuery
                 case VIEW_MODEL: // @DomainObject(nature=VIEW_MODEL)
                 case ENTITY:     // @DomainObject(nature=ENTITY)
 
-                    domainObjects.add(new GqlvDomainObject(objectSpec, 
context));
+                    domainObjects.add(GqlvDomainObject.of(objectSpec, 
context));
 
                     break;
             }
@@ -58,8 +56,8 @@ public class GqlvTopLevelQuery
             addChildField(domainObject.getLookupField());
         }
 
-//        scenario = new GqlvScenario(this, context);
-//        addChildField(scenario.getField());
+        scenario = new GqlvScenario(context);
+        addChildField(scenario.getField());
 
         buildObjectType();
     }
@@ -81,6 +79,6 @@ public class GqlvTopLevelQuery
 
         domainObjects.forEach(domainObject -> 
domainObject.addDataFetchers(this));
 
-//        scenario.addDataFetchers(this);
+        scenario.addDataFetchers(this);
     }
 }
diff --git a/viewers/graphql/test/src/test/resources/schema.gql 
b/viewers/graphql/test/src/test/resources/schema.gql
index 65b53a6d18..d0e4b40449 100644
--- a/viewers/graphql/test/src/test/resources/schema.gql
+++ b/viewers/graphql/test/src/test/resources/schema.gql
@@ -22,7 +22,56 @@ directive @specifiedBy(
     url: String!
   ) on SCALAR
 
+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
+  causeway_applib_UserMenu: causeway_applib_UserMenu
+  causeway_conf_ConfigurationMenu: causeway_conf_ConfigurationMenu
+  causeway_security_LogoutMenu: causeway_security_LogoutMenu
+  university_admin_AdminMenu: university_admin_AdminMenu
+  university_calc_Calculator: university_calc_Calculator
+  university_dept_Departments: university_dept_Departments
+  university_dept_DeptHeads: university_dept_DeptHeads
+  university_dept_Staff: university_dept_Staff
+}
+
 type Query {
+  Scenario(name: String): 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
@@ -70,6 +119,11 @@ type Query {
   university_dept_Staff: university_dept_Staff
 }
 
+type Scenario {
+  Given: Given
+  Name: String
+}
+
 type causeway_applib_DomainObjectList {
   _gqlv_meta: causeway_applib_DomainObjectList__gqlv_meta
   actionArguments: 
causeway_applib_DomainObjectList__actionArguments__gqlv_property

Reply via email to