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 062658e08764a8e47f0664e91ab6499b90edc9f8
Author: danhaywood <[email protected]>
AuthorDate: Mon Feb 12 20:07:59 2024 +0000

    CAUSEWAY-3676: splits out Parent from Holder interfaces
---
 .../graphql/model/domain/GqlvAbstractCustom.java       |  3 +--
 .../viewer/graphql/model/domain/GqlvAction.java        |  7 ++++---
 .../viewer/graphql/model/domain/GqlvActionInvoke.java  |  7 +++----
 .../viewer/graphql/model/domain/GqlvActionParam.java   |  7 +++----
 .../model/domain/GqlvActionParamAutoComplete.java      | 11 +++++------
 .../graphql/model/domain/GqlvActionParamChoices.java   | 11 +++++------
 .../graphql/model/domain/GqlvActionParamDefault.java   | 11 +++++------
 .../graphql/model/domain/GqlvActionParamDisabled.java  |  7 +++----
 .../graphql/model/domain/GqlvActionParamHidden.java    |  7 +++----
 .../graphql/model/domain/GqlvActionParamValidate.java  |  7 +++----
 .../viewer/graphql/model/domain/GqlvActionParams.java  |  7 +++----
 .../graphql/model/domain/GqlvActionValidity.java       |  9 ++++-----
 .../graphql/model/domain/GqlvAssociationGet.java       | 11 +++++------
 .../viewer/graphql/model/domain/GqlvCollection.java    |  4 ++--
 .../viewer/graphql/model/domain/GqlvDomainObject.java  | 14 +++-----------
 .../viewer/graphql/model/domain/GqlvDomainService.java | 18 +++---------------
 .../viewer/graphql/model/domain/GqlvMember.java        |  3 +--
 .../graphql/model/domain/GqlvMemberDisabled.java       |  9 ++++-----
 .../viewer/graphql/model/domain/GqlvMemberHidden.java  |  9 ++++-----
 .../causeway/viewer/graphql/model/domain/GqlvMeta.java |  7 +++----
 .../graphql/model/domain/GqlvMutationForAction.java    | 10 ++--------
 .../graphql/model/domain/GqlvMutationForProperty.java  | 11 ++---------
 .../viewer/graphql/model/domain/GqlvProperty.java      |  4 ++--
 .../graphql/model/domain/GqlvPropertyAutoComplete.java | 11 +++++------
 .../graphql/model/domain/GqlvPropertyChoices.java      | 11 +++++------
 .../viewer/graphql/model/domain/GqlvPropertySet.java   | 11 +++++------
 .../graphql/model/domain/GqlvPropertyValidate.java     | 11 +++++------
 .../viewer/graphql/model/domain/GqlvScenario.java      | 18 +++++-------------
 .../viewer/graphql/model/domain/GqlvScenarioGiven.java | 14 +++-----------
 .../viewer/graphql/model/domain/GqlvScenarioName.java  | 13 ++-----------
 .../model/domain/{GqlvHolder.java => Parent.java}      |  2 +-
 .../graphql/model/toplevel/GqlvTopLevelMutation.java   |  7 ++++---
 .../graphql/model/toplevel/GqlvTopLevelQuery.java      |  9 +++++----
 33 files changed, 113 insertions(+), 188 deletions(-)

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 32434ed56c..dd55cdea32 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
@@ -29,11 +29,10 @@ import 
org.apache.causeway.viewer.graphql.model.context.Context;
 
 import lombok.AccessLevel;
 import lombok.Getter;
-import lombok.val;
 
 import java.util.Optional;
 
