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 04cfe5d8d2b54ad509277d19a35b5f854f99a381
Author: danhaywood <[email protected]>
AuthorDate: Mon Feb 12 22:59:37 2024 +0000

    CAUSEWAY-3676: pushes addDataFetcher up to superclass
---
 .../viewer/graphql/model/domain/GqlvAbstract.java  | 14 +++++++++++++
 .../graphql/model/domain/GqlvAbstractCustom.java   |  9 ---------
 .../viewer/graphql/model/domain/GqlvAction.java    | 10 +---------
 .../graphql/model/domain/GqlvActionInvoke.java     |  7 -------
 .../graphql/model/domain/GqlvActionParam.java      |  9 +--------
 .../model/domain/GqlvActionParamAutoComplete.java  |  7 -------
 .../model/domain/GqlvActionParamChoices.java       |  7 -------
 .../model/domain/GqlvActionParamDefault.java       |  7 -------
 .../model/domain/GqlvActionParamDisabled.java      |  8 --------
 .../model/domain/GqlvActionParamHidden.java        |  7 -------
 .../model/domain/GqlvActionParamValidate.java      |  8 --------
 .../graphql/model/domain/GqlvActionParams.java     | 13 ++----------
 .../graphql/model/domain/GqlvActionValidity.java   |  7 -------
 .../graphql/model/domain/GqlvAssociationGet.java   | 21 --------------------
 .../graphql/model/domain/GqlvCollection.java       | 10 ++--------
 .../graphql/model/domain/GqlvDomainObject.java     | 20 +++----------------
 .../graphql/model/domain/GqlvDomainService.java    | 10 +---------
 .../graphql/model/domain/GqlvMemberDisabled.java   |  7 -------
 .../graphql/model/domain/GqlvMemberHidden.java     |  7 -------
 .../viewer/graphql/model/domain/GqlvMeta.java      |  9 ++-------
 .../model/domain/GqlvMutationForAction.java        |  7 -------
 .../model/domain/GqlvMutationForProperty.java      | 17 ----------------
 .../viewer/graphql/model/domain/GqlvProperty.java  | 13 +++---------
 .../model/domain/GqlvPropertyAutoComplete.java     | 23 ----------------------
 .../graphql/model/domain/GqlvPropertyChoices.java  | 23 ----------------------
 .../graphql/model/domain/GqlvPropertySet.java      | 18 -----------------
 .../graphql/model/domain/GqlvPropertyValidate.java | 18 -----------------
 .../viewer/graphql/model/domain/GqlvScenario.java  | 13 +++---------
 .../graphql/model/domain/GqlvScenarioGiven.java    | 14 +++----------
 .../graphql/model/domain/GqlvScenarioName.java     |  6 ------
 .../graphql/model/toplevel/GqlvTopLevelQuery.java  |  8 ++++----
 31 files changed, 39 insertions(+), 318 deletions(-)

diff --git 
a/viewers/graphql/model/src/main/java/org/apache/causeway/viewer/graphql/model/domain/GqlvAbstract.java
 
b/viewers/graphql/model/src/main/java/org/apache/causeway/viewer/graphql/model/domain/GqlvAbstract.java
index dcbe4c8616..51b98f99a1 100644
--- 
a/viewers/graphql/model/src/main/java/org/apache/causeway/viewer/graphql/model/domain/GqlvAbstract.java
+++ 
b/viewers/graphql/model/src/main/java/org/apache/causeway/viewer/graphql/model/domain/GqlvAbstract.java
@@ -47,5 +47,19 @@ public abstract class GqlvAbstract {
         return getField() != null;
     }
 
+    public final void addDataFetcher(Parent parent) {
+        if (getField() != null) {
+            // in some cases there might not be a field, eg GqlvCollectionGet 
for DomainObjectList#objects
+            context.codeRegistryBuilder.dataFetcher(
+                    parent.coordinatesFor(getField()),
+                    this::fetchData);
+        }
+
+        addDataFetchersForChildren();
+    }
+
+    protected void addDataFetchersForChildren() {
+    }
+
     protected abstract Object fetchData(DataFetchingEnvironment environment);
 }
diff --git 
a/viewers/graphql/model/src/main/java/org/apache/causeway/viewer/graphql/model/domain/GqlvAbstractCustom.java
 
b/viewers/graphql/model/src/main/java/org/apache/causeway/viewer/graphql/model/domain/GqlvAbstractCustom.java
index dd55cdea32..6153389225 100644
--- 
a/viewers/graphql/model/src/main/java/org/apache/causeway/viewer/graphql/model/domain/GqlvAbstractCustom.java
+++ 
b/viewers/graphql/model/src/main/java/org/apache/causeway/viewer/graphql/model/domain/GqlvAbstractCustom.java
@@ -40,15 +40,6 @@ public abstract class GqlvAbstractCustom extends 
GqlvAbstract implements Parent
     @Getter(AccessLevel.PROTECTED)
     private GraphQLObjectType gqlObjectType;
 
