You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@causeway.apache.org by da...@apache.org on 2024/02/19 23:48:56 UTC
(causeway) branch CAUSEWAY-3676 updated (a14a988503 -> b2d548bedd)
This is an automated email from the ASF dual-hosted git repository.
danhaywood pushed a change to branch CAUSEWAY-3676
in repository https://gitbox.apache.org/repos/asf/causeway.git
from a14a988503 CAUSEWAY-3676: renames some classes is all
add b5f44f5653 Merge pull request #2221 from apache/CAUSEWAY-3676
new f13e67a26e CAUSEWAY-3676: replaces Map of params with a simple List
new 41e1164c8d CAUSEWAY-3676: simplifies GDO a little
new b2d548bedd CAUSEWAY-3676: adds invoke.args
The 3 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails. The revisions
listed as "add" were already present in the repository and have only
been added to this reference.
Summary of changes:
.../viewer/graphql/model/domain/Environment.java | 20 ++
.../graphql/model/domain/GqlvAbstractCustom.java | 7 +-
.../graphql/model/domain/GqlvActionInvoke.java | 13 +-
...ActionParams.java => GqlvActionInvokeArgs.java} | 63 ++----
.../model/domain/GqlvActionInvokeArgsArg.java | 100 +++++++++
.../model/domain/GqlvActionInvokeResult.java | 21 +-
.../graphql/model/domain/GqlvActionParams.java | 23 +-
.../model/domain/GqlvActionParamsParamHidden.java | 2 +-
.../graphql/model/domain/GqlvDomainObject.java | 48 ++---
.../graphql/model/domain/GqlvDomainService.java | 17 +-
.../viewer/graphql/model/domain/TypeNames.java | 4 +
...alculator_IntegTest.each.add_big_decimals._.gql | 4 +
...r_IntegTest.each.add_big_decimals.approved.json | 4 +
...Calculator_IntegTest.each.scenario_concat._.gql | 4 +
...or_IntegTest.each.scenario_concat.approved.json | 4 +
...ach.find_department_and_add_staff_members._.gql | 7 +
..._department_and_add_staff_members.approved.json | 7 +
....scenario_find_department_and_change_name._.gql | 7 +-
...o_find_department_and_change_name.approved.json | 6 +
....each.create_staff_member_with_department._.gql | 11 +
...eate_staff_member_with_department.approved.json | 11 +
viewers/graphql/test/src/test/resources/schema.gql | 232 +++++++++++++++++++++
22 files changed, 486 insertions(+), 129 deletions(-)
copy viewers/graphql/model/src/main/java/org/apache/causeway/viewer/graphql/model/domain/{GqlvActionParams.java => GqlvActionInvokeArgs.java} (66%)
create mode 100644 viewers/graphql/model/src/main/java/org/apache/causeway/viewer/graphql/model/domain/GqlvActionInvokeArgsArg.java
(causeway) 02/03: CAUSEWAY-3676: simplifies GDO a little
Posted by da...@apache.org.
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 41e1164c8d276189fdad5256e71d8bafa826961d
Author: danhaywood <da...@haywood-associates.co.uk>
AuthorDate: Mon Feb 19 20:08:40 2024 +0000
CAUSEWAY-3676: simplifies GDO a little
---
.../graphql/model/domain/GqlvAbstractCustom.java | 7 ++--
.../graphql/model/domain/GqlvDomainObject.java | 48 ++++++----------------
2 files changed, 17 insertions(+), 38 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 17e762136d..92a680d374 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
@@ -61,15 +61,16 @@ public abstract class GqlvAbstractCustom extends GqlvAbstract implements Parent
return gqlObjectType != null;
}
- protected final void addChildFieldFor(@Nullable GqlvAbstract hasField) {
+ protected final <T extends GqlvAbstract> T addChildFieldFor(@Nullable T hasField) {
if (isBuilt()) {
// the type was built already
- return;
+ return hasField;
}
if (hasField == null) {
- return;
+ return hasField;
}
addChildField(hasField.getField());
+ return hasField;
}
void addChildField(GraphQLFieldDefinition childField) {
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 f591fb5296..64f200eb2a 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,9 +18,8 @@
*/
package org.apache.causeway.viewer.graphql.model.domain;
-import java.util.Map;
-import java.util.SortedMap;
-import java.util.TreeMap;
+import java.util.ArrayList;
+import java.util.List;
import graphql.Scalars;
import graphql.schema.DataFetchingEnvironment;
@@ -35,12 +34,8 @@ import static graphql.schema.GraphQLInputObjectType.newInputObject;
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;
-import org.apache.causeway.core.metamodel.spec.feature.OneToManyAssociation;
-import org.apache.causeway.core.metamodel.spec.feature.OneToOneAssociation;
import org.apache.causeway.viewer.graphql.model.context.Context;
-import graphql.schema.GraphQLList;
-
import lombok.Getter;
import lombok.val;
@@ -55,9 +50,9 @@ public class GqlvDomainObject
private final GqlvMeta meta;
- private final SortedMap<String, GqlvProperty> properties = new TreeMap<>();
- private final SortedMap<String, GqlvCollection> collections = new TreeMap<>();
- private final Map<String, GqlvAction> actions = new TreeMap<>();
+ private final List<GqlvProperty> properties = new ArrayList<>();
+ private final List<GqlvCollection> collections = new ArrayList<>();
+ private final List<GqlvAction> actions = new ArrayList<>();
@Getter private final GraphQLInputObjectType gqlInputObjectType;
@@ -131,15 +126,12 @@ public class GqlvDomainObject
private void addMembers() {
- objectSpecification.streamProperties(MixedIn.INCLUDED).forEach(this::addProperty);
- objectSpecification.streamCollections(MixedIn.INCLUDED).forEach(this::addCollection);
-
+ objectSpecification.streamProperties(MixedIn.INCLUDED)
+ .forEach(prop -> properties.add(addChildFieldFor(new GqlvProperty(this, prop, context))));
+ objectSpecification.streamCollections(MixedIn.INCLUDED)
+ .forEach(coll -> collections.add(addChildFieldFor(new GqlvCollection(this, coll, context))));
objectSpecification.streamActions(context.getActionScope(), MixedIn.INCLUDED)
- .forEach(objectAction -> {
- val gqlvAction = new GqlvAction(this, objectAction, context);
- addChildFieldFor(gqlvAction);
- actions.put(objectAction.getId(), gqlvAction);
- });
+ .forEach(act -> actions.add(addChildFieldFor(new GqlvAction(this, act, context))));
}
@SuppressWarnings("unused")
@@ -149,20 +141,6 @@ public class GqlvDomainObject
: ActionScope.PROTOTYPE;
}
- private void addProperty(final OneToOneAssociation otoa) {
- val gqlvProperty = new GqlvProperty(this, otoa, context);
- addChildFieldFor(gqlvProperty);
- properties.put(otoa.getId(), gqlvProperty);
- }
-
- private void addCollection(OneToManyAssociation otom) {
- val gqlvCollection = new GqlvCollection(this, otom, context);
- addChildFieldFor(gqlvCollection);
- if (gqlvCollection.isFieldDefined()) {
- collections.put(otom.getId(), gqlvCollection);
- }
- }
-
@Override
protected void addDataFetchersForChildren() {
@@ -170,9 +148,9 @@ public class GqlvDomainObject
return;
}
meta.addDataFetcher(this);
- properties.forEach((id, property) -> property.addDataFetcher(this));
- collections.forEach((id, collection) -> collection.addDataFetcher(this));
- actions.forEach((id, action) -> action.addDataFetcher(this));
+ properties.forEach(property -> property.addDataFetcher(this));
+ collections.forEach(collection -> collection.addDataFetcher(this));
+ actions.forEach(action -> action.addDataFetcher(this));
}
@Override
(causeway) 01/03: CAUSEWAY-3676: replaces Map of params with a simple List
Posted by da...@apache.org.
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 f13e67a26e29ecb4a7a0eb1fad5f0d20bc11a08c
Author: danhaywood <da...@haywood-associates.co.uk>
AuthorDate: Mon Feb 19 20:03:37 2024 +0000
CAUSEWAY-3676: replaces Map of params with a simple List
---
.../causeway/viewer/graphql/model/domain/GqlvActionParams.java | 8 +++++---
.../viewer/graphql/model/domain/GqlvActionParamsParamHidden.java | 2 +-
2 files changed, 6 insertions(+), 4 deletions(-)
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 d127a90b48..028cb60644 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
@@ -18,7 +18,9 @@
*/
package org.apache.causeway.viewer.graphql.model.domain;
+import java.util.ArrayList;
import java.util.LinkedHashMap;
+import java.util.List;
import java.util.Map;
import java.util.concurrent.atomic.AtomicInteger;
@@ -47,7 +49,7 @@ public class GqlvActionParams
@Getter private final Holder holder;
- private final Map<String, GqlvActionParamsParam> params = new LinkedHashMap<>();
+ private final List<GqlvActionParamsParam> params = new ArrayList<>();
public GqlvActionParams(
final Holder holder,
@@ -64,7 +66,7 @@ public class GqlvActionParams
holder.getObjectAction().getParameters().forEach(objectActionParameter -> {
val gqlvActionParam = new GqlvActionParamsParam(this, objectActionParameter, this.context, idx.getAndIncrement());
addChildFieldFor(gqlvActionParam);
- params.put(objectActionParameter.getId(), gqlvActionParam);
+ params.add(gqlvActionParam);
});
if (hasParams()) {
@@ -93,7 +95,7 @@ public class GqlvActionParams
@Override
protected void addDataFetchersForChildren() {
- params.forEach((id, param) -> param.addDataFetcher(this));
+ params.forEach(param -> param.addDataFetcher(this));
}
diff --git a/viewers/graphql/model/src/main/java/org/apache/causeway/viewer/graphql/model/domain/GqlvActionParamsParamHidden.java b/viewers/graphql/model/src/main/java/org/apache/causeway/viewer/graphql/model/domain/GqlvActionParamsParamHidden.java
index 4d48af0fca..c6937285dd 100644
--- a/viewers/graphql/model/src/main/java/org/apache/causeway/viewer/graphql/model/domain/GqlvActionParamsParamHidden.java
+++ b/viewers/graphql/model/src/main/java/org/apache/causeway/viewer/graphql/model/domain/GqlvActionParamsParamHidden.java
@@ -52,7 +52,7 @@ public class GqlvActionParamsParamHidden extends GqlvAbstract {
GraphQLFieldDefinition.Builder fieldBuilder = newFieldDefinition()
.name("hidden")
- .type((GraphQLOutputType) context.typeMapper.outputTypeFor(boolean.class));
+ .type(context.typeMapper.outputTypeFor(boolean.class));
holder.addGqlArguments(holder.getObjectAction(), fieldBuilder, TypeMapper.InputContext.DISABLE, holder.getParamNum());
setField(fieldBuilder.build());
}
(causeway) 03/03: CAUSEWAY-3676: adds invoke.args
Posted by da...@apache.org.
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 b2d548beddb6e40cc4af5fda8a4acbd5a2c536b3
Author: danhaywood <da...@haywood-associates.co.uk>
AuthorDate: Mon Feb 19 23:48:23 2024 +0000
CAUSEWAY-3676: adds invoke.args
---
.../viewer/graphql/model/domain/Environment.java | 20 ++
.../graphql/model/domain/GqlvActionInvoke.java | 13 +-
...ActionParams.java => GqlvActionInvokeArgs.java} | 61 ++----
.../model/domain/GqlvActionInvokeArgsArg.java | 100 +++++++++
.../model/domain/GqlvActionInvokeResult.java | 21 +-
.../graphql/model/domain/GqlvActionParams.java | 17 +-
.../graphql/model/domain/GqlvDomainService.java | 17 +-
.../viewer/graphql/model/domain/TypeNames.java | 4 +
...alculator_IntegTest.each.add_big_decimals._.gql | 4 +
...r_IntegTest.each.add_big_decimals.approved.json | 4 +
...Calculator_IntegTest.each.scenario_concat._.gql | 4 +
...or_IntegTest.each.scenario_concat.approved.json | 4 +
...ach.find_department_and_add_staff_members._.gql | 7 +
..._department_and_add_staff_members.approved.json | 7 +
....scenario_find_department_and_change_name._.gql | 7 +-
...o_find_department_and_change_name.approved.json | 6 +
....each.create_staff_member_with_department._.gql | 11 +
...eate_staff_member_with_department.approved.json | 11 +
viewers/graphql/test/src/test/resources/schema.gql | 232 +++++++++++++++++++++
19 files changed, 462 insertions(+), 88 deletions(-)
diff --git a/viewers/graphql/model/src/main/java/org/apache/causeway/viewer/graphql/model/domain/Environment.java b/viewers/graphql/model/src/main/java/org/apache/causeway/viewer/graphql/model/domain/Environment.java
index 4f9f09dec3..485fb2d03b 100644
--- a/viewers/graphql/model/src/main/java/org/apache/causeway/viewer/graphql/model/domain/Environment.java
+++ b/viewers/graphql/model/src/main/java/org/apache/causeway/viewer/graphql/model/domain/Environment.java
@@ -11,6 +11,10 @@ public interface Environment {
Map<String, Object> getArguments();
+ default <T> T getArgument(String name) {
+ return (T)getArguments().get(name);
+ }
+
GraphQLContext getGraphQlContext();
@RequiredArgsConstructor
@@ -28,4 +32,20 @@ public interface Environment {
return dataFetchingEnvironment.getGraphQlContext();
}
}
+
+ @RequiredArgsConstructor
+ class ForTunnelled implements Environment {
+
+ private final DataFetchingEnvironment dataFetchingEnvironment;
+
+ @Override
+ public Map<String, Object> getArguments() {
+ return dataFetchingEnvironment.getGraphQlContext().get("arguments");
+ }
+
+ @Override
+ public GraphQLContext getGraphQlContext() {
+ return dataFetchingEnvironment.getGraphQlContext();
+ }
+ }
}
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 7c2144ae27..beeb26b8f9 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
@@ -40,10 +40,12 @@ import lombok.extern.log4j.Log4j2;
@Log4j2
public class GqlvActionInvoke
extends GqlvAbstractCustom
- implements GqlvActionInvokeResult.Holder {
+ implements GqlvActionInvokeResult.Holder,
+ GqlvActionInvokeArgs.Holder {
private final Holder holder;
private final GqlvActionInvokeResult result;
+ private final GqlvActionInvokeArgs args;
public GqlvActionInvoke(
final Holder holder,
@@ -54,10 +56,12 @@ public class GqlvActionInvoke
if(isBuilt()) {
this.result = null;
+ this.args = null;
return;
}
- addChildFieldFor(this.result = new GqlvActionInvokeResult(holder, context));
+ addChildFieldFor(this.result = new GqlvActionInvokeResult(this, context));
+ addChildFieldFor(this.args = new GqlvActionInvokeArgs(this, context));
val gqlObjectType = buildObjectType();
val objectAction = holder.getObjectAction();
@@ -97,6 +101,7 @@ public class GqlvActionInvoke
@Override
protected void addDataFetchersForChildren() {
result.addDataFetcher(this);
+ args.addDataFetcher(this);
}
@Override
@@ -110,10 +115,10 @@ public class GqlvActionInvoke
@Override
public Can<ManagedObject> argumentManagedObjectsFor(
- final Environment dataFetchingEnvironment,
+ final Environment environment,
final ObjectAction objectAction,
final BookmarkService bookmarkService) {
- return holder.argumentManagedObjectsFor(dataFetchingEnvironment, objectAction, bookmarkService);
+ return holder.argumentManagedObjectsFor(environment, objectAction, bookmarkService);
}
@Override
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/GqlvActionInvokeArgs.java
similarity index 67%
copy from viewers/graphql/model/src/main/java/org/apache/causeway/viewer/graphql/model/domain/GqlvActionParams.java
copy to viewers/graphql/model/src/main/java/org/apache/causeway/viewer/graphql/model/domain/GqlvActionInvokeArgs.java
index 028cb60644..9144d41e2f 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/GqlvActionInvokeArgs.java
@@ -18,15 +18,16 @@
*/
package org.apache.causeway.viewer.graphql.model.domain;
+import graphql.schema.DataFetchingEnvironment;
+
+import lombok.Getter;
+import lombok.extern.log4j.Log4j2;
+import lombok.val;
+
import java.util.ArrayList;
-import java.util.LinkedHashMap;
import java.util.List;
-import java.util.Map;
import java.util.concurrent.atomic.AtomicInteger;
-import graphql.schema.DataFetchingEnvironment;
-import graphql.schema.GraphQLFieldDefinition;
-
import org.apache.causeway.applib.services.bookmark.BookmarkService;
import org.apache.causeway.commons.collections.Can;
import org.apache.causeway.core.metamodel.object.ManagedObject;
@@ -36,25 +37,20 @@ 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.mmproviders.ObjectActionProvider;
import org.apache.causeway.viewer.graphql.model.mmproviders.ObjectSpecificationProvider;
-import org.apache.causeway.viewer.graphql.model.types.TypeMapper;
-
-import lombok.Getter;
-import lombok.val;
-import lombok.extern.log4j.Log4j2;
@Log4j2
-public class GqlvActionParams
+public class GqlvActionInvokeArgs
extends GqlvAbstractCustom
- implements GqlvActionParamsParam.Holder {
+ implements GqlvActionInvokeArgsArg.Holder {
@Getter private final Holder holder;
- private final List<GqlvActionParamsParam> params = new ArrayList<>();
+ private final List<GqlvActionInvokeArgsArg> args = new ArrayList<>();
- public GqlvActionParams(
+ public GqlvActionInvokeArgs(
final Holder holder,
final Context context) {
- super(TypeNames.actionParamsTypeNameFor(holder.getObjectSpecification(), holder.getObjectAction()), context);
+ super(TypeNames.actionArgsTypeNameFor(holder.getObjectSpecification(), holder.getObjectAction()), context);
this.holder = holder;
if (isBuilt()) {
@@ -64,14 +60,14 @@ public class GqlvActionParams
val idx = new AtomicInteger(0);
holder.getObjectAction().getParameters().forEach(objectActionParameter -> {
- val gqlvActionParam = new GqlvActionParamsParam(this, objectActionParameter, this.context, idx.getAndIncrement());
- addChildFieldFor(gqlvActionParam);
- params.add(gqlvActionParam);
+ args.add(addChildFieldFor(new GqlvActionInvokeArgsArg(this, objectActionParameter, this.context, idx.getAndIncrement())));
});
- if (hasParams()) {
- buildObjectTypeAndField("params");
+ if (args.isEmpty()) {
+ return;
}
+
+ buildObjectTypeAndField("args");
}
@Override
@@ -89,32 +85,18 @@ public class GqlvActionParams
return holder.getObjectAction();
}
- public boolean hasParams() {
- return !params.isEmpty();
- }
-
@Override
protected void addDataFetchersForChildren() {
- params.forEach(param -> param.addDataFetcher(this));
+ args.forEach(param -> param.addDataFetcher(this));
}
-
@Override
protected Object fetchData(DataFetchingEnvironment dataFetchingEnvironment) {
return BookmarkedPojo.sourceFrom(dataFetchingEnvironment, context);
}
@Override
- public void addGqlArguments(
- ObjectAction objectAction, GraphQLFieldDefinition.Builder fieldBuilder, TypeMapper.InputContext inputContext, int paramNum) {
- holder.addGqlArguments(objectAction, fieldBuilder, inputContext, paramNum);
- }
-
- @Override
- public Can<ManagedObject> argumentManagedObjectsFor(
- Environment dataFetchingEnvironment,
- ObjectAction objectAction,
- BookmarkService bookmarkService) {
+ public Can<ManagedObject> argumentManagedObjectsFor(Environment dataFetchingEnvironment, ObjectAction objectAction, BookmarkService bookmarkService) {
return holder.argumentManagedObjectsFor(dataFetchingEnvironment, objectAction, bookmarkService);
}
@@ -122,15 +104,10 @@ public class GqlvActionParams
extends ObjectSpecificationProvider,
ObjectActionProvider {
- void addGqlArguments(
- ObjectAction objectAction,
- GraphQLFieldDefinition.Builder fieldBuilder,
- TypeMapper.InputContext inputContext,
- int paramNum);
-
Can<ManagedObject> argumentManagedObjectsFor(
Environment dataFetchingEnvironment,
ObjectAction objectAction,
BookmarkService bookmarkService);
+
}
}
diff --git a/viewers/graphql/model/src/main/java/org/apache/causeway/viewer/graphql/model/domain/GqlvActionInvokeArgsArg.java b/viewers/graphql/model/src/main/java/org/apache/causeway/viewer/graphql/model/domain/GqlvActionInvokeArgsArg.java
new file mode 100644
index 0000000000..f46436a4d1
--- /dev/null
+++ b/viewers/graphql/model/src/main/java/org/apache/causeway/viewer/graphql/model/domain/GqlvActionInvokeArgsArg.java
@@ -0,0 +1,100 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.causeway.viewer.graphql.model.domain;
+
+import graphql.schema.DataFetchingEnvironment;
+
+import org.apache.causeway.applib.services.bookmark.BookmarkService;
+import org.apache.causeway.commons.collections.Can;
+import org.apache.causeway.core.metamodel.object.ManagedObject;
+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.domain.GqlvAbstract;
+import org.apache.causeway.viewer.graphql.model.fetcher.BookmarkedPojo;
+import org.apache.causeway.viewer.graphql.model.mmproviders.ObjectActionProvider;
+import org.apache.causeway.viewer.graphql.model.mmproviders.ObjectSpecificationProvider;
+
+import graphql.schema.GraphQLList;
+
+import lombok.Getter;
+import lombok.extern.log4j.Log4j2;
+import lombok.val;
+
+import java.util.Map;
+
+import static graphql.schema.GraphQLFieldDefinition.newFieldDefinition;
+
+import static org.apache.causeway.viewer.graphql.model.domain.GqlvAction.asPojo;
+
+@Log4j2
+public class GqlvActionInvokeArgsArg
+ extends GqlvAbstract {
+
+ @Getter private final Holder holder;
+ @Getter private final ObjectActionParameter objectActionParameter;
+ @Getter private final int paramNum;
+
+ public GqlvActionInvokeArgsArg(
+ final Holder holder,
+ final ObjectActionParameter objectActionParameter,
+ final Context context,
+ final int paramNum) {
+ super(context);
+
+ this.holder = holder;
+ this.objectActionParameter = objectActionParameter;
+ this.paramNum = paramNum;
+
+ val elementType = objectActionParameter.getElementType();;
+
+ val gqlObjectTypeForElementType = context.typeMapper.outputTypeFor(elementType);
+ if (gqlObjectTypeForElementType != null) {
+ val gqlOutputType = objectActionParameter.isPlural()
+ ? GraphQLList.list(gqlObjectTypeForElementType)
+ : gqlObjectTypeForElementType;
+
+ val fieldBuilder = newFieldDefinition()
+ .name(objectActionParameter.getId())
+ .type(gqlOutputType);
+ setField(fieldBuilder.build());
+ } else {
+ setField(null);
+ }
+ }
+
+
+ @Override
+ protected Object fetchData(DataFetchingEnvironment dataFetchingEnvironment) {
+ val environment = new Environment.ForTunnelled(dataFetchingEnvironment);
+ val managedObjects = holder.argumentManagedObjectsFor(environment, holder.getObjectAction(), context.bookmarkService);
+ return managedObjects.get(paramNum).map(ManagedObject::getPojo).orElse(null);
+ }
+
+ public interface Holder
+ extends ObjectSpecificationProvider,
+ ObjectActionProvider {
+
+ Can<ManagedObject> argumentManagedObjectsFor(
+ Environment dataFetchingEnvironment,
+ ObjectAction objectAction,
+ BookmarkService bookmarkService);
+
+ }
+}
diff --git a/viewers/graphql/model/src/main/java/org/apache/causeway/viewer/graphql/model/domain/GqlvActionInvokeResult.java b/viewers/graphql/model/src/main/java/org/apache/causeway/viewer/graphql/model/domain/GqlvActionInvokeResult.java
index fdce5d3a71..1b279c2e5c 100644
--- a/viewers/graphql/model/src/main/java/org/apache/causeway/viewer/graphql/model/domain/GqlvActionInvokeResult.java
+++ b/viewers/graphql/model/src/main/java/org/apache/causeway/viewer/graphql/model/domain/GqlvActionInvokeResult.java
@@ -18,7 +18,6 @@
*/
package org.apache.causeway.viewer.graphql.model.domain;
-import graphql.GraphQLContext;
import graphql.schema.DataFetchingEnvironment;
import graphql.schema.GraphQLFieldDefinition;
import graphql.schema.GraphQLList;
@@ -48,15 +47,13 @@ import org.apache.causeway.viewer.graphql.model.types.TypeMapper;
import lombok.val;
import lombok.extern.log4j.Log4j2;
-import java.util.Map;
-
@Log4j2
public class GqlvActionInvokeResult extends GqlvAbstract {
- private final GqlvActionInvoke.Holder holder;
+ private final GqlvActionInvokeResult.Holder holder;
public GqlvActionInvokeResult(
- final GqlvActionInvoke.Holder holder,
+ final GqlvActionInvokeResult.Holder holder,
final Context context) {
super(context);
@@ -110,18 +107,8 @@ public class GqlvActionInvokeResult extends GqlvAbstract {
protected Object fetchData(final DataFetchingEnvironment dataFetchingEnvironment) {
val sourcePojo = BookmarkedPojo.sourceFrom(dataFetchingEnvironment);
- val environment = new Environment() {
-
- @Override
- public Map<String, Object> getArguments() {
- return dataFetchingEnvironment.getGraphQlContext().get("arguments");
- }
-
- @Override
- public GraphQLContext getGraphQlContext() {
- return dataFetchingEnvironment.getGraphQlContext();
- }
- };
+
+ val environment = new Environment.ForTunnelled(dataFetchingEnvironment);
val objectSpecification = context.specificationLoader.loadSpecification(sourcePojo.getClass());
if (objectSpecification == null) {
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 028cb60644..a13a04c895 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
@@ -19,9 +19,7 @@
package org.apache.causeway.viewer.graphql.model.domain;
import java.util.ArrayList;
-import java.util.LinkedHashMap;
import java.util.List;
-import java.util.Map;
import java.util.concurrent.atomic.AtomicInteger;
import graphql.schema.DataFetchingEnvironment;
@@ -64,14 +62,14 @@ public class GqlvActionParams
val idx = new AtomicInteger(0);
holder.getObjectAction().getParameters().forEach(objectActionParameter -> {
- val gqlvActionParam = new GqlvActionParamsParam(this, objectActionParameter, this.context, idx.getAndIncrement());
- addChildFieldFor(gqlvActionParam);
- params.add(gqlvActionParam);
+ params.add(addChildFieldFor(new GqlvActionParamsParam(this, objectActionParameter, this.context, idx.getAndIncrement())));
});
- if (hasParams()) {
- buildObjectTypeAndField("params");
+ if (params.isEmpty()) {
+ return;
}
+
+ buildObjectTypeAndField("params");
}
@Override
@@ -89,16 +87,11 @@ public class GqlvActionParams
return holder.getObjectAction();
}
- public boolean hasParams() {
- return !params.isEmpty();
- }
-
@Override
protected void addDataFetchersForChildren() {
params.forEach(param -> param.addDataFetcher(this));
}
-
@Override
protected Object fetchData(DataFetchingEnvironment dataFetchingEnvironment) {
return BookmarkedPojo.sourceFrom(dataFetchingEnvironment, context);
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 85fa14ff74..9ccb8140a2 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
@@ -18,15 +18,14 @@
*/
package org.apache.causeway.viewer.graphql.model.domain;
-import java.util.LinkedHashMap;
-import java.util.Map;
+import java.util.ArrayList;
+import java.util.List;
import graphql.schema.DataFetchingEnvironment;
import org.apache.causeway.core.config.CausewayConfiguration;
import org.apache.causeway.core.metamodel.spec.ObjectSpecification;
import org.apache.causeway.core.metamodel.spec.feature.MixedIn;
-import org.apache.causeway.core.metamodel.spec.feature.ObjectAction;
import org.apache.causeway.viewer.graphql.model.context.Context;
import lombok.Getter;
@@ -42,7 +41,7 @@ public class GqlvDomainService
@Getter private final ObjectSpecification objectSpecification;
@Getter private final Object servicePojo;
- private final Map<String, GqlvAction> actions = new LinkedHashMap<>();
+ private final List<GqlvAction> actions = new ArrayList<>();
public static GqlvDomainService of(
final ObjectSpecification objectSpecification,
@@ -81,20 +80,14 @@ public class GqlvDomainService
.filter(objectAction -> objectAction.getSemantics().isSafeInNature() ||
apiVariant != CausewayConfiguration.Viewer.Graphql.ApiVariant.QUERY_ONLY // the other variants have an entry for all actions.
)
- .forEach(this::addAction);
- }
-
- private void addAction(final ObjectAction objectAction) {
- val gqlvAction = new GqlvAction(this, objectAction, context);
- addChildFieldFor(gqlvAction);
- actions.put(objectAction.getId(), gqlvAction);
+ .forEach(act -> actions.add(addChildFieldFor(new GqlvAction(this, act, context))));
}
@Override
protected void addDataFetchersForChildren() {
if (hasActions()) {
- actions.forEach((id, gqlva) -> gqlva.addDataFetcher(this));
+ actions.forEach(act -> act.addDataFetcher(this));
}
}
diff --git a/viewers/graphql/model/src/main/java/org/apache/causeway/viewer/graphql/model/domain/TypeNames.java b/viewers/graphql/model/src/main/java/org/apache/causeway/viewer/graphql/model/domain/TypeNames.java
index 93f605fff8..3b97b2af27 100644
--- a/viewers/graphql/model/src/main/java/org/apache/causeway/viewer/graphql/model/domain/TypeNames.java
+++ b/viewers/graphql/model/src/main/java/org/apache/causeway/viewer/graphql/model/domain/TypeNames.java
@@ -59,6 +59,10 @@ public final class TypeNames {
return objectTypeNameFor(owningType) + "__" + objectAction.getId() + "__gqlv_action_params";
}
+ public static String actionArgsTypeNameFor(ObjectSpecification owningType, ObjectAction objectAction) {
+ return objectTypeNameFor(owningType) + "__" + objectAction.getId() + "__gqlv_action_args";
+ }
+
public static String actionParamTypeNameFor(ObjectSpecification owningType, ObjectActionParameter objectActionParameter) {
return objectTypeNameFor(owningType) + "__" + objectActionParameter.getAction().getId() + "__" + objectActionParameter.getId() + "__gqlv_action_parameter";
}
diff --git a/viewers/graphql/test/src/test/java/org/apache/causeway/viewer/graphql/viewer/test/e2e/Calculator_IntegTest.each.add_big_decimals._.gql b/viewers/graphql/test/src/test/java/org/apache/causeway/viewer/graphql/viewer/test/e2e/Calculator_IntegTest.each.add_big_decimals._.gql
index 1567448ca9..5bb92ef25d 100644
--- a/viewers/graphql/test/src/test/java/org/apache/causeway/viewer/graphql/viewer/test/e2e/Calculator_IntegTest.each.add_big_decimals._.gql
+++ b/viewers/graphql/test/src/test/java/org/apache/causeway/viewer/graphql/viewer/test/e2e/Calculator_IntegTest.each.add_big_decimals._.gql
@@ -2,6 +2,10 @@
university_calc_Calculator {
addBigDecimals {
invoke(x: "1.1", y: "2.2") {
+ args {
+ x
+ y
+ }
results
}
}
diff --git a/viewers/graphql/test/src/test/java/org/apache/causeway/viewer/graphql/viewer/test/e2e/Calculator_IntegTest.each.add_big_decimals.approved.json b/viewers/graphql/test/src/test/java/org/apache/causeway/viewer/graphql/viewer/test/e2e/Calculator_IntegTest.each.add_big_decimals.approved.json
index 46fdaadc63..2dbb5ad975 100644
--- a/viewers/graphql/test/src/test/java/org/apache/causeway/viewer/graphql/viewer/test/e2e/Calculator_IntegTest.each.add_big_decimals.approved.json
+++ b/viewers/graphql/test/src/test/java/org/apache/causeway/viewer/graphql/viewer/test/e2e/Calculator_IntegTest.each.add_big_decimals.approved.json
@@ -3,6 +3,10 @@
"university_calc_Calculator" : {
"addBigDecimals" : {
"invoke" : {
+ "args" : {
+ "x" : "1.1",
+ "y" : "2.2"
+ },
"results" : "3.3"
}
}
diff --git a/viewers/graphql/test/src/test/java/org/apache/causeway/viewer/graphql/viewer/test/e2e/Calculator_IntegTest.each.scenario_concat._.gql b/viewers/graphql/test/src/test/java/org/apache/causeway/viewer/graphql/viewer/test/e2e/Calculator_IntegTest.each.scenario_concat._.gql
index 7850f7b04f..72d04e7e24 100644
--- a/viewers/graphql/test/src/test/java/org/apache/causeway/viewer/graphql/viewer/test/e2e/Calculator_IntegTest.each.scenario_concat._.gql
+++ b/viewers/graphql/test/src/test/java/org/apache/causeway/viewer/graphql/viewer/test/e2e/Calculator_IntegTest.each.scenario_concat._.gql
@@ -5,6 +5,10 @@
university_calc_Calculator {
concat {
invoke(prefix: "Fizz", suffix: "Buzz") {
+ args {
+ prefix
+ suffix
+ }
results
}
}
diff --git a/viewers/graphql/test/src/test/java/org/apache/causeway/viewer/graphql/viewer/test/e2e/Calculator_IntegTest.each.scenario_concat.approved.json b/viewers/graphql/test/src/test/java/org/apache/causeway/viewer/graphql/viewer/test/e2e/Calculator_IntegTest.each.scenario_concat.approved.json
index d1dacdfa78..ef631f4ec9 100644
--- a/viewers/graphql/test/src/test/java/org/apache/causeway/viewer/graphql/viewer/test/e2e/Calculator_IntegTest.each.scenario_concat.approved.json
+++ b/viewers/graphql/test/src/test/java/org/apache/causeway/viewer/graphql/viewer/test/e2e/Calculator_IntegTest.each.scenario_concat.approved.json
@@ -6,6 +6,10 @@
"university_calc_Calculator" : {
"concat" : {
"invoke" : {
+ "args" : {
+ "prefix" : "Fizz",
+ "suffix" : "Buzz"
+ },
"results" : "FizzBuzz"
}
}
diff --git a/viewers/graphql/test/src/test/java/org/apache/causeway/viewer/graphql/viewer/test/e2e/Department_IntegTest.each.find_department_and_add_staff_members._.gql b/viewers/graphql/test/src/test/java/org/apache/causeway/viewer/graphql/viewer/test/e2e/Department_IntegTest.each.find_department_and_add_staff_members._.gql
index 963d32592f..3a677d0b06 100644
--- a/viewers/graphql/test/src/test/java/org/apache/causeway/viewer/graphql/viewer/test/e2e/Department_IntegTest.each.find_department_and_add_staff_members._.gql
+++ b/viewers/graphql/test/src/test/java/org/apache/causeway/viewer/graphql/viewer/test/e2e/Department_IntegTest.each.find_department_and_add_staff_members._.gql
@@ -1,9 +1,13 @@
{
Scenario(name: "can add staff members") {
+ Name
Given {
university_dept_Departments {
findDepartmentByName {
invoke(name: "Classics") {
+ args {
+ name
+ }
results {
staffMembers {
get {
@@ -60,6 +64,9 @@
university_dept_Departments {
findDepartmentByName {
invoke(name: "Classics") {
+ args {
+ name
+ }
results {
staffMembers {
get {
diff --git a/viewers/graphql/test/src/test/java/org/apache/causeway/viewer/graphql/viewer/test/e2e/Department_IntegTest.each.find_department_and_add_staff_members.approved.json b/viewers/graphql/test/src/test/java/org/apache/causeway/viewer/graphql/viewer/test/e2e/Department_IntegTest.each.find_department_and_add_staff_members.approved.json
index 069b00617c..d9064a0984 100644
--- a/viewers/graphql/test/src/test/java/org/apache/causeway/viewer/graphql/viewer/test/e2e/Department_IntegTest.each.find_department_and_add_staff_members.approved.json
+++ b/viewers/graphql/test/src/test/java/org/apache/causeway/viewer/graphql/viewer/test/e2e/Department_IntegTest.each.find_department_and_add_staff_members.approved.json
@@ -1,10 +1,14 @@
{
"data" : {
"Scenario" : {
+ "Name" : "can add staff members",
"Given" : {
"university_dept_Departments" : {
"findDepartmentByName" : {
"invoke" : {
+ "args" : {
+ "name" : "Classics"
+ },
"results" : {
"staffMembers" : {
"get" : [ {
@@ -91,6 +95,9 @@
"university_dept_Departments" : {
"findDepartmentByName" : {
"invoke" : {
+ "args" : {
+ "name" : "Classics"
+ },
"results" : {
"staffMembers" : {
"get" : [ {
diff --git a/viewers/graphql/test/src/test/java/org/apache/causeway/viewer/graphql/viewer/test/e2e/Department_IntegTest.each.scenario_find_department_and_change_name._.gql b/viewers/graphql/test/src/test/java/org/apache/causeway/viewer/graphql/viewer/test/e2e/Department_IntegTest.each.scenario_find_department_and_change_name._.gql
index 0f15d48ad4..1f959fa62e 100644
--- a/viewers/graphql/test/src/test/java/org/apache/causeway/viewer/graphql/viewer/test/e2e/Department_IntegTest.each.scenario_find_department_and_change_name._.gql
+++ b/viewers/graphql/test/src/test/java/org/apache/causeway/viewer/graphql/viewer/test/e2e/Department_IntegTest.each.scenario_find_department_and_change_name._.gql
@@ -1,11 +1,13 @@
{
Scenario(name: "Find department and change its name"){
Name
-
Given {
university_dept_Departments {
findDepartmentByName {
invoke(name: "Classics") {
+ args {
+ name
+ }
results {
_meta {
saveAs(ref: "classics_dept")
@@ -20,6 +22,9 @@
university_dept_Department(object: {ref: "classics_dept"}) {
changeName {
invokeIdempotent(newName: "Ancient History") {
+ args {
+ newName
+ }
results {
name {
get
diff --git a/viewers/graphql/test/src/test/java/org/apache/causeway/viewer/graphql/viewer/test/e2e/Department_IntegTest.each.scenario_find_department_and_change_name.approved.json b/viewers/graphql/test/src/test/java/org/apache/causeway/viewer/graphql/viewer/test/e2e/Department_IntegTest.each.scenario_find_department_and_change_name.approved.json
index e4d41ec377..7e7ce09746 100644
--- a/viewers/graphql/test/src/test/java/org/apache/causeway/viewer/graphql/viewer/test/e2e/Department_IntegTest.each.scenario_find_department_and_change_name.approved.json
+++ b/viewers/graphql/test/src/test/java/org/apache/causeway/viewer/graphql/viewer/test/e2e/Department_IntegTest.each.scenario_find_department_and_change_name.approved.json
@@ -6,6 +6,9 @@
"university_dept_Departments" : {
"findDepartmentByName" : {
"invoke" : {
+ "args" : {
+ "name" : "Classics"
+ },
"results" : {
"_meta" : {
"saveAs" : "classics_dept"
@@ -19,6 +22,9 @@
"university_dept_Department" : {
"changeName" : {
"invokeIdempotent" : {
+ "args" : {
+ "newName" : "Ancient History"
+ },
"results" : {
"name" : {
"get" : "Ancient History"
diff --git a/viewers/graphql/test/src/test/java/org/apache/causeway/viewer/graphql/viewer/test/e2e/Staff_IntegTest.each.create_staff_member_with_department._.gql b/viewers/graphql/test/src/test/java/org/apache/causeway/viewer/graphql/viewer/test/e2e/Staff_IntegTest.each.create_staff_member_with_department._.gql
index 82cc9b9148..df0573406a 100644
--- a/viewers/graphql/test/src/test/java/org/apache/causeway/viewer/graphql/viewer/test/e2e/Staff_IntegTest.each.create_staff_member_with_department._.gql
+++ b/viewers/graphql/test/src/test/java/org/apache/causeway/viewer/graphql/viewer/test/e2e/Staff_IntegTest.each.create_staff_member_with_department._.gql
@@ -5,6 +5,9 @@
university_dept_Departments {
findDepartmentByName {
invoke(name: "Classics") {
+ args {
+ name
+ }
results {
_meta {
saveAs(ref: "classics")
@@ -18,6 +21,14 @@
university_dept_Staff {
createStaffMember {
invokeNonIdempotent(name: "Dr. Georgina McGovern", department: { ref: "classics"}) {
+ args {
+ name
+ department {
+ name {
+ get
+ }
+ }
+ }
results {
name {
get
diff --git a/viewers/graphql/test/src/test/java/org/apache/causeway/viewer/graphql/viewer/test/e2e/Staff_IntegTest.each.create_staff_member_with_department.approved.json b/viewers/graphql/test/src/test/java/org/apache/causeway/viewer/graphql/viewer/test/e2e/Staff_IntegTest.each.create_staff_member_with_department.approved.json
index 7eb32163e7..3d8eac498a 100644
--- a/viewers/graphql/test/src/test/java/org/apache/causeway/viewer/graphql/viewer/test/e2e/Staff_IntegTest.each.create_staff_member_with_department.approved.json
+++ b/viewers/graphql/test/src/test/java/org/apache/causeway/viewer/graphql/viewer/test/e2e/Staff_IntegTest.each.create_staff_member_with_department.approved.json
@@ -6,6 +6,9 @@
"university_dept_Departments" : {
"findDepartmentByName" : {
"invoke" : {
+ "args" : {
+ "name" : "Classics"
+ },
"results" : {
"_meta" : {
"saveAs" : "classics"
@@ -19,6 +22,14 @@
"university_dept_Staff" : {
"createStaffMember" : {
"invokeNonIdempotent" : {
+ "args" : {
+ "name" : "Dr. Georgina McGovern",
+ "department" : {
+ "name" : {
+ "get" : "Classics"
+ }
+ }
+ },
"results" : {
"name" : {
"get" : "Dr. Georgina McGovern"
diff --git a/viewers/graphql/test/src/test/resources/schema.gql b/viewers/graphql/test/src/test/resources/schema.gql
index 571a083738..02187b43de 100644
--- a/viewers/graphql/test/src/test/resources/schema.gql
+++ b/viewers/graphql/test/src/test/resources/schema.gql
@@ -1808,7 +1808,14 @@ type university_admin_AdminMenu__actionWithDisabledParam__gqlv_action {
validate(firstParam: String, secondParam: String, thirdParameter: String): String
}
+type university_admin_AdminMenu__actionWithDisabledParam__gqlv_action_args {
+ firstParam: String
+ secondParam: String
+ thirdParameter: String
+}
+
type university_admin_AdminMenu__actionWithDisabledParam__gqlv_action_invoke {
+ args: university_admin_AdminMenu__actionWithDisabledParam__gqlv_action_args
results: String
}
@@ -1847,7 +1854,13 @@ type university_admin_AdminMenu__actionWithHiddenParam__gqlv_action {
validate(firstParam: String, secondParam: String): String
}
+type university_admin_AdminMenu__actionWithHiddenParam__gqlv_action_args {
+ firstParam: String
+ secondParam: String
+}
+
type university_admin_AdminMenu__actionWithHiddenParam__gqlv_action_invoke {
+ args: university_admin_AdminMenu__actionWithHiddenParam__gqlv_action_args
results: String
}
@@ -1924,7 +1937,13 @@ type university_calc_Calculator__addBigDecimals__gqlv_action {
validate(x: String, y: String): String
}
+type university_calc_Calculator__addBigDecimals__gqlv_action_args {
+ x: String
+ y: String
+}
+
type university_calc_Calculator__addBigDecimals__gqlv_action_invoke {
+ args: university_calc_Calculator__addBigDecimals__gqlv_action_args
results: String
}
@@ -1955,7 +1974,13 @@ type university_calc_Calculator__addBigIntegers__gqlv_action {
validate(x: String, y: String): String
}
+type university_calc_Calculator__addBigIntegers__gqlv_action_args {
+ x: String
+ y: String
+}
+
type university_calc_Calculator__addBigIntegers__gqlv_action_invoke {
+ args: university_calc_Calculator__addBigIntegers__gqlv_action_args
results: String
}
@@ -1986,7 +2011,13 @@ type university_calc_Calculator__addByteWrappers__gqlv_action {
validate(x: Byte, y: Byte): String
}
+type university_calc_Calculator__addByteWrappers__gqlv_action_args {
+ x: Byte
+ y: Byte
+}
+
type university_calc_Calculator__addByteWrappers__gqlv_action_invoke {
+ args: university_calc_Calculator__addByteWrappers__gqlv_action_args
results: Int
}
@@ -2017,7 +2048,13 @@ type university_calc_Calculator__addBytes__gqlv_action {
validate(x: Byte, y: Byte): String
}
+type university_calc_Calculator__addBytes__gqlv_action_args {
+ x: Byte
+ y: Byte
+}
+
type university_calc_Calculator__addBytes__gqlv_action_invoke {
+ args: university_calc_Calculator__addBytes__gqlv_action_args
results: Byte
}
@@ -2048,7 +2085,13 @@ type university_calc_Calculator__addDoubleWrappers__gqlv_action {
validate(x: Float, y: Float): String
}
+type university_calc_Calculator__addDoubleWrappers__gqlv_action_args {
+ x: Float
+ y: Float
+}
+
type university_calc_Calculator__addDoubleWrappers__gqlv_action_invoke {
+ args: university_calc_Calculator__addDoubleWrappers__gqlv_action_args
results: Float
}
@@ -2079,7 +2122,13 @@ type university_calc_Calculator__addDoubles__gqlv_action {
validate(x: Float, y: Float): String
}
+type university_calc_Calculator__addDoubles__gqlv_action_args {
+ x: Float
+ y: Float
+}
+
type university_calc_Calculator__addDoubles__gqlv_action_invoke {
+ args: university_calc_Calculator__addDoubles__gqlv_action_args
results: Float
}
@@ -2110,7 +2159,13 @@ type university_calc_Calculator__addFloatWrappers__gqlv_action {
validate(x: Float, y: Float): String
}
+type university_calc_Calculator__addFloatWrappers__gqlv_action_args {
+ x: Float
+ y: Float
+}
+
type university_calc_Calculator__addFloatWrappers__gqlv_action_invoke {
+ args: university_calc_Calculator__addFloatWrappers__gqlv_action_args
results: Float
}
@@ -2141,7 +2196,13 @@ type university_calc_Calculator__addFloats__gqlv_action {
validate(x: Float, y: Float): String
}
+type university_calc_Calculator__addFloats__gqlv_action_args {
+ x: Float
+ y: Float
+}
+
type university_calc_Calculator__addFloats__gqlv_action_invoke {
+ args: university_calc_Calculator__addFloats__gqlv_action_args
results: Float
}
@@ -2172,7 +2233,13 @@ type university_calc_Calculator__addIntegerWrappers__gqlv_action {
validate(x: Int, y: Int): String
}
+type university_calc_Calculator__addIntegerWrappers__gqlv_action_args {
+ x: Int
+ y: Int
+}
+
type university_calc_Calculator__addIntegerWrappers__gqlv_action_invoke {
+ args: university_calc_Calculator__addIntegerWrappers__gqlv_action_args
results: Int
}
@@ -2203,7 +2270,13 @@ type university_calc_Calculator__addIntegers__gqlv_action {
validate(x: Int, y: Int): String
}
+type university_calc_Calculator__addIntegers__gqlv_action_args {
+ x: Int
+ y: Int
+}
+
type university_calc_Calculator__addIntegers__gqlv_action_invoke {
+ args: university_calc_Calculator__addIntegers__gqlv_action_args
results: Int
}
@@ -2234,7 +2307,13 @@ type university_calc_Calculator__addShortWrappers__gqlv_action {
validate(x: Short, y: Short): String
}
+type university_calc_Calculator__addShortWrappers__gqlv_action_args {
+ x: Short
+ y: Short
+}
+
type university_calc_Calculator__addShortWrappers__gqlv_action_invoke {
+ args: university_calc_Calculator__addShortWrappers__gqlv_action_args
results: Short
}
@@ -2265,7 +2344,13 @@ type university_calc_Calculator__addShorts__gqlv_action {
validate(x: Short, y: Short): String
}
+type university_calc_Calculator__addShorts__gqlv_action_args {
+ x: Short
+ y: Short
+}
+
type university_calc_Calculator__addShorts__gqlv_action_invoke {
+ args: university_calc_Calculator__addShorts__gqlv_action_args
results: Short
}
@@ -2296,7 +2381,13 @@ type university_calc_Calculator__and__gqlv_action {
validate(x: Boolean, y: Boolean): String
}
+type university_calc_Calculator__and__gqlv_action_args {
+ x: Boolean
+ y: Boolean
+}
+
type university_calc_Calculator__and__gqlv_action_invoke {
+ args: university_calc_Calculator__and__gqlv_action_args
results: Boolean
}
@@ -2327,7 +2418,13 @@ type university_calc_Calculator__concat__gqlv_action {
validate(prefix: String, suffix: String): String
}
+type university_calc_Calculator__concat__gqlv_action_args {
+ prefix: String
+ suffix: String
+}
+
type university_calc_Calculator__concat__gqlv_action_invoke {
+ args: university_calc_Calculator__concat__gqlv_action_args
results: String
}
@@ -2365,7 +2462,13 @@ type university_calc_Calculator__jdk8LocalPlusDays__gqlv_action {
validate(date: String, numDays: Int): String
}
+type university_calc_Calculator__jdk8LocalPlusDays__gqlv_action_args {
+ date: String
+ numDays: Int
+}
+
type university_calc_Calculator__jdk8LocalPlusDays__gqlv_action_invoke {
+ args: university_calc_Calculator__jdk8LocalPlusDays__gqlv_action_args
results: String
}
@@ -2389,7 +2492,14 @@ type university_calc_Calculator__jdk8LocalPlusHoursAndMinutes__gqlv_action {
validate(numHours: Int, numMinutes: Int, time: String): String
}
+type university_calc_Calculator__jdk8LocalPlusHoursAndMinutes__gqlv_action_args {
+ numHours: Int
+ numMinutes: Int
+ time: String
+}
+
type university_calc_Calculator__jdk8LocalPlusHoursAndMinutes__gqlv_action_invoke {
+ args: university_calc_Calculator__jdk8LocalPlusHoursAndMinutes__gqlv_action_args
results: String
}
@@ -2435,7 +2545,15 @@ type university_calc_Calculator__jdk8OffsetPlusDaysAndHoursAndMinutes__gqlv_acti
validate(dateTime: DateTime, numDays: Int, numHours: Int, numMinutes: Int): String
}
+type university_calc_Calculator__jdk8OffsetPlusDaysAndHoursAndMinutes__gqlv_action_args {
+ dateTime: DateTime
+ numDays: Int
+ numHours: Int
+ numMinutes: Int
+}
+
type university_calc_Calculator__jdk8OffsetPlusDaysAndHoursAndMinutes__gqlv_action_invoke {
+ args: university_calc_Calculator__jdk8OffsetPlusDaysAndHoursAndMinutes__gqlv_action_args
results: DateTime
}
@@ -2475,7 +2593,14 @@ type university_calc_Calculator__jdk8OffsetPlusHoursAndMinutes__gqlv_action {
validate(numHours: Int, numMinutes: Int, time: Time): String
}
+type university_calc_Calculator__jdk8OffsetPlusHoursAndMinutes__gqlv_action_args {
+ numHours: Int
+ numMinutes: Int
+ time: Time
+}
+
type university_calc_Calculator__jdk8OffsetPlusHoursAndMinutes__gqlv_action_invoke {
+ args: university_calc_Calculator__jdk8OffsetPlusHoursAndMinutes__gqlv_action_args
results: Time
}
@@ -2521,7 +2646,15 @@ type university_calc_Calculator__jdk8ZonedPlusDaysAndHoursAndMinutes__gqlv_actio
validate(dateTime: String, numDays: Int, numHours: Int, numMinutes: Int): String
}
+type university_calc_Calculator__jdk8ZonedPlusDaysAndHoursAndMinutes__gqlv_action_args {
+ dateTime: String
+ numDays: Int
+ numHours: Int
+ numMinutes: Int
+}
+
type university_calc_Calculator__jdk8ZonedPlusDaysAndHoursAndMinutes__gqlv_action_invoke {
+ args: university_calc_Calculator__jdk8ZonedPlusDaysAndHoursAndMinutes__gqlv_action_args
results: String
}
@@ -2568,7 +2701,13 @@ type university_calc_Calculator__jodaLocalPlusDays__gqlv_action {
validate(date: String, numDays: Int): String
}
+type university_calc_Calculator__jodaLocalPlusDays__gqlv_action_args {
+ date: String
+ numDays: Int
+}
+
type university_calc_Calculator__jodaLocalPlusDays__gqlv_action_invoke {
+ args: university_calc_Calculator__jodaLocalPlusDays__gqlv_action_args
results: String
}
@@ -2592,7 +2731,14 @@ type university_calc_Calculator__jodaLocalPlusHoursAndMinutes__gqlv_action {
validate(numHours: Int, numMinutes: Int, time: String): String
}
+type university_calc_Calculator__jodaLocalPlusHoursAndMinutes__gqlv_action_args {
+ numHours: Int
+ numMinutes: Int
+ time: String
+}
+
type university_calc_Calculator__jodaLocalPlusHoursAndMinutes__gqlv_action_invoke {
+ args: university_calc_Calculator__jodaLocalPlusHoursAndMinutes__gqlv_action_args
results: String
}
@@ -2638,7 +2784,15 @@ type university_calc_Calculator__jodaPlusDaysAndHoursAndMinutes__gqlv_action {
validate(dateTime: String, numDays: Int, numHours: Int, numMinutes: Int): String
}
+type university_calc_Calculator__jodaPlusDaysAndHoursAndMinutes__gqlv_action_args {
+ dateTime: String
+ numDays: Int
+ numHours: Int
+ numMinutes: Int
+}
+
type university_calc_Calculator__jodaPlusDaysAndHoursAndMinutes__gqlv_action_invoke {
+ args: university_calc_Calculator__jodaPlusDaysAndHoursAndMinutes__gqlv_action_args
results: String
}
@@ -2678,7 +2832,12 @@ type university_calc_Calculator__nextMonth__gqlv_action {
validate(month: org_apache_causeway_viewer_graphql_viewer_test_domain_calc_Month__gqlv_enum): String
}
+type university_calc_Calculator__nextMonth__gqlv_action_args {
+ month: org_apache_causeway_viewer_graphql_viewer_test_domain_calc_Month__gqlv_enum
+}
+
type university_calc_Calculator__nextMonth__gqlv_action_invoke {
+ args: university_calc_Calculator__nextMonth__gqlv_action_args
results: org_apache_causeway_viewer_graphql_viewer_test_domain_calc_Month__gqlv_enum
}
@@ -2702,7 +2861,12 @@ type university_calc_Calculator__not__gqlv_action {
validate(x: Boolean): String
}
+type university_calc_Calculator__not__gqlv_action_args {
+ x: Boolean
+}
+
type university_calc_Calculator__not__gqlv_action_invoke {
+ args: university_calc_Calculator__not__gqlv_action_args
results: Boolean
}
@@ -2725,7 +2889,13 @@ type university_calc_Calculator__or__gqlv_action {
validate(x: Boolean, y: Boolean): String
}
+type university_calc_Calculator__or__gqlv_action_args {
+ x: Boolean
+ y: Boolean
+}
+
type university_calc_Calculator__or__gqlv_action_invoke {
+ args: university_calc_Calculator__or__gqlv_action_args
results: Boolean
}
@@ -2803,7 +2973,12 @@ type university_dept_Department__addStaffMember__gqlv_action {
validate(staffMember: university_dept_StaffMember__gqlv_input): String
}
+type university_dept_Department__addStaffMember__gqlv_action_args {
+ staffMember: university_dept_StaffMember
+}
+
type university_dept_Department__addStaffMember__gqlv_action_invoke {
+ args: university_dept_Department__addStaffMember__gqlv_action_args
results: university_dept_Department
}
@@ -2828,7 +3003,12 @@ type university_dept_Department__addStaffMembers__gqlv_action {
validate(staffMembers: [university_dept_StaffMember__gqlv_input]): String
}
+type university_dept_Department__addStaffMembers__gqlv_action_args {
+ staffMembers: [university_dept_StaffMember]
+}
+
type university_dept_Department__addStaffMembers__gqlv_action_invoke {
+ args: university_dept_Department__addStaffMembers__gqlv_action_args
results: university_dept_Department
}
@@ -2853,7 +3033,12 @@ type university_dept_Department__changeDeptHead__gqlv_action {
validate(newDeptHead: university_dept_DeptHead__gqlv_input): String
}
+type university_dept_Department__changeDeptHead__gqlv_action_args {
+ newDeptHead: university_dept_DeptHead
+}
+
type university_dept_Department__changeDeptHead__gqlv_action_invoke {
+ args: university_dept_Department__changeDeptHead__gqlv_action_args
results: university_dept_Department
}
@@ -2879,7 +3064,12 @@ type university_dept_Department__changeName__gqlv_action {
validate(newName: String): String
}
+type university_dept_Department__changeName__gqlv_action_args {
+ newName: String
+}
+
type university_dept_Department__changeName__gqlv_action_invoke {
+ args: university_dept_Department__changeName__gqlv_action_args
results: university_dept_Department
}
@@ -2936,7 +3126,12 @@ type university_dept_Department__removeStaffMember__gqlv_action {
validate(staffMember: university_dept_StaffMember__gqlv_input): String
}
+type university_dept_Department__removeStaffMember__gqlv_action_args {
+ staffMember: university_dept_StaffMember
+}
+
type university_dept_Department__removeStaffMember__gqlv_action_invoke {
+ args: university_dept_Department__removeStaffMember__gqlv_action_args
results: university_dept_Department
}
@@ -2983,7 +3178,13 @@ type university_dept_Departments__createDepartment__gqlv_action {
validate(deptHead: university_dept_DeptHead__gqlv_input, name: String): String
}
+type university_dept_Departments__createDepartment__gqlv_action_args {
+ deptHead: university_dept_DeptHead
+ name: String
+}
+
type university_dept_Departments__createDepartment__gqlv_action_invoke {
+ args: university_dept_Departments__createDepartment__gqlv_action_args
results: university_dept_Department
}
@@ -3020,7 +3221,12 @@ type university_dept_Departments__findDepartmentByName__gqlv_action {
validate(name: String): String
}
+type university_dept_Departments__findDepartmentByName__gqlv_action_args {
+ name: String
+}
+
type university_dept_Departments__findDepartmentByName__gqlv_action_invoke {
+ args: university_dept_Departments__findDepartmentByName__gqlv_action_args
results: university_dept_Department
}
@@ -3061,7 +3267,12 @@ type university_dept_DeptHead__changeDepartment__gqlv_action {
validate(department: university_dept_Department__gqlv_input): String
}
+type university_dept_DeptHead__changeDepartment__gqlv_action_args {
+ department: university_dept_Department
+}
+
type university_dept_DeptHead__changeDepartment__gqlv_action_invoke {
+ args: university_dept_DeptHead__changeDepartment__gqlv_action_args
results: university_dept_DeptHead
}
@@ -3078,7 +3289,12 @@ type university_dept_DeptHead__changeName__gqlv_action {
validate(newName: String): String
}
+type university_dept_DeptHead__changeName__gqlv_action_args {
+ newName: String
+}
+
type university_dept_DeptHead__changeName__gqlv_action_invoke {
+ args: university_dept_DeptHead__changeName__gqlv_action_args
results: university_dept_DeptHead
}
@@ -3152,7 +3368,12 @@ type university_dept_DeptHeads__findHeadByName__gqlv_action {
validate(name: String): String
}
+type university_dept_DeptHeads__findHeadByName__gqlv_action_args {
+ name: String
+}
+
type university_dept_DeptHeads__findHeadByName__gqlv_action_invoke {
+ args: university_dept_DeptHeads__findHeadByName__gqlv_action_args
results: university_dept_DeptHead
}
@@ -3256,7 +3477,13 @@ type university_dept_Staff__createStaffMember__gqlv_action {
validate(department: university_dept_Department__gqlv_input, name: String): String
}
+type university_dept_Staff__createStaffMember__gqlv_action_args {
+ department: university_dept_Department
+ name: String
+}
+
type university_dept_Staff__createStaffMember__gqlv_action_invoke {
+ args: university_dept_Staff__createStaffMember__gqlv_action_args
results: university_dept_StaffMember
}
@@ -3293,7 +3520,12 @@ type university_dept_Staff__findStaffMemberByName__gqlv_action {
validate(name: String): String
}
+type university_dept_Staff__findStaffMemberByName__gqlv_action_args {
+ name: String
+}
+
type university_dept_Staff__findStaffMemberByName__gqlv_action_invoke {
+ args: university_dept_Staff__findStaffMemberByName__gqlv_action_args
results: university_dept_StaffMember
}