-public abstract class GqlvAbstractCustom extends GqlvAbstract implements 
GqlvHolder {
+public abstract class GqlvAbstractCustom extends GqlvAbstract implements 
Parent {
 
     protected final GraphQLObjectType.Builder gqlObjectTypeBuilder;
     private final String typeName;
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 82c421e224..1f25d52f6c 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
@@ -55,7 +55,8 @@ public class GqlvAction
                    GqlvMemberDisabled.Holder<ObjectAction>,
                    GqlvActionInvoke.Holder,
                    GqlvActionValidity.Holder,
-                   GqlvActionParams.Holder {
+                   GqlvActionParams.Holder,
+        Parent {
 
     private final GqlvMemberHidden<ObjectAction> hidden;
     private final GqlvMemberDisabled<ObjectAction> disabled;
@@ -248,9 +249,9 @@ public class GqlvAction
         return getObjectMember();
     }
 
-    public void addDataFetcher(Holder holder) {
+    public void addDataFetcher(Parent parent) {
         context.codeRegistryBuilder.dataFetcher(
-                holder.coordinatesFor(getField()),
+                parent.coordinatesFor(getField()),
                 new BookmarkedPojoFetcher(context.bookmarkService));
 
         hidden.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 86e2bdda5e..2ef852148f 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,9 +119,9 @@ public class GqlvActionInvoke extends GqlvAbstract {
         }
     }
 
-    public void addDataFetcher(Holder holder) {
+    public void addDataFetcher(Parent parent) {
         context.codeRegistryBuilder.dataFetcher(
-                holder.coordinatesFor(getField()),
+                parent.coordinatesFor(getField()),
                 this::invoke
         );
     }
@@ -161,8 +161,7 @@ public class GqlvActionInvoke extends GqlvAbstract {
     }
 
     public interface Holder
-            extends GqlvHolder,
-                    ObjectSpecificationProvider,
+            extends ObjectSpecificationProvider,
                     ObjectActionProvider {
 
         void addGqlArguments(
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 ce20ab578a..f1d65abafe 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
@@ -130,9 +130,9 @@ public class GqlvActionParam
         return holder.getObjectAction();
     }
 
-    public void addDataFetcher(Holder holder) {
+    public void addDataFetcher(Parent parent) {
         context.codeRegistryBuilder.dataFetcher(
-                holder.coordinatesFor(getField()),
+                parent.coordinatesFor(getField()),
                 new BookmarkedPojoFetcher(context.bookmarkService));
 
         hidden.addDataFetcher(this);
@@ -167,8 +167,7 @@ public class GqlvActionParam
 
 
     public interface Holder
-            extends GqlvHolder,
-                    ObjectSpecificationProvider,
+            extends ObjectSpecificationProvider,
                     ObjectActionProvider {
 
         void addGqlArguments(
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 6f7e28fc38..a984178339 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,9 +78,9 @@ package org.apache.causeway.viewer.graphql.model.domain;
          }
      }
 
-     public void addDataFetcher(Holder holder) {
+     public void addDataFetcher(Parent parent) {
          context.codeRegistryBuilder.dataFetcher(
-                 holder.coordinatesFor(getField()),
+                 parent.coordinatesFor(getField()),
                  this::choices
          );
      }
@@ -110,10 +110,9 @@ package org.apache.causeway.viewer.graphql.model.domain;
      }
 
      public interface Holder
-             extends GqlvHolder,
-             ObjectSpecificationProvider,
-             ObjectActionProvider,
-             ObjectActionParameterProvider {
+             extends ObjectSpecificationProvider,
+                     ObjectActionProvider,
+                     ObjectActionParameterProvider {
          GqlvActionParam.Holder getHolder();
 
          void addGqlArguments(
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 7b25b4394a..97d44acbc8 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,9 +70,9 @@ package org.apache.causeway.viewer.graphql.model.domain;
          }
      }
 
-     public void addDataFetcher(Holder holder) {
+     public void addDataFetcher(Parent parent) {
          context.codeRegistryBuilder.dataFetcher(
-                 holder.coordinatesFor(getField()),
+                 parent.coordinatesFor(getField()),
                  this::choices
          );
      }
@@ -101,10 +101,9 @@ package org.apache.causeway.viewer.graphql.model.domain;
      }
 
      public interface Holder
-             extends GqlvHolder,
-             ObjectSpecificationProvider,
-             ObjectActionProvider,
-             ObjectActionParameterProvider {
+             extends ObjectSpecificationProvider,
+                     ObjectActionProvider,
+                     ObjectActionParameterProvider {
          GqlvActionParam.Holder getHolder();
 
          void addGqlArguments(
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 c179858180..482cdeb3c3 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
@@ -67,9 +67,9 @@ package org.apache.causeway.viewer.graphql.model.domain;
          }
      }
 
-     public void addDataFetcher(Holder holder) {
+     public void addDataFetcher(Parent parent) {
          context.codeRegistryBuilder.dataFetcher(
-                 holder.coordinatesFor(getField()),
+                 parent.coordinatesFor(getField()),
                  this::default_
          );
      }
@@ -96,10 +96,9 @@ package org.apache.causeway.viewer.graphql.model.domain;
      }
 
      public interface Holder
-             extends GqlvHolder,
-             ObjectSpecificationProvider,
-             ObjectActionProvider,
-             ObjectActionParameterProvider {
+             extends ObjectSpecificationProvider,
+                     ObjectActionProvider,
+                     ObjectActionParameterProvider {
          GqlvActionParam.Holder getHolder();
 
          void addGqlArguments(
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 3c3fb212bf..f31e8a9a03 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
@@ -58,9 +58,9 @@ public class GqlvActionParamDisabled extends GqlvAbstract {
     }
 
 
-    public void addDataFetcher(Holder holder) {
+    public void addDataFetcher(Parent parent) {
         context.codeRegistryBuilder.dataFetcher(
-                holder.coordinatesFor(getField()),
+                parent.coordinatesFor(getField()),
                 this::disabled
         );
     }
@@ -85,8 +85,7 @@ public class GqlvActionParamDisabled extends GqlvAbstract {
     }
 
     public interface Holder
-            extends GqlvHolder,
-                    ObjectSpecificationProvider,
+            extends ObjectSpecificationProvider,
                     ObjectActionProvider,
                     ObjectActionParameterProvider {
         void addGqlArguments(
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 59d47c5d0e..7c5a32085b 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,9 +57,9 @@ public class GqlvActionParamHidden extends GqlvAbstract {
     }
 
 
-    public void addDataFetcher(Holder holder) {
+    public void addDataFetcher(Parent parent) {
         context.codeRegistryBuilder.dataFetcher(
-                holder.coordinatesFor(getField()),
+                parent.coordinatesFor(getField()),
                 this::hidden
         );
     }
@@ -87,8 +87,7 @@ public class GqlvActionParamHidden extends GqlvAbstract {
     }
 
     public interface Holder
-            extends GqlvHolder,
-                    ObjectSpecificationProvider,
+            extends ObjectSpecificationProvider,
                     ObjectActionProvider,
                     ObjectActionParameterProvider {
         void addGqlArguments(
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 dc746594e2..c7b7e9d029 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
@@ -57,9 +57,9 @@ public class GqlvActionParamValidate extends GqlvAbstract {
     }
 
 
-    public void addDataFetcher(Holder holder) {
+    public void addDataFetcher(Parent parent) {
         context.codeRegistryBuilder.dataFetcher(
-                holder.coordinatesFor(getField()),
+                parent.coordinatesFor(getField()),
                 this::disabled
         );
     }
@@ -87,8 +87,7 @@ public class GqlvActionParamValidate extends GqlvAbstract {
     }
 
     public interface Holder
-            extends GqlvHolder,
-                    ObjectSpecificationProvider,
+            extends ObjectSpecificationProvider,
                     ObjectActionProvider,
                     ObjectActionParameterProvider {
         void addGqlArgument(ObjectAction objectAction, 
GraphQLFieldDefinition.Builder fieldBuilder, TypeMapper.InputContext 
inputContext, int paramNum);
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 89289762cf..d244db8e64 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
@@ -94,9 +94,9 @@ public class GqlvActionParams
     }
 
 
-    void addDataFetcher(Holder holder) {
+    void addDataFetcher(Parent parent) {
         context.codeRegistryBuilder.dataFetcher(
-                holder.coordinatesFor(getField()),
+                parent.coordinatesFor(getField()),
                 new BookmarkedPojoFetcher(context.bookmarkService));
 
         params.forEach((id, param) -> param.addDataFetcher(this));
@@ -118,8 +118,7 @@ public class GqlvActionParams
     }
 
     public interface Holder
-            extends GqlvHolder,
-                    ObjectSpecificationProvider,
+            extends ObjectSpecificationProvider,
                     ObjectActionProvider {
 
         void addGqlArguments(
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 cec167a4cb..f2df5e1f76 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,9 +68,9 @@ public class GqlvActionValidity extends GqlvAbstract {
         }
     }
 
-    public void addDataFetcher(Holder holder) {
+    public void addDataFetcher(Parent parent) {
         context.codeRegistryBuilder.dataFetcher(
-                holder.coordinatesFor(getField()),
+                parent.coordinatesFor(getField()),
                 this::validate
         );
     }
@@ -106,9 +106,8 @@ public class GqlvActionValidity extends GqlvAbstract {
     }
 
     public interface Holder
-            extends GqlvHolder,
-            ObjectSpecificationProvider,
-            ObjectActionProvider {
+            extends ObjectSpecificationProvider,
+                    ObjectActionProvider {
 
         void addGqlArguments(
                 ObjectAction objectAction,
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 3ebec23973..ff24a587c2 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,9 +55,9 @@ public abstract class GqlvAssociationGet<T extends 
ObjectAssociation> extends Gq
 
     abstract GraphQLOutputType outputTypeFor(Holder<T> holder);
 
-    void addDataFetcher(Holder<T> holder) {
+    void addDataFetcher(Parent parent) {
 
-        val association = holder.getObjectAssociation();
+        val association = this.holder.getObjectAssociation();
         val fieldObjectSpecification = association.getElementType();
         val beanSort = fieldObjectSpecification.getBeanSort();
 
@@ -68,7 +68,7 @@ public abstract class GqlvAssociationGet<T extends 
ObjectAssociation> extends Gq
             case ENTITY:
 
                 context.codeRegistryBuilder.dataFetcher(
-                        holder.coordinatesFor(getField()),
+                        parent.coordinatesFor(getField()),
                         this::get);
 
                 break;
@@ -98,9 +98,8 @@ public abstract class GqlvAssociationGet<T extends 
ObjectAssociation> extends Gq
     }
 
     public interface Holder<T extends ObjectAssociation>
-            extends GqlvHolder,
-            ObjectSpecificationProvider,
-            ObjectAssociationProvider<T> {
+            extends ObjectSpecificationProvider,
+                    ObjectAssociationProvider<T> {
 
     }
 }
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 df00c908e6..a2495f1d9d 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
@@ -63,9 +63,9 @@ public class GqlvCollection
         return getObjectAssociation();
     }
 
-    public void addDataFetcher(Holder holder) {
+    public void addDataFetcher(Parent parent) {
         context.codeRegistryBuilder.dataFetcher(
-                holder.coordinatesFor(getField()),
+                parent.coordinatesFor(getField()),
                 new BookmarkedPojoFetcher(context.bookmarkService));
 
         hidden.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 83b8739d6a..36d653b728 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
@@ -33,7 +33,6 @@ import static 
graphql.schema.GraphQLFieldDefinition.newFieldDefinition;
 import static graphql.schema.GraphQLInputObjectField.newInputObjectField;
 import static graphql.schema.GraphQLInputObjectType.newInputObject;
 import static graphql.schema.GraphQLNonNull.nonNull;
-import static graphql.schema.GraphQLObjectType.newObject;
 
 import org.apache.causeway.core.metamodel.spec.ActionScope;
 import org.apache.causeway.core.metamodel.spec.ObjectSpecification;
@@ -54,8 +53,6 @@ public class GqlvDomainObject
 
     @Getter private final ObjectSpecification objectSpecification;
 
-    private final Holder holder;
-
     @Getter
     private final GraphQLFieldDefinition lookupField;
 
@@ -72,18 +69,15 @@ public class GqlvDomainObject
 
     public static GqlvDomainObject of(
             final ObjectSpecification objectSpecification,
-            final Holder holder,
             final Context context) {
-        return domainObjectBySpec.computeIfAbsent(objectSpecification, spec -> 
new GqlvDomainObject(spec, holder, context));
+        return domainObjectBySpec.computeIfAbsent(objectSpecification, spec -> 
new GqlvDomainObject(spec, context));
     }
 
     public GqlvDomainObject(
             final ObjectSpecification objectSpecification,
-            final Holder holder,
             final Context context) {
         super(TypeNames.objectTypeNameFor(objectSpecification), context);
 
-        this.holder = holder;
         this.objectSpecification = objectSpecification;
 
         this.meta = new GqlvMeta(this, context);
@@ -163,10 +157,10 @@ public class GqlvDomainObject
     }
 
 
-    public void addDataFetchers(Holder holder1) {
+    public void addDataFetchers(Parent parent) {
 
         this.context.codeRegistryBuilder.dataFetcher(
-                holder1.coordinatesFor(getLookupField()),
+                parent.coordinatesFor(getLookupField()),
                 (DataFetcher<Object>) environment -> {
                     Object target = environment.getArgument("object");
                     return GqlvAction.asPojo(getObjectSpecification(), target, 
this.context.bookmarkService)
@@ -185,7 +179,5 @@ public class GqlvDomainObject
         return objectSpecification.getLogicalTypeName();
     }
 
-    public interface Holder extends GqlvHolder {
-    }
 
 }
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 57550556d2..b216dbdc4f 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
@@ -23,10 +23,6 @@ import java.util.Map;
 
 import graphql.schema.DataFetcher;
 
-import static graphql.schema.FieldCoordinates.coordinates;
-import static graphql.schema.GraphQLFieldDefinition.newFieldDefinition;
-import static graphql.schema.GraphQLObjectType.newObject;
-
 import org.apache.causeway.core.config.CausewayConfiguration;
 import org.apache.causeway.core.metamodel.spec.ObjectSpecification;
 import org.apache.causeway.core.metamodel.spec.feature.MixedIn;
@@ -43,7 +39,6 @@ public class GqlvDomainService
         extends GqlvAbstractCustom
         implements GqlvAction.Holder {
 
-    private final Holder holder;
     @Getter private final ObjectSpecification objectSpecification;
     @Getter private final Object servicePojo;
 
@@ -53,20 +48,17 @@ public class GqlvDomainService
 
     public static GqlvDomainService of(
             final ObjectSpecification objectSpecification,
-            final Holder holder,
             final Object servicePojo,
             final Context context) {
-        return domainServiceBySpec.computeIfAbsent(objectSpecification, spec 
-> new GqlvDomainService(spec, holder, servicePojo, context));
+        return domainServiceBySpec.computeIfAbsent(objectSpecification, spec 
-> new GqlvDomainService(spec, servicePojo, context));
     }
 
     public GqlvDomainService(
             final ObjectSpecification objectSpecification,
-            final Holder holder,
             final Object servicePojo,
             final Context context) {
         super(TypeNames.objectTypeNameFor(objectSpecification), context);
 
-        this.holder = holder;
         this.objectSpecification = objectSpecification;
         this.servicePojo = servicePojo;
 
@@ -97,9 +89,9 @@ public class GqlvDomainService
     }
 
 
-    public void addDataFetchers(Holder holder) {
+    public void addDataFetchers(Parent parent) {
         context.codeRegistryBuilder.dataFetcher(
-                holder.coordinatesFor(getField()),
+                parent.coordinatesFor(getField()),
                 (DataFetcher<Object>) environment -> getServicePojo());
         if (hasActions()) {
             actions.forEach((id, gqlva) -> gqlva.addDataFetcher(this));
@@ -113,8 +105,4 @@ public class GqlvDomainService
     }
 
 
-
-    public interface Holder
-            extends GqlvHolder {
-    }
 }
diff --git 
a/viewers/graphql/model/src/main/java/org/apache/causeway/viewer/graphql/model/domain/GqlvMember.java
 
b/viewers/graphql/model/src/main/java/org/apache/causeway/viewer/graphql/model/domain/GqlvMember.java
index 8f903c39f9..d7751f2c49 100644
--- 
a/viewers/graphql/model/src/main/java/org/apache/causeway/viewer/graphql/model/domain/GqlvMember.java
+++ 
b/viewers/graphql/model/src/main/java/org/apache/causeway/viewer/graphql/model/domain/GqlvMember.java
@@ -50,8 +50,7 @@ public abstract class GqlvMember<T extends ObjectMember, H 
extends GqlvMember.Ho
     }
 
     public interface Holder
-            extends GqlvHolder,
-            ObjectSpecificationProvider {
+            extends ObjectSpecificationProvider {
 
     }
 }
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 3fee26c450..88a03d3e4d 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,9 +52,9 @@ public class GqlvMemberDisabled<T extends ObjectMember> 
extends GqlvAbstract {
                 .build());
     }
 
-    public void addDataFetcher(Holder<T> holder) {
+    public void addDataFetcher(Parent parent) {
         context.codeRegistryBuilder.dataFetcher(
-                holder.coordinatesFor(getField()),
+                parent.coordinatesFor(getField()),
                 this::disabled
         );
     }
@@ -78,8 +78,7 @@ public class GqlvMemberDisabled<T extends ObjectMember> 
extends GqlvAbstract {
     }
 
     public interface Holder<T extends ObjectMember>
-            extends GqlvHolder,
-            ObjectSpecificationProvider,
-            ObjectMemberProvider<T> {
+            extends ObjectSpecificationProvider,
+                    ObjectMemberProvider<T> {
     }
 }
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 2f529c0630..5a0017a37f 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,9 +52,9 @@ public class GqlvMemberHidden<T extends ObjectMember> extends 
GqlvAbstract {
                 .build());
     }
 
-    public void addDataFetcher(Holder<T> holder) {
+    public void addDataFetcher(Parent parent) {
         context.codeRegistryBuilder.dataFetcher(
-                holder.coordinatesFor(getField()),
+                parent.coordinatesFor(getField()),
                 this::hidden
         );
     }
@@ -79,8 +79,7 @@ public class GqlvMemberHidden<T extends ObjectMember> extends 
GqlvAbstract {
     }
 
     public interface Holder<T extends ObjectMember>
-            extends GqlvHolder,
-            ObjectSpecificationProvider,
-            ObjectMemberProvider<T> {
+            extends ObjectSpecificationProvider,
+                    ObjectMemberProvider<T> {
     }
 }
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 c7173c0d03..f0d8f6552c 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
@@ -68,10 +68,10 @@ public class GqlvMeta extends GqlvAbstractCustom {
     }
 
 
-    public void addDataFetchers(Holder holder) {
+    public void addDataFetchers(Parent parent) {
 
         context.codeRegistryBuilder.dataFetcher(
-                holder.coordinatesFor(getField()),
+                parent.coordinatesFor(getField()),
                 (DataFetcher<Object>) environment ->
                     
context.bookmarkService.bookmarkFor(environment.getSource())
                         .map(bookmark -> new Fetcher(bookmark, 
context.bookmarkService, context.objectManager))
@@ -135,8 +135,7 @@ public class GqlvMeta extends GqlvAbstractCustom {
     }
 
     public interface Holder
-            extends GqlvHolder,
-            ObjectSpecificationProvider {
+            extends ObjectSpecificationProvider {
 
     }
 }
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 dbe584fab9..a990d1fcd1 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
@@ -52,18 +52,15 @@ import lombok.extern.log4j.Log4j2;
 @Log4j2
 public class GqlvMutationForAction extends GqlvAbstract {
 
-    private final Holder holder;
     private final ObjectSpecification objectSpec;
     private final ObjectAction objectAction;
     private String argumentName;
 
     public GqlvMutationForAction(
-            final Holder holder,
             final ObjectSpecification objectSpec,
             final ObjectAction objectAction,
             final Context context) {
         super(context);
-        this.holder = holder;
         this.objectSpec = objectSpec;
         this.objectAction = objectAction;
 
@@ -118,9 +115,9 @@ public class GqlvMutationForAction extends GqlvAbstract {
         }
     }
 
-    public void addDataFetcher(Holder holder) {
+    public void addDataFetcher(Parent parent) {
         context.codeRegistryBuilder.dataFetcher(
-                holder.coordinatesFor(getField()),
+                parent.coordinatesFor(getField()),
                 this::invoke
         );
     }
@@ -218,8 +215,5 @@ public class GqlvMutationForAction extends GqlvAbstract {
         return GqlvAction.argumentManagedObjectsFor(dataFetchingEnvironment, 
objectAction, context);
     }
 
-    public interface Holder
-            extends GqlvHolder {
-    }
 
 }
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 c422970dc4..70c487088d 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
@@ -43,18 +43,15 @@ import lombok.val;
 //@Log4j2
 public class GqlvMutationForProperty extends GqlvAbstract {
 
-    private final Holder holder;
     private final ObjectSpecification objectSpec;
     private final OneToOneAssociation oneToOneAssociation;
     private String argumentName;
 
     public GqlvMutationForProperty(
-            final Holder holder,
             final ObjectSpecification objectSpec,
             final OneToOneAssociation oneToOneAssociation,
             final Context context) {
         super(context);
-        this.holder = holder;
         this.objectSpec = objectSpec;
         this.oneToOneAssociation = oneToOneAssociation;
 
@@ -79,7 +76,7 @@ public class GqlvMutationForProperty extends GqlvAbstract {
     }
 
 
-    public void addDataFetcher(Holder holder) {
+    public void addDataFetcher(Parent parent) {
 
         val beanSort = oneToOneAssociation.getElementType().getBeanSort();
 
@@ -88,7 +85,7 @@ public class GqlvMutationForProperty extends GqlvAbstract {
             case VIEW_MODEL:
             case ENTITY:
                 context.codeRegistryBuilder.dataFetcher(
-                        holder.coordinatesFor(getField()),
+                        parent.coordinatesFor(getField()),
                         this::set);
 
                 break;
@@ -148,8 +145,4 @@ public class GqlvMutationForProperty extends GqlvAbstract {
     }
 
 
-    public interface Holder
-            extends GqlvHolder {
-    }
-
 }
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 1062b0ca13..b35c3f107b 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
@@ -132,9 +132,9 @@ public class GqlvProperty
         return getObjectAssociation();
     }
 
-    public void addDataFetcher(Holder holder) {
+    public void addDataFetcher(Parent parent) {
         context.codeRegistryBuilder.dataFetcher(
-                holder.coordinatesFor(getField()),
+                parent.coordinatesFor(getField()),
                 new BookmarkedPojoFetcher(context.bookmarkService));
 
         hidden.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 ee3c39cc45..2b58001609 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
@@ -69,9 +69,9 @@ public class GqlvPropertyAutoComplete extends GqlvAbstract {
         return this.getField() != null;
     }
 
-    void addDataFetcher(Holder holder) {
+    void addDataFetcher(Parent parent) {
 
-        val association = holder.getOneToOneAssociation();
+        val association = this.holder.getOneToOneAssociation();
         val fieldObjectSpecification = association.getElementType();
         val beanSort = fieldObjectSpecification.getBeanSort();
 
@@ -80,7 +80,7 @@ public class GqlvPropertyAutoComplete extends GqlvAbstract {
             case VIEW_MODEL:
             case ENTITY:
                 context.codeRegistryBuilder.dataFetcher(
-                        holder.coordinatesFor(getField()),
+                        parent.coordinatesFor(getField()),
                         this::autoComplete);
 
                 break;
@@ -108,9 +108,8 @@ public class GqlvPropertyAutoComplete extends GqlvAbstract {
     }
 
     public interface Holder
-            extends GqlvHolder,
-            ObjectSpecificationProvider,
-            OneToOneAssociationProvider {
+            extends ObjectSpecificationProvider,
+                    OneToOneAssociationProvider {
 
     }
 }
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 519f87b630..741c74e8c2 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
@@ -65,9 +65,9 @@ public class GqlvPropertyChoices extends GqlvAbstract {
         return this.getField() != null;
     }
 
-    void addDataFetcher(Holder holder) {
+    void addDataFetcher(Parent parent) {
 
-        val association = holder.getOneToOneAssociation();
+        val association = this.holder.getOneToOneAssociation();
         val fieldObjectSpecification = association.getElementType();
         val beanSort = fieldObjectSpecification.getBeanSort();
 
@@ -76,7 +76,7 @@ public class GqlvPropertyChoices extends GqlvAbstract {
             case VIEW_MODEL:
             case ENTITY:
                 context.codeRegistryBuilder.dataFetcher(
-                        holder.coordinatesFor(getField()),
+                        parent.coordinatesFor(getField()),
                         this::choices);
 
                 break;
@@ -102,9 +102,8 @@ public class GqlvPropertyChoices extends GqlvAbstract {
     }
 
     public interface Holder
-            extends GqlvHolder,
-            ObjectSpecificationProvider,
-            OneToOneAssociationProvider {
+            extends ObjectSpecificationProvider,
+                    OneToOneAssociationProvider {
 
         void addGqlArgument(OneToOneAssociation otoa, 
GraphQLFieldDefinition.Builder fieldBuilder, TypeMapper.InputContext 
inputContext);
     }
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 2fd31e4c0e..0710138aca 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,9 +67,9 @@ public class GqlvPropertySet extends GqlvAbstract {
         return 
context.typeMapper.outputTypeFor(holder.getObjectSpecification());   // setters 
return void, so we return the domain object instead
     }
 
-    void addDataFetcher(Holder holder) {
+    void addDataFetcher(Parent parent) {
 
-        val association = holder.getOneToOneAssociation();
+        val association = this.holder.getOneToOneAssociation();
         val fieldObjectSpecification = association.getElementType();
         val beanSort = fieldObjectSpecification.getBeanSort();
 
@@ -78,7 +78,7 @@ public class GqlvPropertySet extends GqlvAbstract {
             case VIEW_MODEL:
             case ENTITY:
                 context.codeRegistryBuilder.dataFetcher(
-                        holder.coordinatesFor(getField()),
+                        parent.coordinatesFor(getField()),
                         this::set);
 
                 break;
@@ -123,9 +123,8 @@ public class GqlvPropertySet extends GqlvAbstract {
     }
 
     public interface Holder
-            extends GqlvHolder,
-            ObjectSpecificationProvider,
-            OneToOneAssociationProvider {
+            extends ObjectSpecificationProvider,
+                    OneToOneAssociationProvider {
 
         void addGqlArgument(OneToOneAssociation oneToOneAssociation, 
GraphQLFieldDefinition.Builder fieldBuilder, TypeMapper.InputContext 
inputContext);
     }
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 8728b4a974..91568650a1 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,9 +52,9 @@ public class GqlvPropertyValidate extends GqlvAbstract {
         setField(fieldBuilder.build());
     }
 
-    void addDataFetcher(Holder holder) {
+    void addDataFetcher(Parent parent) {
 
-        val association = holder.getOneToOneAssociation();
+        val association = this.holder.getOneToOneAssociation();
         val fieldObjectSpecification = association.getElementType();
         val beanSort = fieldObjectSpecification.getBeanSort();
 
@@ -63,7 +63,7 @@ public class GqlvPropertyValidate extends GqlvAbstract {
             case VIEW_MODEL:
             case ENTITY:
                 context.codeRegistryBuilder.dataFetcher(
-                        holder.coordinatesFor(getField()),
+                        parent.coordinatesFor(getField()),
                         this::validate);
 
                 break;
@@ -91,9 +91,8 @@ public class GqlvPropertyValidate extends GqlvAbstract {
     }
 
     public interface Holder
-            extends GqlvHolder,
-            ObjectSpecificationProvider,
-            OneToOneAssociationProvider {
+            extends ObjectSpecificationProvider,
+                    OneToOneAssociationProvider {
 
         void addGqlArgument(OneToOneAssociation oneToOneAssociation, 
GraphQLFieldDefinition.Builder fieldBuilder, TypeMapper.InputContext 
inputContext);
     }
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 a43860f969..1082112f15 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
@@ -33,10 +33,7 @@ import 
org.apache.causeway.viewer.graphql.model.context.Context;
  * Exposes a domain service (view model or entity) via the GQL viewer.
  */
 public class GqlvScenario
-        extends GqlvAbstractCustom
-        implements GqlvScenarioName.Holder, GqlvScenarioGiven.Holder {
-
-    private final Holder holder;
+        extends GqlvAbstractCustom {
 
     private final Scenario scenarioPojo;
 
@@ -44,16 +41,14 @@ public class GqlvScenario
     private final GqlvScenarioGiven scenarioGiven;
 
     public GqlvScenario(
-            final GqlvScenario.Holder holder,
             final Context context) {
         super("Scenario", context);
-        this.holder = holder;
 
         this.scenarioPojo = 
context.serviceRegistry.lookupService(Scenario.class).orElseThrow();
 
-        this.scenarioName = new GqlvScenarioName(this, context);
+        this.scenarioName = new GqlvScenarioName(context);
         addChildField(scenarioName.getField());
-        this.scenarioGiven = new GqlvScenarioGiven(this, context);
+        this.scenarioGiven = new GqlvScenarioGiven(context);
         addChildField(scenarioGiven.getField());
 
         buildObjectType();
@@ -70,9 +65,9 @@ public class GqlvScenario
     }
 
 
-    public void addDataFetchers(Holder holder) {
+    public void addDataFetchers(Parent parent) {
         context.codeRegistryBuilder.dataFetcher(
-                holder.coordinatesFor(getField()),
+                parent.coordinatesFor(getField()),
                 (DataFetcher<Object>) environment -> scenarioPojo);
 
         scenarioName.addDataFetchers(this);
@@ -85,7 +80,4 @@ public class GqlvScenario
         return scenarioPojo.toString();
     }
 
-    public interface Holder
-            extends GqlvHolder {
-    }
 }
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 0495dfa209..f01faa063f 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
@@ -11,20 +11,15 @@ import static graphql.schema.GraphQLObjectType.newObject;
 
 public class GqlvScenarioGiven
         extends GqlvAbstractCustom
-        implements GqlvDomainService.Holder, GqlvDomainObject.Holder {
-
-    private final Holder holder;
+        implements Parent {
 
     private final List<GqlvDomainService> domainServices = new ArrayList<>();
     private final List<GqlvDomainObject> domainObjects = new ArrayList<>();
 
     public GqlvScenarioGiven(
-            final GqlvScenarioGiven.Holder holder,
             final Context context) {
         super("Given", context);
 
-        this.holder = holder;
-
         context.objectSpecifications().forEach(objectSpec -> {
             switch (objectSpec.getBeanSort()) {
 
@@ -32,7 +27,7 @@ public class GqlvScenarioGiven
                 case VIEW_MODEL: // @DomainObject(nature=VIEW_MODEL)
                 case ENTITY:     // @DomainObject(nature=ENTITY)
 
-                    domainObjects.add(new GqlvDomainObject(objectSpec, this, 
context));
+                    domainObjects.add(new GqlvDomainObject(objectSpec, 
context));
 
                     break;
             }
@@ -42,7 +37,7 @@ public class GqlvScenarioGiven
             if (Objects.requireNonNull(objectSpec.getBeanSort()) == 
BeanSort.MANAGED_BEAN_CONTRIBUTING) { // @DomainService
                 
context.serviceRegistry.lookupBeanById(objectSpec.getLogicalTypeName())
                         .ifPresent(servicePojo -> {
-                            GqlvDomainService gqlvDomainService = 
GqlvDomainService.of(objectSpec, this, servicePojo, context);
+                            GqlvDomainService gqlvDomainService = 
GqlvDomainService.of(objectSpec, servicePojo, context);
                             addChildField(gqlvDomainService.getField());
                             domainServices.add(gqlvDomainService);
                         });
@@ -70,8 +65,5 @@ public class GqlvScenarioGiven
         domainObjects.forEach(domainObject -> 
domainObject.addDataFetchers(this));
     }
 
-    public interface Holder
-            extends GqlvHolder {
-    }
 
 }
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 6e5b1330bf..b571f7fe44 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
@@ -12,16 +12,11 @@ import 
org.apache.causeway.viewer.graphql.model.context.Context;
 
 public class GqlvScenarioName extends GqlvAbstract {
 
-    private final Holder holder;
-
     public GqlvScenarioName(
-            final GqlvScenarioName.Holder holder,
             final Context context) {
 
         super(context);
 
-        this.holder = holder;
-
         setField(newFieldDefinition()
                     .name("Name")
                     .type(Scalars.GraphQLString)
@@ -29,9 +24,9 @@ public class GqlvScenarioName extends GqlvAbstract {
         );
     }
 
-    public void addDataFetchers(Holder holder) {
+    public void addDataFetchers(Parent parent) {
         context.codeRegistryBuilder.dataFetcher(
-                holder.coordinatesFor(getField()),
+                parent.coordinatesFor(getField()),
                 (DataFetcher<Object>) environment ->  name(environment));
     }
 
@@ -41,8 +36,4 @@ public class GqlvScenarioName extends GqlvAbstract {
         return 
context.serviceRegistry.lookupService(Scenario.class).map(Scenario::getName).orElseThrow();
     }
 
-    public interface Holder
-            extends GqlvHolder {
-    }
-
 }
diff --git 
a/viewers/graphql/model/src/main/java/org/apache/causeway/viewer/graphql/model/domain/GqlvHolder.java
 
b/viewers/graphql/model/src/main/java/org/apache/causeway/viewer/graphql/model/domain/Parent.java
similarity index 97%
rename from 
viewers/graphql/model/src/main/java/org/apache/causeway/viewer/graphql/model/domain/GqlvHolder.java
rename to 
viewers/graphql/model/src/main/java/org/apache/causeway/viewer/graphql/model/domain/Parent.java
index 588d9dd7e0..a03de13e56 100644
--- 
a/viewers/graphql/model/src/main/java/org/apache/causeway/viewer/graphql/model/domain/GqlvHolder.java
+++ 
b/viewers/graphql/model/src/main/java/org/apache/causeway/viewer/graphql/model/domain/Parent.java
@@ -21,7 +21,7 @@ package org.apache.causeway.viewer.graphql.model.domain;
 import graphql.schema.FieldCoordinates;
 import graphql.schema.GraphQLFieldDefinition;
 
-public interface GqlvHolder {
+public interface Parent {
 
     /**
      * Called while registering the fetchers.
diff --git 
a/viewers/graphql/model/src/main/java/org/apache/causeway/viewer/graphql/model/toplevel/GqlvTopLevelMutation.java
 
b/viewers/graphql/model/src/main/java/org/apache/causeway/viewer/graphql/model/toplevel/GqlvTopLevelMutation.java
index a87e0e82b3..547e627411 100644
--- 
a/viewers/graphql/model/src/main/java/org/apache/causeway/viewer/graphql/model/toplevel/GqlvTopLevelMutation.java
+++ 
b/viewers/graphql/model/src/main/java/org/apache/causeway/viewer/graphql/model/toplevel/GqlvTopLevelMutation.java
@@ -16,12 +16,13 @@ import 
org.apache.causeway.viewer.graphql.model.context.Context;
 import org.apache.causeway.viewer.graphql.model.domain.GqlvAbstractCustom;
 import org.apache.causeway.viewer.graphql.model.domain.GqlvMutationForAction;
 import org.apache.causeway.viewer.graphql.model.domain.GqlvMutationForProperty;
+import org.apache.causeway.viewer.graphql.model.domain.Parent;
 
 import lombok.val;
 
 public class GqlvTopLevelMutation
                 extends GqlvAbstractCustom
-                implements GqlvMutationForAction.Holder, 
GqlvMutationForProperty.Holder {
+                implements Parent {
 
     private final List<GqlvMutationForAction> actions = new ArrayList<>();
     private final List<GqlvMutationForProperty> properties = new ArrayList<>();
@@ -46,13 +47,13 @@ public class GqlvTopLevelMutation
     }
 
     public void addAction(ObjectSpecification objectSpec, final ObjectAction 
objectAction) {
-        val gqlvMutationForAction = new GqlvMutationForAction(this, 
objectSpec, objectAction, context);
+        val gqlvMutationForAction = new GqlvMutationForAction(objectSpec, 
objectAction, context);
         addChildField(gqlvMutationForAction.getField());
         actions.add(gqlvMutationForAction);
     }
 
     public void addProperty(ObjectSpecification objectSpec, final 
OneToOneAssociation property) {
-        val gqlvMutationForProperty = new GqlvMutationForProperty(this, 
objectSpec, property, context);
+        val gqlvMutationForProperty = new GqlvMutationForProperty(objectSpec, 
property, context);
         addChildField(gqlvMutationForProperty.getField());
         properties.add(gqlvMutationForProperty);
     }
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 47a16a199b..6205082faf 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
@@ -12,10 +12,11 @@ import 
org.apache.causeway.viewer.graphql.model.domain.GqlvAbstractCustom;
 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 org.apache.causeway.viewer.graphql.model.domain.Parent;
 
 public class GqlvTopLevelQuery
         extends GqlvAbstractCustom
-        implements GqlvDomainService.Holder, GqlvDomainObject.Holder, 
GqlvScenario.Holder {
+        implements Parent {
 
     private final List<GqlvDomainService> domainServices = new ArrayList<>();
     private final List<GqlvDomainObject> domainObjects = new ArrayList<>();
@@ -32,7 +33,7 @@ public class GqlvTopLevelQuery
                 case VIEW_MODEL: // @DomainObject(nature=VIEW_MODEL)
                 case ENTITY:     // @DomainObject(nature=ENTITY)
 
-                    domainObjects.add(new GqlvDomainObject(objectSpec, this, 
context));
+                    domainObjects.add(new GqlvDomainObject(objectSpec, 
context));
 
                     break;
             }
@@ -44,7 +45,7 @@ public class GqlvTopLevelQuery
                 case MANAGED_BEAN_CONTRIBUTING: // @DomainService
                     
context.serviceRegistry.lookupBeanById(objectSpec.getLogicalTypeName())
                             .ifPresent(servicePojo -> {
-                                GqlvDomainService gqlvDomainService = 
GqlvDomainService.of(objectSpec, this, servicePojo, context);
+                                GqlvDomainService gqlvDomainService = 
GqlvDomainService.of(objectSpec, servicePojo, context);
                                 addChildField(gqlvDomainService.getField());
                                 domainServices.add(gqlvDomainService);
                             });
@@ -80,6 +81,6 @@ public class GqlvTopLevelQuery
 
         domainObjects.forEach(domainObject -> 
domainObject.addDataFetchers(this));
 
-//        scenario.addDataFetchers();
+//        scenario.addDataFetchers(this);
     }
 }

Reply via email to