-    protected GqlvAbstractCustom(
-            final GraphQLObjectType.Builder gqlObjectTypeBuilder,
-            final Context context) {
-        super(context);
-        typeName = null; // TODO - remove this constructor
-
-        this.gqlObjectTypeBuilder = gqlObjectTypeBuilder;
-    }
-
     protected GqlvAbstractCustom(
             final String typeName,
             final Context context) {
diff --git 
a/viewers/graphql/model/src/main/java/org/apache/causeway/viewer/graphql/model/domain/GqlvAction.java
 
b/viewers/graphql/model/src/main/java/org/apache/causeway/viewer/graphql/model/domain/GqlvAction.java
index f9ec43c853..2f31c22090 100644
--- 
a/viewers/graphql/model/src/main/java/org/apache/causeway/viewer/graphql/model/domain/GqlvAction.java
+++ 
b/viewers/graphql/model/src/main/java/org/apache/causeway/viewer/graphql/model/domain/GqlvAction.java
@@ -41,7 +41,6 @@ import 
org.apache.causeway.core.metamodel.spec.feature.ObjectAction;
 import org.apache.causeway.core.metamodel.spec.feature.ObjectActionParameter;
 import 
org.apache.causeway.core.metamodel.spec.feature.OneToManyActionParameter;
 import org.apache.causeway.core.metamodel.spec.feature.OneToOneActionParameter;
-import org.apache.causeway.viewer.graphql.model.fetcher.BookmarkedPojo;
 import org.apache.causeway.viewer.graphql.model.types.TypeMapper;
 import org.apache.causeway.viewer.graphql.model.context.Context;
 
@@ -249,14 +248,7 @@ public class GqlvAction
         return getObjectMember();
     }
 
-    public void addDataFetcher(Parent parent) {
-        context.codeRegistryBuilder.dataFetcher(
-                parent.coordinatesFor(getField()),
-                this::fetchData);
-
-        addDataFetchersForChildren();
-    }
-
+    @Override
     protected void addDataFetchersForChildren() {
         hidden.addDataFetcher(this);
         disabled.addDataFetcher(this);
diff --git 
a/viewers/graphql/model/src/main/java/org/apache/causeway/viewer/graphql/model/domain/GqlvActionInvoke.java
 
b/viewers/graphql/model/src/main/java/org/apache/causeway/viewer/graphql/model/domain/GqlvActionInvoke.java
index 6343802ac4..2d7391f43f 100644
--- 
a/viewers/graphql/model/src/main/java/org/apache/causeway/viewer/graphql/model/domain/GqlvActionInvoke.java
+++ 
b/viewers/graphql/model/src/main/java/org/apache/causeway/viewer/graphql/model/domain/GqlvActionInvoke.java
@@ -119,13 +119,6 @@ public class GqlvActionInvoke extends GqlvAbstract {
         }
     }
 
-    public void addDataFetcher(Parent parent) {
-        context.codeRegistryBuilder.dataFetcher(
-                parent.coordinatesFor(getField()),
-                this::fetchData
-        );
-    }
-
     @Override
     protected Object fetchData(final DataFetchingEnvironment 
dataFetchingEnvironment) {
 
diff --git 
a/viewers/graphql/model/src/main/java/org/apache/causeway/viewer/graphql/model/domain/GqlvActionParam.java
 
b/viewers/graphql/model/src/main/java/org/apache/causeway/viewer/graphql/model/domain/GqlvActionParam.java
index 9402fb38e0..ebf49cde0e 100644
--- 
a/viewers/graphql/model/src/main/java/org/apache/causeway/viewer/graphql/model/domain/GqlvActionParam.java
+++ 
b/viewers/graphql/model/src/main/java/org/apache/causeway/viewer/graphql/model/domain/GqlvActionParam.java
@@ -127,14 +127,7 @@ public class GqlvActionParam
         return holder.getObjectAction();
     }
 
-    public void addDataFetcher(Parent parent) {
-        context.codeRegistryBuilder.dataFetcher(
-                parent.coordinatesFor(getField()),
-                this::fetchData);
-
-        addDataFetchersForChildren();
-    }
-
+    @Override
     protected void addDataFetchersForChildren() {
         hidden.addDataFetcher(this);
         disabled.addDataFetcher(this);
diff --git 
a/viewers/graphql/model/src/main/java/org/apache/causeway/viewer/graphql/model/domain/GqlvActionParamAutoComplete.java
 
b/viewers/graphql/model/src/main/java/org/apache/causeway/viewer/graphql/model/domain/GqlvActionParamAutoComplete.java
index 3925f18dc1..88aba6c71f 100644
--- 
a/viewers/graphql/model/src/main/java/org/apache/causeway/viewer/graphql/model/domain/GqlvActionParamAutoComplete.java
+++ 
b/viewers/graphql/model/src/main/java/org/apache/causeway/viewer/graphql/model/domain/GqlvActionParamAutoComplete.java
@@ -78,13 +78,6 @@ package org.apache.causeway.viewer.graphql.model.domain;
          }
      }
 
-     public void addDataFetcher(Parent parent) {
-         context.codeRegistryBuilder.dataFetcher(
-                 parent.coordinatesFor(getField()),
-                 this::fetchData
-         );
-     }
-
      @Override
      protected List<Object> fetchData(final DataFetchingEnvironment 
dataFetchingEnvironment) {
 
diff --git 
a/viewers/graphql/model/src/main/java/org/apache/causeway/viewer/graphql/model/domain/GqlvActionParamChoices.java
 
b/viewers/graphql/model/src/main/java/org/apache/causeway/viewer/graphql/model/domain/GqlvActionParamChoices.java
index 51caf2a031..1090855793 100644
--- 
a/viewers/graphql/model/src/main/java/org/apache/causeway/viewer/graphql/model/domain/GqlvActionParamChoices.java
+++ 
b/viewers/graphql/model/src/main/java/org/apache/causeway/viewer/graphql/model/domain/GqlvActionParamChoices.java
@@ -70,13 +70,6 @@ package org.apache.causeway.viewer.graphql.model.domain;
          }
      }
 
