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) {
