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 eb677677c580f65c4f2159100ecd95fdfddc5158
Author: danhaywood <[email protected]>
AuthorDate: Sun Jan 21 14:42:19 2024 +0000

    CAUSEWAY-3676: still working on mutators
---
 .../viewer/graphql/model/domain/GqlvDomainObject.java        |  2 +-
 .../viewer/graphql/model/domain/GqlvDomainService.java       | 12 ++++++++++--
 .../causeway/viewer/graphql/model/domain/GqlvMutations.java  | 10 +++++++++-
 .../graphql/viewer/integration/GraphQlSourceForCauseway.java |  2 +-
 4 files changed, 21 insertions(+), 5 deletions(-)

diff --git 
a/incubator/viewers/graphql/model/src/main/java/org/apache/causeway/viewer/graphql/model/domain/GqlvDomainObject.java
 
b/incubator/viewers/graphql/model/src/main/java/org/apache/causeway/viewer/graphql/model/domain/GqlvDomainObject.java
index c89cc210a0..e938afbfdd 100644
--- 
a/incubator/viewers/graphql/model/src/main/java/org/apache/causeway/viewer/graphql/model/domain/GqlvDomainObject.java
+++ 
b/incubator/viewers/graphql/model/src/main/java/org/apache/causeway/viewer/graphql/model/domain/GqlvDomainObject.java
@@ -92,7 +92,7 @@ public class GqlvDomainObject implements GqlvActionHolder, 
GqlvPropertyHolder, G
         this.gqlObjectTypeBuilder = 
newObject().name(TypeNames.objectTypeNameFor(objectSpecification));
 
         this.meta = new GqlvMeta(this, codeRegistryBuilder, bookmarkService, 
objectManager);
-        this.mutators = new GqlvMutations(this, codeRegistryBuilder);
+        this.mutators = new GqlvMutations(this, codeRegistryBuilder, 
bookmarkService, objectManager);
 
         gqlObjectTypeBuilder.field(meta.getMetaField());
 
diff --git 
a/incubator/viewers/graphql/model/src/main/java/org/apache/causeway/viewer/graphql/model/domain/GqlvDomainService.java
 
b/incubator/viewers/graphql/model/src/main/java/org/apache/causeway/viewer/graphql/model/domain/GqlvDomainService.java
index c779466506..abe235c56b 100644
--- 
a/incubator/viewers/graphql/model/src/main/java/org/apache/causeway/viewer/graphql/model/domain/GqlvDomainService.java
+++ 
b/incubator/viewers/graphql/model/src/main/java/org/apache/causeway/viewer/graphql/model/domain/GqlvDomainService.java
@@ -6,6 +6,8 @@ import java.util.List;
 import java.util.Optional;
 import java.util.concurrent.atomic.AtomicBoolean;
 
+import org.apache.causeway.applib.services.bookmark.BookmarkService;
+import org.apache.causeway.core.metamodel.objectmanager.ObjectManager;
 import org.apache.causeway.core.metamodel.spec.ActionScope;
 import org.apache.causeway.core.metamodel.spec.ObjectSpecification;
 import org.apache.causeway.core.metamodel.spec.feature.MixedIn;
@@ -35,6 +37,8 @@ public class GqlvDomainService implements GqlvActionHolder, 
GqlvMutationsHolder
     private final GraphQLCodeRegistry.Builder codeRegistryBuilder;
 
     @Getter private final GqlvMutations mutators;
+    private final BookmarkService bookmarkService;
+    private final ObjectManager objectManager;
 
     @Getter private final GraphQLObjectType.Builder gqlObjectTypeBuilder;
 