-     public void addDataFetcher(Parent parent) {
-         context.codeRegistryBuilder.dataFetcher(
-                 parent.coordinatesFor(getField()),
-                 this::fetchData
-         );
-     }
-
      @Override
      protected List<Object> fetchData(final DataFetchingEnvironment 
dataFetchingEnvironment) {
 
diff --git 
a/viewers/graphql/model/src/main/java/org/apache/causeway/viewer/graphql/model/domain/GqlvActionParamDefault.java
 
b/viewers/graphql/model/src/main/java/org/apache/causeway/viewer/graphql/model/domain/GqlvActionParamDefault.java
index 3bc0991c9a..1bcb0163bb 100644
--- 
a/viewers/graphql/model/src/main/java/org/apache/causeway/viewer/graphql/model/domain/GqlvActionParamDefault.java
+++ 
b/viewers/graphql/model/src/main/java/org/apache/causeway/viewer/graphql/model/domain/GqlvActionParamDefault.java
@@ -64,13 +64,6 @@ public class GqlvActionParamDefault extends GqlvAbstract {
         }
     }
 
-    public void addDataFetcher(Parent parent) {
-        context.codeRegistryBuilder.dataFetcher(
-                parent.coordinatesFor(getField()),
-                this::fetchData
-        );
-    }
-
     @Override
     protected Object fetchData(final DataFetchingEnvironment 
dataFetchingEnvironment) {
         val sourcePojo = BookmarkedPojo.sourceFrom(dataFetchingEnvironment);
diff --git 
a/viewers/graphql/model/src/main/java/org/apache/causeway/viewer/graphql/model/domain/GqlvActionParamDisabled.java
 
b/viewers/graphql/model/src/main/java/org/apache/causeway/viewer/graphql/model/domain/GqlvActionParamDisabled.java
index 7dd596a560..b0a5576cd9 100644
--- 
a/viewers/graphql/model/src/main/java/org/apache/causeway/viewer/graphql/model/domain/GqlvActionParamDisabled.java
+++ 
b/viewers/graphql/model/src/main/java/org/apache/causeway/viewer/graphql/model/domain/GqlvActionParamDisabled.java
@@ -57,14 +57,6 @@ public class GqlvActionParamDisabled extends GqlvAbstract {
         setField(fieldBuilder.build());
     }
 
-
-    public void addDataFetcher(Parent parent) {
-        context.codeRegistryBuilder.dataFetcher(
-                parent.coordinatesFor(getField()),
-                this::fetchData
-        );
-    }
-
     @Override
     protected String fetchData(final DataFetchingEnvironment 
dataFetchingEnvironment) {
 
diff --git 
a/viewers/graphql/model/src/main/java/org/apache/causeway/viewer/graphql/model/domain/GqlvActionParamHidden.java
 
b/viewers/graphql/model/src/main/java/org/apache/causeway/viewer/graphql/model/domain/GqlvActionParamHidden.java
index ee97875849..9aadc16136 100644
--- 
a/viewers/graphql/model/src/main/java/org/apache/causeway/viewer/graphql/model/domain/GqlvActionParamHidden.java
+++ 
b/viewers/graphql/model/src/main/java/org/apache/causeway/viewer/graphql/model/domain/GqlvActionParamHidden.java
@@ -57,13 +57,6 @@ public class GqlvActionParamHidden extends GqlvAbstract {
     }
 
 
-    public void addDataFetcher(Parent parent) {
-        context.codeRegistryBuilder.dataFetcher(
-                parent.coordinatesFor(getField()),
-                this::fetchData
-        );
-    }
-
     @Override
     protected Object fetchData(final DataFetchingEnvironment 
dataFetchingEnvironment) {
 
diff --git 
a/viewers/graphql/model/src/main/java/org/apache/causeway/viewer/graphql/model/domain/GqlvActionParamValidate.java
 
b/viewers/graphql/model/src/main/java/org/apache/causeway/viewer/graphql/model/domain/GqlvActionParamValidate.java
index f830662f77..6741e39e86 100644
--- 
a/viewers/graphql/model/src/main/java/org/apache/causeway/viewer/graphql/model/domain/GqlvActionParamValidate.java
+++ 
b/viewers/graphql/model/src/main/java/org/apache/causeway/viewer/graphql/model/domain/GqlvActionParamValidate.java
@@ -56,14 +56,6 @@ public class GqlvActionParamValidate extends GqlvAbstract {
         setField(fieldBuilder.build());
     }
 
-
-    public void addDataFetcher(Parent parent) {
-        context.codeRegistryBuilder.dataFetcher(
-                parent.coordinatesFor(getField()),
-                this::fetchData
-        );
-    }
-
     @Override
     protected String fetchData(final DataFetchingEnvironment 
dataFetchingEnvironment) {
 
diff --git 
a/viewers/graphql/model/src/main/java/org/apache/causeway/viewer/graphql/model/domain/GqlvActionParams.java
 
b/viewers/graphql/model/src/main/java/org/apache/causeway/viewer/graphql/model/domain/GqlvActionParams.java
index 8615c91972..120db83c54 100644
--- 
a/viewers/graphql/model/src/main/java/org/apache/causeway/viewer/graphql/model/domain/GqlvActionParams.java
+++ 
b/viewers/graphql/model/src/main/java/org/apache/causeway/viewer/graphql/model/domain/GqlvActionParams.java
@@ -35,7 +35,6 @@ import 
org.apache.causeway.core.metamodel.spec.feature.ObjectAction;
 import org.apache.causeway.core.metamodel.spec.feature.ObjectActionParameter;
 import org.apache.causeway.viewer.graphql.model.context.Context;
 import org.apache.causeway.viewer.graphql.model.fetcher.BookmarkedPojo;
-import org.apache.causeway.viewer.graphql.model.fetcher.BookmarkedPojoFetcher;
 import 
org.apache.causeway.viewer.graphql.model.mmproviders.ObjectActionProvider;
 import 
org.apache.causeway.viewer.graphql.model.mmproviders.ObjectSpecificationProvider;
 import org.apache.causeway.viewer.graphql.model.types.TypeMapper;
@@ -94,16 +93,8 @@ public class GqlvActionParams
         params.put(objectActionParameter.getId(), gqlvActionParam);
     }
 
-
-    void addDataFetcher(Parent parent) {
-        context.codeRegistryBuilder.dataFetcher(
-                parent.coordinatesFor(getField()),
-                this::fetchData);
-
-        addDataFetchersForChildren();
-    }
-
-    private void addDataFetchersForChildren() {
+    @Override
+    protected void addDataFetchersForChildren() {
         params.forEach((id, param) -> param.addDataFetcher(this));
     }
 
diff --git 
a/viewers/graphql/model/src/main/java/org/apache/causeway/viewer/graphql/model/domain/GqlvActionValidity.java
 
b/viewers/graphql/model/src/main/java/org/apache/causeway/viewer/graphql/model/domain/GqlvActionValidity.java
index 90064a0a04..6db35e8154 100644
--- 
a/viewers/graphql/model/src/main/java/org/apache/causeway/viewer/graphql/model/domain/GqlvActionValidity.java
+++ 
b/viewers/graphql/model/src/main/java/org/apache/causeway/viewer/graphql/model/domain/GqlvActionValidity.java
@@ -68,13 +68,6 @@ public class GqlvActionValidity extends GqlvAbstract {
         }
     }
 
-    public void addDataFetcher(Parent parent) {
-        context.codeRegistryBuilder.dataFetcher(
-                parent.coordinatesFor(getField()),
-                this::fetchData
-        );
-    }
-
     @Override
     protected Object fetchData(final DataFetchingEnvironment 
dataFetchingEnvironment) {
 
diff --git 
a/viewers/graphql/model/src/main/java/org/apache/causeway/viewer/graphql/model/domain/GqlvAssociationGet.java
 
b/viewers/graphql/model/src/main/java/org/apache/causeway/viewer/graphql/model/domain/GqlvAssociationGet.java
index de73b833ce..2acd561b72 100644
--- 
a/viewers/graphql/model/src/main/java/org/apache/causeway/viewer/graphql/model/domain/GqlvAssociationGet.java
+++ 
b/viewers/graphql/model/src/main/java/org/apache/causeway/viewer/graphql/model/domain/GqlvAssociationGet.java
@@ -55,27 +55,6 @@ public abstract class GqlvAssociationGet<T extends 
ObjectAssociation> extends Gq
 
     abstract GraphQLOutputType outputTypeFor(Holder<T> holder);
 
-    void addDataFetcher(Parent parent) {
-
-        val association = this.holder.getObjectAssociation();
-        val fieldObjectSpecification = association.getElementType();
-        val beanSort = fieldObjectSpecification.getBeanSort();
-
-        switch (beanSort) {
-
-            case VALUE:
-            case VIEW_MODEL:
-            case ENTITY:
-
-                context.codeRegistryBuilder.dataFetcher(
-                        parent.coordinatesFor(getField()),
-                        this::fetchData);
-
-                break;
-
-        }
-    }
-
     @Override
     protected Object fetchData(final DataFetchingEnvironment 
dataFetchingEnvironment) {
 
diff --git 
a/viewers/graphql/model/src/main/java/org/apache/causeway/viewer/graphql/model/domain/GqlvCollection.java
 
b/viewers/graphql/model/src/main/java/org/apache/causeway/viewer/graphql/model/domain/GqlvCollection.java
index 6a5eb2c607..1b9d20ad9b 100644
--- 
a/viewers/graphql/model/src/main/java/org/apache/causeway/viewer/graphql/model/domain/GqlvCollection.java
+++ 
b/viewers/graphql/model/src/main/java/org/apache/causeway/viewer/graphql/model/domain/GqlvCollection.java
@@ -62,18 +62,12 @@ public class GqlvCollection
         return holder.getObjectSpecification();
     }
 
+    @Override
     public OneToManyAssociation getOneToManyAssociation() {
         return getObjectAssociation();
     }
 
-    public void addDataFetcher(Parent parent) {
-        context.codeRegistryBuilder.dataFetcher(
-                parent.coordinatesFor(getField()),
-                this::fetchData);
-
-        addDataFetchersForChildren();
-    }
-
+    @Override
     protected void addDataFetchersForChildren() {
         hidden.addDataFetcher(this);
         disabled.addDataFetcher(this);
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 8c4264deb0..2508aecdf0 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,13 +18,11 @@
  */
 package org.apache.causeway.viewer.graphql.model.domain;
 
-import java.util.LinkedHashMap;
 import java.util.Map;
 import java.util.SortedMap;
 import java.util.TreeMap;
 
 import graphql.Scalars;
-import graphql.schema.DataFetcher;
 import graphql.schema.DataFetchingEnvironment;
 import graphql.schema.GraphQLArgument;
 import graphql.schema.GraphQLFieldDefinition;
@@ -54,9 +52,6 @@ public class GqlvDomainObject
 
     @Getter private final ObjectSpecification objectSpecification;
 
-    @Getter
-    private final GraphQLFieldDefinition lookupField;
-
     private final GqlvMeta meta;
 
     private final SortedMap<String, GqlvProperty> properties = new TreeMap<>();
@@ -90,7 +85,7 @@ public class GqlvDomainObject
                         .build());
         gqlInputObjectType = inputTypeBuilder.build();
 
-        this.lookupField = buildFieldDefinition(gqlInputObjectType);
+        setField(buildFieldDefinition(gqlInputObjectType));
 
         addMembers();
 
@@ -120,7 +115,6 @@ public class GqlvDomainObject
     }
 
 
-
     private void addMembers() {
 
         
objectSpecification.streamProperties(MixedIn.INCLUDED).forEach(this::addProperty);
@@ -156,17 +150,9 @@ public class GqlvDomainObject
     }
 
 
-    public void addDataFetchers(Parent parent) {
-
-        this.context.codeRegistryBuilder.dataFetcher(
-                parent.coordinatesFor(getLookupField()),
-                this::fetchData);
-
-        addDataFetchersForChildren();
-    }
-
+    @Override
     protected void addDataFetchersForChildren() {
-        meta.addDataFetchers(this);
+        meta.addDataFetcher(this);
         properties.forEach((id, property) -> property.addDataFetcher(this));
         collections.forEach((id, collection) -> 
collection.addDataFetcher(this));
         actions.forEach((id, action) -> action.addDataFetcher(this));
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 ba91bbbafe..11d65ec680 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
@@ -21,8 +21,6 @@ package org.apache.causeway.viewer.graphql.model.domain;
 import java.util.LinkedHashMap;
 import java.util.Map;
 
-import graphql.schema.DataFetcher;
-
 import org.apache.causeway.core.config.CausewayConfiguration;
 import org.apache.causeway.core.metamodel.spec.ObjectSpecification;
 import org.apache.causeway.core.metamodel.spec.feature.MixedIn;
@@ -89,13 +87,7 @@ public class GqlvDomainService
     }
 
 
-    public void addDataFetchers(Parent parent) {
-        context.codeRegistryBuilder.dataFetcher(
-                parent.coordinatesFor(getField()),
-                this::fetchData);
-        addDataFetchersForChildren();
-    }
-
+    @Override
     protected void addDataFetchersForChildren() {
         if (hasActions()) {
             actions.forEach((id, gqlva) -> gqlva.addDataFetcher(this));
diff --git 
a/viewers/graphql/model/src/main/java/org/apache/causeway/viewer/graphql/model/domain/GqlvMemberDisabled.java
 
b/viewers/graphql/model/src/main/java/org/apache/causeway/viewer/graphql/model/domain/GqlvMemberDisabled.java
index 115c14b5ae..4f21701b57 100644
--- 
a/viewers/graphql/model/src/main/java/org/apache/causeway/viewer/graphql/model/domain/GqlvMemberDisabled.java
+++ 
b/viewers/graphql/model/src/main/java/org/apache/causeway/viewer/graphql/model/domain/GqlvMemberDisabled.java
@@ -52,13 +52,6 @@ public class GqlvMemberDisabled<T extends ObjectMember> 
extends GqlvAbstract {
                 .build());
     }
 
-    public void addDataFetcher(Parent parent) {
-        context.codeRegistryBuilder.dataFetcher(
-                parent.coordinatesFor(getField()),
-                this::fetchData
-        );
-    }
-
     @Override
     protected String fetchData(final DataFetchingEnvironment 
dataFetchingEnvironment) {
 
diff --git 
a/viewers/graphql/model/src/main/java/org/apache/causeway/viewer/graphql/model/domain/GqlvMemberHidden.java
 
b/viewers/graphql/model/src/main/java/org/apache/causeway/viewer/graphql/model/domain/GqlvMemberHidden.java
index 2928490117..d8b0098df3 100644
--- 
a/viewers/graphql/model/src/main/java/org/apache/causeway/viewer/graphql/model/domain/GqlvMemberHidden.java
+++ 
b/viewers/graphql/model/src/main/java/org/apache/causeway/viewer/graphql/model/domain/GqlvMemberHidden.java
@@ -52,13 +52,6 @@ public class GqlvMemberHidden<T extends ObjectMember> 
extends GqlvAbstract {
                 .build());
     }
 
-    public void addDataFetcher(Parent parent) {
-        context.codeRegistryBuilder.dataFetcher(
-                parent.coordinatesFor(getField()),
-                this::fetchData
-        );
-    }
-
     @Override
     protected Object fetchData(final DataFetchingEnvironment 
dataFetchingEnvironment) {
 
diff --git 
a/viewers/graphql/model/src/main/java/org/apache/causeway/viewer/graphql/model/domain/GqlvMeta.java
 
b/viewers/graphql/model/src/main/java/org/apache/causeway/viewer/graphql/model/domain/GqlvMeta.java
index cedc1250e6..431381b98c 100644
--- 
a/viewers/graphql/model/src/main/java/org/apache/causeway/viewer/graphql/model/domain/GqlvMeta.java
+++ 
b/viewers/graphql/model/src/main/java/org/apache/causeway/viewer/graphql/model/domain/GqlvMeta.java
@@ -69,13 +69,8 @@ public class GqlvMeta extends GqlvAbstractCustom {
         buildObjectTypeAndField(fieldName);
     }
 
-
-    public void addDataFetchers(Parent parent) {
-
-        context.codeRegistryBuilder.dataFetcher(
-                parent.coordinatesFor(getField()),
-                this::fetchData);
-
+    @Override
+    protected void addDataFetchersForChildren() {
         context.codeRegistryBuilder.dataFetcher(
                 coordinates(getGqlObjectType(), logicalTypeName),
                 (DataFetcher<Object>) environment -> 
environment.<Fetcher>getSource().logicalTypeName());
diff --git 
a/viewers/graphql/model/src/main/java/org/apache/causeway/viewer/graphql/model/domain/GqlvMutationForAction.java
 
b/viewers/graphql/model/src/main/java/org/apache/causeway/viewer/graphql/model/domain/GqlvMutationForAction.java
index 5b01b9ed3e..81274cac1a 100644
--- 
a/viewers/graphql/model/src/main/java/org/apache/causeway/viewer/graphql/model/domain/GqlvMutationForAction.java
+++ 
b/viewers/graphql/model/src/main/java/org/apache/causeway/viewer/graphql/model/domain/GqlvMutationForAction.java
@@ -115,13 +115,6 @@ public class GqlvMutationForAction extends GqlvAbstract {
         }
     }
 
-    public void addDataFetcher(Parent parent) {
-        context.codeRegistryBuilder.dataFetcher(
-                parent.coordinatesFor(getField()),
-                this::fetchData
-        );
-    }
-
     @Override
     protected Object fetchData(final DataFetchingEnvironment 
dataFetchingEnvironment) {
 
diff --git 
a/viewers/graphql/model/src/main/java/org/apache/causeway/viewer/graphql/model/domain/GqlvMutationForProperty.java
 
b/viewers/graphql/model/src/main/java/org/apache/causeway/viewer/graphql/model/domain/GqlvMutationForProperty.java
index c5088fab9f..4826ee7ce2 100644
--- 
a/viewers/graphql/model/src/main/java/org/apache/causeway/viewer/graphql/model/domain/GqlvMutationForProperty.java
+++ 
b/viewers/graphql/model/src/main/java/org/apache/causeway/viewer/graphql/model/domain/GqlvMutationForProperty.java
@@ -75,23 +75,6 @@ public class GqlvMutationForProperty extends GqlvAbstract {
         return TypeNames.objectTypeNameFor(objectSpecification) + "__" + 
oneToOneAssociation.getId();
     }
 
-
-    public void addDataFetcher(Parent parent) {
-
-        val beanSort = oneToOneAssociation.getElementType().getBeanSort();
-
-        switch (beanSort) {
-            case VALUE:
-            case VIEW_MODEL:
-            case ENTITY:
-                context.codeRegistryBuilder.dataFetcher(
-                        parent.coordinatesFor(getField()),
-                        this::fetchData);
-
-                break;
-        }
-    }
-
     @Override
     protected Object fetchData(final DataFetchingEnvironment 
dataFetchingEnvironment) {
 
diff --git 
a/viewers/graphql/model/src/main/java/org/apache/causeway/viewer/graphql/model/domain/GqlvProperty.java
 
b/viewers/graphql/model/src/main/java/org/apache/causeway/viewer/graphql/model/domain/GqlvProperty.java
index 2375a53ea1..0b440c2502 100644
--- 
a/viewers/graphql/model/src/main/java/org/apache/causeway/viewer/graphql/model/domain/GqlvProperty.java
+++ 
b/viewers/graphql/model/src/main/java/org/apache/causeway/viewer/graphql/model/domain/GqlvProperty.java
@@ -75,7 +75,7 @@ public class GqlvProperty
         addChildField(this.validate.getField());
 
         val choices = new GqlvPropertyChoices(this, context);
-        if (choices.hasChoices()) {
+        if (choices.isFieldDefined()) {
             addChildField(choices.getField());
             this.choices = choices;
         } else {
@@ -83,7 +83,7 @@ public class GqlvProperty
         }
 
         val autoComplete = new GqlvPropertyAutoComplete(this, context);
-        if (autoComplete.hasAutoComplete()) {
+        if (autoComplete.isFieldDefined()) {
             addChildField(autoComplete.getField());
             this.autoComplete = autoComplete;
         } else {
@@ -128,14 +128,7 @@ public class GqlvProperty
         return getObjectAssociation();
     }
 
-    public void addDataFetcher(Parent parent) {
-        context.codeRegistryBuilder.dataFetcher(
-                parent.coordinatesFor(getField()),
-                this::fetchData);
-
-        addDataFetchersForChildren();
-    }
-
+    @Override
     protected void addDataFetchersForChildren() {
         hidden.addDataFetcher(this);
         disabled.addDataFetcher(this);
diff --git 
a/viewers/graphql/model/src/main/java/org/apache/causeway/viewer/graphql/model/domain/GqlvPropertyAutoComplete.java
 
b/viewers/graphql/model/src/main/java/org/apache/causeway/viewer/graphql/model/domain/GqlvPropertyAutoComplete.java
index 0f1abe5a0a..8be5f08ecb 100644
--- 
a/viewers/graphql/model/src/main/java/org/apache/causeway/viewer/graphql/model/domain/GqlvPropertyAutoComplete.java
+++ 
b/viewers/graphql/model/src/main/java/org/apache/causeway/viewer/graphql/model/domain/GqlvPropertyAutoComplete.java
@@ -18,7 +18,6 @@
  */
 package org.apache.causeway.viewer.graphql.model.domain;
 
-import java.util.List;
 import java.util.stream.Collectors;
 
 import graphql.schema.DataFetchingEnvironment;
@@ -65,28 +64,6 @@ public class GqlvPropertyAutoComplete extends GqlvAbstract {
         }
     }
 
-    boolean hasAutoComplete() {
-        return this.getField() != null;
-    }
-
-    void addDataFetcher(Parent parent) {
-
-        val association = this.holder.getOneToOneAssociation();
-        val fieldObjectSpecification = association.getElementType();
-        val beanSort = fieldObjectSpecification.getBeanSort();
-
-        switch (beanSort) {
-            case VALUE:
-            case VIEW_MODEL:
-            case ENTITY:
-                context.codeRegistryBuilder.dataFetcher(
-                        parent.coordinatesFor(getField()),
-                        this::fetchData);
-
-                break;
-        }
-    }
-
     @Override
     protected Object fetchData(final DataFetchingEnvironment 
dataFetchingEnvironment) {
 
diff --git 
a/viewers/graphql/model/src/main/java/org/apache/causeway/viewer/graphql/model/domain/GqlvPropertyChoices.java
 
b/viewers/graphql/model/src/main/java/org/apache/causeway/viewer/graphql/model/domain/GqlvPropertyChoices.java
index a6358d4d8d..85fee1f404 100644
--- 
a/viewers/graphql/model/src/main/java/org/apache/causeway/viewer/graphql/model/domain/GqlvPropertyChoices.java
+++ 
b/viewers/graphql/model/src/main/java/org/apache/causeway/viewer/graphql/model/domain/GqlvPropertyChoices.java
@@ -18,7 +18,6 @@
  */
 package org.apache.causeway.viewer.graphql.model.domain;
 
-import java.util.List;
 import java.util.stream.Collectors;
 
 import graphql.schema.DataFetchingEnvironment;
@@ -61,28 +60,6 @@ public class GqlvPropertyChoices extends GqlvAbstract {
         }
     }
 
-    boolean hasChoices() {
-        return this.getField() != null;
-    }
-
-    void addDataFetcher(Parent parent) {
-
-        val association = this.holder.getOneToOneAssociation();
-        val fieldObjectSpecification = association.getElementType();
-        val beanSort = fieldObjectSpecification.getBeanSort();
-
-        switch (beanSort) {
-            case VALUE:
-            case VIEW_MODEL:
-            case ENTITY:
-                context.codeRegistryBuilder.dataFetcher(
-                        parent.coordinatesFor(getField()),
-                        this::fetchData);
-
-                break;
-        }
-    }
-
     @Override
     protected Object fetchData(final DataFetchingEnvironment 
dataFetchingEnvironment) {
 
diff --git 
a/viewers/graphql/model/src/main/java/org/apache/causeway/viewer/graphql/model/domain/GqlvPropertySet.java
 
b/viewers/graphql/model/src/main/java/org/apache/causeway/viewer/graphql/model/domain/GqlvPropertySet.java
index 0d608cff5f..f3fc440738 100644
--- 
a/viewers/graphql/model/src/main/java/org/apache/causeway/viewer/graphql/model/domain/GqlvPropertySet.java
+++ 
b/viewers/graphql/model/src/main/java/org/apache/causeway/viewer/graphql/model/domain/GqlvPropertySet.java
@@ -67,24 +67,6 @@ public class GqlvPropertySet extends GqlvAbstract {
         return 
context.typeMapper.outputTypeFor(holder.getObjectSpecification());   // setters 
return void, so we return the domain object instead
     }
 
-    void addDataFetcher(Parent parent) {
-
-        val association = this.holder.getOneToOneAssociation();
-        val fieldObjectSpecification = association.getElementType();
-        val beanSort = fieldObjectSpecification.getBeanSort();
-
-        switch (beanSort) {
-            case VALUE:
-            case VIEW_MODEL:
-            case ENTITY:
-                context.codeRegistryBuilder.dataFetcher(
-                        parent.coordinatesFor(getField()),
-                        this::fetchData);
-
-                break;
-        }
-    }
-
     @Override
     protected Object fetchData(final DataFetchingEnvironment 
dataFetchingEnvironment) {
 
diff --git 
a/viewers/graphql/model/src/main/java/org/apache/causeway/viewer/graphql/model/domain/GqlvPropertyValidate.java
 
b/viewers/graphql/model/src/main/java/org/apache/causeway/viewer/graphql/model/domain/GqlvPropertyValidate.java
index 2a4f98d60f..eaeee3d1db 100644
--- 
a/viewers/graphql/model/src/main/java/org/apache/causeway/viewer/graphql/model/domain/GqlvPropertyValidate.java
+++ 
b/viewers/graphql/model/src/main/java/org/apache/causeway/viewer/graphql/model/domain/GqlvPropertyValidate.java
@@ -52,24 +52,6 @@ public class GqlvPropertyValidate extends GqlvAbstract {
         setField(fieldBuilder.build());
     }
 
-    void addDataFetcher(Parent parent) {
-
-        val association = this.holder.getOneToOneAssociation();
-        val fieldObjectSpecification = association.getElementType();
-        val beanSort = fieldObjectSpecification.getBeanSort();
-
-        switch (beanSort) {
-            case VALUE:
-            case VIEW_MODEL:
-            case ENTITY:
-                context.codeRegistryBuilder.dataFetcher(
-                        parent.coordinatesFor(getField()),
-                        this::fetchData);
-
-                break;
-        }
-    }
-
     @Override
     protected Object fetchData(final DataFetchingEnvironment 
dataFetchingEnvironment) {
 
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
index 0db7d3456c..df8dcc0d18 100644
--- 
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
@@ -59,17 +59,10 @@ public class GqlvScenario
     }
 
 
-    public void addDataFetchers(Parent parent) {
-        context.codeRegistryBuilder.dataFetcher(
-                parent.coordinatesFor(getField()),
-                this::fetchData);
-
-        addDataFetchersForChildren();
-    }
-
+    @Override
     protected void addDataFetchersForChildren() {
-        scenarioName.addDataFetchers(this);
-        scenarioGiven.addDataFetchers(this);
+        scenarioName.addDataFetcher(this);
+        scenarioGiven.addDataFetcher(this);
     }
 
     @Override
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 8ff9cff420..c5d3cae20b 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
@@ -46,7 +46,7 @@ public class GqlvScenarioGiven
 
         // add domain object lookup to top-level query
         for (GqlvDomainObject domainObject : this.domainObjects) {
-            addChildField(domainObject.getLookupField());
+            addChildField(domainObject.getField());
         }
 
 
@@ -54,23 +54,15 @@ public class GqlvScenarioGiven
     }
 
 
-    public void addDataFetchers(Parent parent) {
-        context.codeRegistryBuilder.dataFetcher(
-                parent.coordinatesFor(getField()),
-                this::fetchData);
-
-        addDataFetchersForChildren();
-    }
-
     protected void addDataFetchersForChildren() {
         domainServices.forEach(domainService -> {
             boolean actionsAdded = domainService.hasActions();
             if (actionsAdded) {
-                domainService.addDataFetchers(this);
+                domainService.addDataFetcher(this);
             }
         });
 
-        domainObjects.forEach(domainObject -> 
domainObject.addDataFetchers(this));
+        domainObjects.forEach(domainObject -> 
domainObject.addDataFetcher(this));
     }
 
     @Override
diff --git 
a/viewers/graphql/model/src/main/java/org/apache/causeway/viewer/graphql/model/domain/GqlvScenarioName.java
 
b/viewers/graphql/model/src/main/java/org/apache/causeway/viewer/graphql/model/domain/GqlvScenarioName.java
index 2d5aaed682..98696d759d 100644
--- 
a/viewers/graphql/model/src/main/java/org/apache/causeway/viewer/graphql/model/domain/GqlvScenarioName.java
+++ 
b/viewers/graphql/model/src/main/java/org/apache/causeway/viewer/graphql/model/domain/GqlvScenarioName.java
@@ -24,12 +24,6 @@ public class GqlvScenarioName extends GqlvAbstract {
         );
     }
 
-    public void addDataFetchers(Parent parent) {
-        context.codeRegistryBuilder.dataFetcher(
-                parent.coordinatesFor(getField()),
-                this::fetchData);
-    }
-
     @Override
     protected Object fetchData(DataFetchingEnvironment environment) {
         val graphQlContext = environment.getGraphQlContext();
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 8696374203..1668709db0 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
@@ -54,7 +54,7 @@ public class GqlvTopLevelQuery
 
         // add domain object lookup to top-level query
         for (GqlvDomainObject domainObject : this.domainObjects) {
-            addChildField(domainObject.getLookupField());
+            addChildField(domainObject.getField());
         }
 
         scenario = new GqlvScenario(context);
@@ -84,13 +84,13 @@ public class GqlvTopLevelQuery
         domainServices.forEach(domainService -> {
             boolean actionsAdded = domainService.hasActions();
             if (actionsAdded) {
-                domainService.addDataFetchers(this);
+                domainService.addDataFetcher(this);
             }
         });
 
 
-        domainObjects.forEach(domainObject -> 
domainObject.addDataFetchers(this));
+        domainObjects.forEach(domainObject -> 
domainObject.addDataFetcher(this));
 
-        scenario.addDataFetchers(this);
+        scenario.addDataFetcher(this);
     }
 }


Reply via email to