@@ -57,7 +61,9 @@ public class GqlvDomainService implements GqlvActionHolder, 
GqlvMutationsHolder
     public GqlvDomainService(
             final ObjectSpecification objectSpecification,
             final Object servicePojo,
-            final GraphQLCodeRegistry.Builder codeRegistryBuilder
+            final GraphQLCodeRegistry.Builder codeRegistryBuilder,
+            final BookmarkService bookmarkService,
+            final ObjectManager objectManager
     ) {
         this.objectSpecification = objectSpecification;
         this.servicePojo = servicePojo;
@@ -65,8 +71,10 @@ public class GqlvDomainService implements GqlvActionHolder, 
GqlvMutationsHolder
 
         this.gqlObjectTypeBuilder = 
newObject().name(TypeNames.objectTypeNameFor(objectSpecification));
 
-        this.mutators = new GqlvMutations(this, codeRegistryBuilder);
+        this.mutators = new GqlvMutations(this, codeRegistryBuilder, 
bookmarkService, objectManager);
 
+        this.bookmarkService = bookmarkService;
+        this.objectManager = objectManager;
     }
 
     /**
diff --git 
a/incubator/viewers/graphql/model/src/main/java/org/apache/causeway/viewer/graphql/model/domain/GqlvMutations.java
 
b/incubator/viewers/graphql/model/src/main/java/org/apache/causeway/viewer/graphql/model/domain/GqlvMutations.java
index c79c2561c9..7a467ea319 100644
--- 
a/incubator/viewers/graphql/model/src/main/java/org/apache/causeway/viewer/graphql/model/domain/GqlvMutations.java
+++ 
b/incubator/viewers/graphql/model/src/main/java/org/apache/causeway/viewer/graphql/model/domain/GqlvMutations.java
@@ -10,6 +10,8 @@ import java.util.Collections;
 import java.util.List;
 import java.util.Optional;
 
+import org.apache.causeway.applib.services.bookmark.BookmarkService;
+import org.apache.causeway.core.metamodel.objectmanager.ObjectManager;
 import org.apache.causeway.core.metamodel.spec.feature.ObjectAction;
 import org.apache.causeway.viewer.graphql.model.util.TypeNames;
 
@@ -20,6 +22,8 @@ public class GqlvMutations implements GqlvActionHolder {
 
     private final GqlvMutationsHolder holder;
     private final GraphQLCodeRegistry.Builder codeRegistryBuilder;
+    private final BookmarkService bookmarkService;
+    private final ObjectManager objectManager;
 
     /**
      * Used to build {@link #mutationsTypeIfAny}.
@@ -34,10 +38,14 @@ public class GqlvMutations implements GqlvActionHolder {
 
     public GqlvMutations(
             final GqlvMutationsHolder holder,
-            final GraphQLCodeRegistry.Builder codeRegistryBuilder
+            final GraphQLCodeRegistry.Builder codeRegistryBuilder,
+            final BookmarkService bookmarkService,
+            final ObjectManager objectManager
     ) {
         this.holder = holder;
         this.codeRegistryBuilder = codeRegistryBuilder;
+        this.bookmarkService = bookmarkService;
+        this.objectManager = objectManager;
 
         gqlObjectTypeBuilder = 
newObject().name(TypeNames.mutationsTypeNameFor(this.holder.getObjectSpecification()));
     }
diff --git 
a/incubator/viewers/graphql/viewer/src/main/java/org/apache/causeway/viewer/graphql/viewer/integration/GraphQlSourceForCauseway.java
 
b/incubator/viewers/graphql/viewer/src/main/java/org/apache/causeway/viewer/graphql/viewer/integration/GraphQlSourceForCauseway.java
index 758300911b..9b89e2b524 100644
--- 
a/incubator/viewers/graphql/viewer/src/main/java/org/apache/causeway/viewer/graphql/viewer/integration/GraphQlSourceForCauseway.java
+++ 
b/incubator/viewers/graphql/viewer/src/main/java/org/apache/causeway/viewer/graphql/viewer/integration/GraphQlSourceForCauseway.java
@@ -178,7 +178,7 @@ public class GraphQlSourceForCauseway implements 
GraphQlSource {
             final GqlvTopLevelQuery topLevelQueryStructure,
             final GraphQLCodeRegistry.Builder codeRegistryBuilder) {
 
-        val domainService = new GqlvDomainService(objectSpec, servicePojo, 
codeRegistryBuilder);
+        val domainService = new GqlvDomainService(objectSpec, servicePojo, 
codeRegistryBuilder, bookmarkService, objectManager);
 
         boolean actionsAdded = domainService.addActions();
         if (!actionsAdded) {

Reply via email to