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 73b03aff69861d2a7d02e81799bcdfda0113ba10
Author: danhaywood <[email protected]>
AuthorDate: Tue Jan 23 17:57:52 2024 +0000

    CAUSEWAY-3676: adds in ActionHidden
---
 .../viewer/graphql/model/domain/GqlvAction.java    |  20 +-
 .../graphql/model/domain/GqlvActionHidden.java     |  89 +++
 .../model/domain/GqlvActionHiddenHolder.java       |   9 +
 .../viewer/graphql/model/types/ScalarMapper.java   |   3 +-
 .../graphql/viewer/test/domain/DepartmentMenu.java |   9 +
 .../test/e2e/Domain_IntegTest.admin_action._.gql   |   9 +
 ...=> Domain_IntegTest.admin_action.approved.json} |   6 +-
 .../e2e/Domain_IntegTest.create_department._.gql   |   1 +
 ...omain_IntegTest.create_department.approved.json |   1 +
 .../graphql/viewer/test/e2e/Domain_IntegTest.java  |  11 +
 .../test/e2e/Schema_IntegTest.schema.approved.json | 644 ++++++++++++++++++++-
 ...chema_IntegTest.schema_types_name.approved.json |   2 +
 .../graphql/test/src/test/resources/schema.gql     |  60 ++
 13 files changed, 847 insertions(+), 17 deletions(-)

diff --git 
a/incubator/viewers/graphql/model/src/main/java/org/apache/causeway/viewer/graphql/model/domain/GqlvAction.java
 
b/incubator/viewers/graphql/model/src/main/java/org/apache/causeway/viewer/graphql/model/domain/GqlvAction.java
index 6631e10bc8..7cb4bbe7a5 100644
--- 
a/incubator/viewers/graphql/model/src/main/java/org/apache/causeway/viewer/graphql/model/domain/GqlvAction.java
+++ 
b/incubator/viewers/graphql/model/src/main/java/org/apache/causeway/viewer/graphql/model/domain/GqlvAction.java
@@ -8,15 +8,17 @@ import 
org.apache.causeway.viewer.graphql.model.util.TypeNames;
 import graphql.schema.*;
 
 import lombok.extern.log4j.Log4j2;
+import lombok.val;
 
 import static graphql.schema.GraphQLFieldDefinition.newFieldDefinition;
 import static graphql.schema.GraphQLObjectType.newObject;
 
 @Log4j2
-public class GqlvAction extends GqlvMember<ObjectAction, GqlvActionHolder> 
implements GqlvActionInvokeHolder {
+public class GqlvAction extends GqlvMember<ObjectAction, GqlvActionHolder> 
implements GqlvActionInvokeHolder, GqlvActionHiddenHolder {
 
     private final GraphQLObjectType.Builder gqlObjectTypeBuilder;
     private final GraphQLObjectType gqlObjectType;
+    private final GqlvActionHidden hidden;
     private final GqlvActionInvoke invoke;
     private final BookmarkService bookmarkService;
 
@@ -28,17 +30,18 @@ public class GqlvAction extends GqlvMember<ObjectAction, 
GqlvActionHolder> imple
             ) {
         super(holder, objectAction, codeRegistryBuilder);
 
-        gqlObjectTypeBuilder = 
newObject().name(TypeNames.actionTypeNameFor(objectAction, 
holder.getObjectSpecification()));
+        this.gqlObjectTypeBuilder = 
newObject().name(TypeNames.actionTypeNameFor(objectAction, 
holder.getObjectSpecification()));
+        this.bookmarkService = bookmarkService;
 
+        this.hidden = new GqlvActionHidden(this, codeRegistryBuilder);
         this.invoke = new GqlvActionInvoke(this, codeRegistryBuilder);
-        this.bookmarkService = bookmarkService;
 
-        gqlObjectType = gqlObjectTypeBuilder.build();
+        this.gqlObjectType = gqlObjectTypeBuilder.build();
 
-        final GraphQLFieldDefinition field = newFieldDefinition()
-                .name(objectAction.getId())
-                .type(gqlObjectTypeBuilder)
-                .build();
+        val field = newFieldDefinition()
+                        .name(objectAction.getId())
+                        .type(gqlObjectTypeBuilder)
+                        .build();
 
         holder.addField(field);
 
@@ -61,6 +64,7 @@ public class GqlvAction extends GqlvMember<ObjectAction, 
GqlvActionHolder> imple
                 holder.coordinatesFor(getField()),
                 new Fetcher2());
 
+        hidden.addDataFetcher();
         invoke.addDataFetcher();
     }
 
diff --git 
a/incubator/viewers/graphql/model/src/main/java/org/apache/causeway/viewer/graphql/model/domain/GqlvActionHidden.java
 
b/incubator/viewers/graphql/model/src/main/java/org/apache/causeway/viewer/graphql/model/domain/GqlvActionHidden.java
new file mode 100644
index 0000000000..17bed097a6
--- /dev/null
+++ 
b/incubator/viewers/graphql/model/src/main/java/org/apache/causeway/viewer/graphql/model/domain/GqlvActionHidden.java
@@ -0,0 +1,89 @@
+package org.apache.causeway.viewer.graphql.model.domain;
+
+import java.util.Map;
+
+import org.apache.causeway.applib.annotation.Where;
+import org.apache.causeway.commons.collections.Can;
+import org.apache.causeway.core.metamodel.consent.InteractionInitiatedBy;
+import org.apache.causeway.core.metamodel.interactions.InteractionUtils;
+import 
org.apache.causeway.core.metamodel.interactions.managed.ActionInteractionHead;
+import org.apache.causeway.core.metamodel.object.ManagedObject;
+import org.apache.causeway.core.metamodel.spec.ObjectSpecification;
+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.types.ScalarMapper;
+
+import lombok.extern.log4j.Log4j2;
+
+import graphql.schema.DataFetchingEnvironment;
+import graphql.schema.GraphQLCodeRegistry;
+import graphql.schema.GraphQLFieldDefinition;
+
+import lombok.val;
+
+import static graphql.schema.GraphQLFieldDefinition.newFieldDefinition;
+
+@Log4j2
+public class GqlvActionHidden {
+
+    private final GqlvActionHiddenHolder holder;
+    private final GraphQLCodeRegistry.Builder codeRegistryBuilder;
+    private final GraphQLFieldDefinition field;
+
+    public GqlvActionHidden(
+            final GqlvActionHiddenHolder holder,
+            final GraphQLCodeRegistry.Builder codeRegistryBuilder
+    ) {
+        this.holder = holder;
+        this.codeRegistryBuilder = codeRegistryBuilder;
+        this.field = fieldDefinition(holder);
+    }
+
+    private static GraphQLFieldDefinition fieldDefinition(final 
GqlvActionHiddenHolder holder) {
+
+        GraphQLFieldDefinition fieldDefinition =
+                newFieldDefinition()
+                    .name("hidden")
+                    .type(ScalarMapper.typeFor(boolean.class))
+                    .build();
+
+        holder.addField(fieldDefinition);
+        return fieldDefinition;
+    }
+
+    public void addDataFetcher() {
+        codeRegistryBuilder.dataFetcher(
+                holder.coordinatesFor(field),
+                this::hidden
+        );
+    }
+
+    private boolean hidden(
+            final DataFetchingEnvironment dataFetchingEnvironment) {
+
+        final ObjectAction objectAction = holder.getObjectAction();
+
+        Object source = dataFetchingEnvironment.getSource();
+        Object domainObjectInstance;
+        if (source instanceof GqlvAction.Fetcher) {
+            GqlvAction.Fetcher fetcher = (GqlvAction.Fetcher) source;
+            domainObjectInstance = fetcher.getTargetPojo();
+        } else {
+            domainObjectInstance = source;
+        }
+
+        Class<?> domainObjectInstanceClass = domainObjectInstance.getClass();
+        ObjectSpecification specification = 
holder.getObjectAction().getSpecificationLoader()
+                .loadSpecification(domainObjectInstanceClass);
+        if (specification == null) {
+            // not expected
+            return true;
+        }
+
+        ManagedObject owner = ManagedObject.adaptSingular(specification, 
domainObjectInstance);
+
+        val visibleConsent = objectAction.isVisible(owner, 
InteractionInitiatedBy.USER, Where.ANYWHERE);
+        return visibleConsent.isVetoed();
+    }
+
+}
diff --git 
a/incubator/viewers/graphql/model/src/main/java/org/apache/causeway/viewer/graphql/model/domain/GqlvActionHiddenHolder.java
 
b/incubator/viewers/graphql/model/src/main/java/org/apache/causeway/viewer/graphql/model/domain/GqlvActionHiddenHolder.java
new file mode 100644
index 0000000000..dd809e76b9
--- /dev/null
+++ 
b/incubator/viewers/graphql/model/src/main/java/org/apache/causeway/viewer/graphql/model/domain/GqlvActionHiddenHolder.java
@@ -0,0 +1,9 @@
+package org.apache.causeway.viewer.graphql.model.domain;
+
+import org.apache.causeway.core.metamodel.spec.feature.ObjectAction;
+
+public interface GqlvActionHiddenHolder extends GqlvHolder {
+
+
+    ObjectAction getObjectAction();
+}
diff --git 
a/incubator/viewers/graphql/model/src/main/java/org/apache/causeway/viewer/graphql/model/types/ScalarMapper.java
 
b/incubator/viewers/graphql/model/src/main/java/org/apache/causeway/viewer/graphql/model/types/ScalarMapper.java
index e71f2256fa..54af4d2488 100644
--- 
a/incubator/viewers/graphql/model/src/main/java/org/apache/causeway/viewer/graphql/model/types/ScalarMapper.java
+++ 
b/incubator/viewers/graphql/model/src/main/java/org/apache/causeway/viewer/graphql/model/types/ScalarMapper.java
@@ -24,6 +24,7 @@ import java.util.Arrays;
 import java.util.List;
 
 import graphql.Scalars;
+import graphql.schema.GraphQLScalarType;
 import graphql.schema.GraphQLType;
 
 import lombok.experimental.UtilityClass;
@@ -36,7 +37,7 @@ public class ScalarMapper {
     private static List<Class<?>> longEquivalents = Arrays.asList(Long.class, 
long.class, BigDecimal.class);
     private static List<Class<?>> booleanEquivalents = 
Arrays.asList(Boolean.class, boolean.class);
 
-    public static GraphQLType typeFor(final Class<?> c){
+    public static GraphQLScalarType typeFor(final Class<?> c){
         if (integerEquivalents.contains(c)){
             return Scalars.GraphQLInt;
         }
diff --git 
a/incubator/viewers/graphql/test/src/test/java/org/apache/causeway/viewer/graphql/viewer/test/domain/DepartmentMenu.java
 
b/incubator/viewers/graphql/test/src/test/java/org/apache/causeway/viewer/graphql/viewer/test/domain/DepartmentMenu.java
index b4e2f22d97..a909ff9e26 100644
--- 
a/incubator/viewers/graphql/test/src/test/java/org/apache/causeway/viewer/graphql/viewer/test/domain/DepartmentMenu.java
+++ 
b/incubator/viewers/graphql/test/src/test/java/org/apache/causeway/viewer/graphql/viewer/test/domain/DepartmentMenu.java
@@ -23,6 +23,10 @@ import java.util.List;
 import javax.inject.Inject;
 import javax.inject.Named;
 
+import org.apache.causeway.applib.annotation.ActionLayout;
+
+import org.apache.causeway.applib.annotation.Where;
+
 import org.springframework.lang.Nullable;
 
 import org.apache.causeway.applib.annotation.Action;
@@ -56,4 +60,9 @@ public class DepartmentMenu {
     }
 
 
+    @Action(semantics = SemanticsOf.NON_IDEMPOTENT)
+    @ActionLayout(hidden = Where.EVERYWHERE)
+    public void adminAction() {
+    }
+
 }
diff --git 
a/incubator/viewers/graphql/test/src/test/java/org/apache/causeway/viewer/graphql/viewer/test/e2e/Domain_IntegTest.admin_action._.gql
 
b/incubator/viewers/graphql/test/src/test/java/org/apache/causeway/viewer/graphql/viewer/test/e2e/Domain_IntegTest.admin_action._.gql
new file mode 100644
index 0000000000..40ad68558a
--- /dev/null
+++ 
b/incubator/viewers/graphql/test/src/test/java/org/apache/causeway/viewer/graphql/viewer/test/e2e/Domain_IntegTest.admin_action._.gql
@@ -0,0 +1,9 @@
+{
+  university_dept_DepartmentMenu {
+    _gql_mutations {
+      adminAction {
+        hidden
+      }
+    }
+  }
+}
diff --git 
a/incubator/viewers/graphql/test/src/test/java/org/apache/causeway/viewer/graphql/viewer/test/e2e/Domain_IntegTest.create_department.approved.json
 
b/incubator/viewers/graphql/test/src/test/java/org/apache/causeway/viewer/graphql/viewer/test/e2e/Domain_IntegTest.admin_action.approved.json
similarity index 53%
copy from 
incubator/viewers/graphql/test/src/test/java/org/apache/causeway/viewer/graphql/viewer/test/e2e/Domain_IntegTest.create_department.approved.json
copy to 
incubator/viewers/graphql/test/src/test/java/org/apache/causeway/viewer/graphql/viewer/test/e2e/Domain_IntegTest.admin_action.approved.json
index 850d5be86f..46f2b6b43c 100644
--- 
a/incubator/viewers/graphql/test/src/test/java/org/apache/causeway/viewer/graphql/viewer/test/e2e/Domain_IntegTest.create_department.approved.json
+++ 
b/incubator/viewers/graphql/test/src/test/java/org/apache/causeway/viewer/graphql/viewer/test/e2e/Domain_IntegTest.admin_action.approved.json
@@ -2,10 +2,8 @@
   "data" : {
     "university_dept_DepartmentMenu" : {
       "_gql_mutations" : {
-        "createDepartment" : {
-          "invoke" : {
-            "name" : "newbie"
-          }
+        "adminAction" : {
+          "hidden" : true
         }
       }
     }
diff --git 
a/incubator/viewers/graphql/test/src/test/java/org/apache/causeway/viewer/graphql/viewer/test/e2e/Domain_IntegTest.create_department._.gql
 
b/incubator/viewers/graphql/test/src/test/java/org/apache/causeway/viewer/graphql/viewer/test/e2e/Domain_IntegTest.create_department._.gql
index a5f6eb0aee..3b85bd7cb3 100644
--- 
a/incubator/viewers/graphql/test/src/test/java/org/apache/causeway/viewer/graphql/viewer/test/e2e/Domain_IntegTest.create_department._.gql
+++ 
b/incubator/viewers/graphql/test/src/test/java/org/apache/causeway/viewer/graphql/viewer/test/e2e/Domain_IntegTest.create_department._.gql
@@ -2,6 +2,7 @@
   university_dept_DepartmentMenu {
     _gql_mutations {
       createDepartment {
+        hidden
         invoke(name: "newbie") {
           name
         }
diff --git 
a/incubator/viewers/graphql/test/src/test/java/org/apache/causeway/viewer/graphql/viewer/test/e2e/Domain_IntegTest.create_department.approved.json
 
b/incubator/viewers/graphql/test/src/test/java/org/apache/causeway/viewer/graphql/viewer/test/e2e/Domain_IntegTest.create_department.approved.json
index 850d5be86f..35b4dc5693 100644
--- 
a/incubator/viewers/graphql/test/src/test/java/org/apache/causeway/viewer/graphql/viewer/test/e2e/Domain_IntegTest.create_department.approved.json
+++ 
b/incubator/viewers/graphql/test/src/test/java/org/apache/causeway/viewer/graphql/viewer/test/e2e/Domain_IntegTest.create_department.approved.json
@@ -3,6 +3,7 @@
     "university_dept_DepartmentMenu" : {
       "_gql_mutations" : {
         "createDepartment" : {
+          "hidden" : false,
           "invoke" : {
             "name" : "newbie"
           }
diff --git 
a/incubator/viewers/graphql/test/src/test/java/org/apache/causeway/viewer/graphql/viewer/test/e2e/Domain_IntegTest.java
 
b/incubator/viewers/graphql/test/src/test/java/org/apache/causeway/viewer/graphql/viewer/test/e2e/Domain_IntegTest.java
index 8b7358944b..e1670609e5 100644
--- 
a/incubator/viewers/graphql/test/src/test/java/org/apache/causeway/viewer/graphql/viewer/test/e2e/Domain_IntegTest.java
+++ 
b/incubator/viewers/graphql/test/src/test/java/org/apache/causeway/viewer/graphql/viewer/test/e2e/Domain_IntegTest.java
@@ -109,6 +109,17 @@ public class Domain_IntegTest extends 
CausewayViewerGraphqlTestModuleIntegTestAb
                 .extracting(Department::getName).isEqualTo("newbie");
     }
 
+    @Test
+    @UseReporter(DiffReporter.class)
+    void admin_action() throws Exception {
+
+        // when
+        val response = submit();
+
+        // then payload
+        Approvals.verify(response, jsonOptions());
+    }
+
     @Test
     @UseReporter(DiffReporter.class)
     void find_department_and_change_name() throws Exception {
diff --git 
a/incubator/viewers/graphql/test/src/test/java/org/apache/causeway/viewer/graphql/viewer/test/e2e/Schema_IntegTest.schema.approved.json
 
b/incubator/viewers/graphql/test/src/test/java/org/apache/causeway/viewer/graphql/viewer/test/e2e/Schema_IntegTest.schema.approved.json
index 41b55def82..b099eba70f 100644
--- 
a/incubator/viewers/graphql/test/src/test/java/org/apache/causeway/viewer/graphql/viewer/test/e2e/Schema_IntegTest.schema.approved.json
+++ 
b/incubator/viewers/graphql/test/src/test/java/org/apache/causeway/viewer/graphql/viewer/test/e2e/Schema_IntegTest.schema.approved.json
@@ -1466,6 +1466,17 @@
         "name" : "causeway_applib_PropertyNode__streamChildNodes",
         "description" : null,
         "fields" : [ {
+          "name" : "hidden",
+          "description" : null,
+          "args" : [ ],
+          "type" : {
+            "kind" : "SCALAR",
+            "name" : "Boolean",
+            "ofType" : null
+          },
+          "isDeprecated" : false,
+          "deprecationReason" : null
+        }, {
           "name" : "invoke",
           "description" : null,
           "args" : [ ],
@@ -1935,6 +1946,17 @@
         "name" : "causeway_applib_UserMenu__me",
         "description" : null,
         "fields" : [ {
+          "name" : "hidden",
+          "description" : null,
+          "args" : [ ],
+          "type" : {
+            "kind" : "SCALAR",
+            "name" : "Boolean",
+            "ofType" : null
+          },
+          "isDeprecated" : false,
+          "deprecationReason" : null
+        }, {
           "name" : "invoke",
           "description" : null,
           "args" : [ ],
@@ -2112,6 +2134,17 @@
         "name" : "causeway_applib_node_ActionNode__streamChildNodes",
         "description" : null,
         "fields" : [ {
+          "name" : "hidden",
+          "description" : null,
+          "args" : [ ],
+          "type" : {
+            "kind" : "SCALAR",
+            "name" : "Boolean",
+            "ofType" : null
+          },
+          "isDeprecated" : false,
+          "deprecationReason" : null
+        }, {
           "name" : "invoke",
           "description" : null,
           "args" : [ ],
@@ -2289,6 +2322,17 @@
         "name" : "causeway_applib_node_CollectionNode__streamChildNodes",
         "description" : null,
         "fields" : [ {
+          "name" : "hidden",
+          "description" : null,
+          "args" : [ ],
+          "type" : {
+            "kind" : "SCALAR",
+            "name" : "Boolean",
+            "ofType" : null
+          },
+          "isDeprecated" : false,
+          "deprecationReason" : null
+        }, {
           "name" : "invoke",
           "description" : null,
           "args" : [ ],
@@ -2551,6 +2595,17 @@
         "name" : "causeway_conf_ConfigurationMenu__configuration",
         "description" : null,
         "fields" : [ {
+          "name" : "hidden",
+          "description" : null,
+          "args" : [ ],
+          "type" : {
+            "kind" : "SCALAR",
+            "name" : "Boolean",
+            "ofType" : null
+          },
+          "isDeprecated" : false,
+          "deprecationReason" : null
+        }, {
           "name" : "invoke",
           "description" : null,
           "args" : [ ],
@@ -4156,6 +4211,17 @@
         "name" : "causeway_security_LogoutMenu__logout",
         "description" : null,
         "fields" : [ {
+          "name" : "hidden",
+          "description" : null,
+          "args" : [ ],
+          "type" : {
+            "kind" : "SCALAR",
+            "name" : "Boolean",
+            "ofType" : null
+          },
+          "isDeprecated" : false,
+          "deprecationReason" : null
+        }, {
           "name" : "invoke",
           "description" : null,
           "args" : [ ],
@@ -5007,6 +5073,17 @@
         "name" : "org_apache_causeway_commons_functional_Either__accept",
         "description" : null,
         "fields" : [ {
+          "name" : "hidden",
+          "description" : null,
+          "args" : [ ],
+          "type" : {
+            "kind" : "SCALAR",
+            "name" : "Boolean",
+            "ofType" : null
+          },
+          "isDeprecated" : false,
+          "deprecationReason" : null
+        }, {
           "name" : "invoke",
           "description" : null,
           "args" : [ {
@@ -5189,6 +5266,17 @@
         "name" : "org_apache_causeway_commons_functional_Either__left",
         "description" : null,
         "fields" : [ {
+          "name" : "hidden",
+          "description" : null,
+          "args" : [ ],
+          "type" : {
+            "kind" : "SCALAR",
+            "name" : "Boolean",
+            "ofType" : null
+          },
+          "isDeprecated" : false,
+          "deprecationReason" : null
+        }, {
           "name" : "invoke",
           "description" : null,
           "args" : [ ],
@@ -5209,6 +5297,17 @@
         "name" : "org_apache_causeway_commons_functional_Either__map",
         "description" : null,
         "fields" : [ {
+          "name" : "hidden",
+          "description" : null,
+          "args" : [ ],
+          "type" : {
+            "kind" : "SCALAR",
+            "name" : "Boolean",
+            "ofType" : null
+          },
+          "isDeprecated" : false,
+          "deprecationReason" : null
+        }, {
           "name" : "invoke",
           "description" : null,
           "args" : [ {
@@ -5255,6 +5354,17 @@
         "name" : "org_apache_causeway_commons_functional_Either__mapLeft",
         "description" : null,
         "fields" : [ {
+          "name" : "hidden",
+          "description" : null,
+          "args" : [ ],
+          "type" : {
+            "kind" : "SCALAR",
+            "name" : "Boolean",
+            "ofType" : null
+          },
+          "isDeprecated" : false,
+          "deprecationReason" : null
+        }, {
           "name" : "invoke",
           "description" : null,
           "args" : [ {
@@ -5288,6 +5398,17 @@
         "name" : "org_apache_causeway_commons_functional_Either__mapRight",
         "description" : null,
         "fields" : [ {
+          "name" : "hidden",
+          "description" : null,
+          "args" : [ ],
+          "type" : {
+            "kind" : "SCALAR",
+            "name" : "Boolean",
+            "ofType" : null
+          },
+          "isDeprecated" : false,
+          "deprecationReason" : null
+        }, {
           "name" : "invoke",
           "description" : null,
           "args" : [ {
@@ -5321,6 +5442,17 @@
         "name" : "org_apache_causeway_commons_functional_Either__right",
         "description" : null,
         "fields" : [ {
+          "name" : "hidden",
+          "description" : null,
+          "args" : [ ],
+          "type" : {
+            "kind" : "SCALAR",
+            "name" : "Boolean",
+            "ofType" : null
+          },
+          "isDeprecated" : false,
+          "deprecationReason" : null
+        }, {
           "name" : "invoke",
           "description" : null,
           "args" : [ ],
@@ -5402,6 +5534,17 @@
         "name" : "org_apache_causeway_commons_functional_Railway__chain",
         "description" : null,
         "fields" : [ {
+          "name" : "hidden",
+          "description" : null,
+          "args" : [ ],
+          "type" : {
+            "kind" : "SCALAR",
+            "name" : "Boolean",
+            "ofType" : null
+          },
+          "isDeprecated" : false,
+          "deprecationReason" : null
+        }, {
           "name" : "invoke",
           "description" : null,
           "args" : [ {
@@ -5560,6 +5703,17 @@
         "name" : "org_apache_causeway_commons_functional_Railway__ifFailure",
         "description" : null,
         "fields" : [ {
+          "name" : "hidden",
+          "description" : null,
+          "args" : [ ],
+          "type" : {
+            "kind" : "SCALAR",
+            "name" : "Boolean",
+            "ofType" : null
+          },
+          "isDeprecated" : false,
+          "deprecationReason" : null
+        }, {
           "name" : "invoke",
           "description" : null,
           "args" : [ {
@@ -5593,6 +5747,17 @@
         "name" : "org_apache_causeway_commons_functional_Railway__ifSuccess",
         "description" : null,
         "fields" : [ {
+          "name" : "hidden",
+          "description" : null,
+          "args" : [ ],
+          "type" : {
+            "kind" : "SCALAR",
+            "name" : "Boolean",
+            "ofType" : null
+          },
+          "isDeprecated" : false,
+          "deprecationReason" : null
+        }, {
           "name" : "invoke",
           "description" : null,
           "args" : [ {
@@ -5626,6 +5791,17 @@
         "name" : "org_apache_causeway_commons_functional_Railway__mapFailure",
         "description" : null,
         "fields" : [ {
+          "name" : "hidden",
+          "description" : null,
+          "args" : [ ],
+          "type" : {
+            "kind" : "SCALAR",
+            "name" : "Boolean",
+            "ofType" : null
+          },
+          "isDeprecated" : false,
+          "deprecationReason" : null
+        }, {
           "name" : "invoke",
           "description" : null,
           "args" : [ {
@@ -5659,6 +5835,17 @@
         "name" : "org_apache_causeway_commons_functional_Railway__mapSuccess",
         "description" : null,
         "fields" : [ {
+          "name" : "hidden",
+          "description" : null,
+          "args" : [ ],
+          "type" : {
+            "kind" : "SCALAR",
+            "name" : "Boolean",
+            "ofType" : null
+          },
+          "isDeprecated" : false,
+          "deprecationReason" : null
+        }, {
           "name" : "invoke",
           "description" : null,
           "args" : [ {
@@ -5723,6 +5910,17 @@
         "name" : 
"org_apache_causeway_commons_functional_ThrowingConsumer__andThen",
         "description" : null,
         "fields" : [ {
+          "name" : "hidden",
+          "description" : null,
+          "args" : [ ],
+          "type" : {
+            "kind" : "SCALAR",
+            "name" : "Boolean",
+            "ofType" : null
+          },
+          "isDeprecated" : false,
+          "deprecationReason" : null
+        }, {
           "name" : "invoke",
           "description" : null,
           "args" : [ {
@@ -5848,6 +6046,17 @@
         "name" : 
"org_apache_causeway_commons_functional_ThrowingConsumer__throwing",
         "description" : null,
         "fields" : [ {
+          "name" : "hidden",
+          "description" : null,
+          "args" : [ ],
+          "type" : {
+            "kind" : "SCALAR",
+            "name" : "Boolean",
+            "ofType" : null
+          },
+          "isDeprecated" : false,
+          "deprecationReason" : null
+        }, {
           "name" : "invoke",
           "description" : null,
           "args" : [ {
@@ -5912,6 +6121,17 @@
         "name" : 
"org_apache_causeway_commons_functional_ThrowingFunction__andThen",
         "description" : null,
         "fields" : [ {
+          "name" : "hidden",
+          "description" : null,
+          "args" : [ ],
+          "type" : {
+            "kind" : "SCALAR",
+            "name" : "Boolean",
+            "ofType" : null
+          },
+          "isDeprecated" : false,
+          "deprecationReason" : null
+        }, {
           "name" : "invoke",
           "description" : null,
           "args" : [ {
@@ -5945,6 +6165,17 @@
         "name" : 
"org_apache_causeway_commons_functional_ThrowingFunction__compose",
         "description" : null,
         "fields" : [ {
+          "name" : "hidden",
+          "description" : null,
+          "args" : [ ],
+          "type" : {
+            "kind" : "SCALAR",
+            "name" : "Boolean",
+            "ofType" : null
+          },
+          "isDeprecated" : false,
+          "deprecationReason" : null
+        }, {
           "name" : "invoke",
           "description" : null,
           "args" : [ {
@@ -6081,6 +6312,17 @@
         "name" : 
"org_apache_causeway_commons_functional_ThrowingFunction__throwing",
         "description" : null,
         "fields" : [ {
+          "name" : "hidden",
+          "description" : null,
+          "args" : [ ],
+          "type" : {
+            "kind" : "SCALAR",
+            "name" : "Boolean",
+            "ofType" : null
+          },
+          "isDeprecated" : false,
+          "deprecationReason" : null
+        }, {
           "name" : "invoke",
           "description" : null,
           "args" : [ {
@@ -6145,6 +6387,17 @@
         "name" : 
"org_apache_causeway_commons_functional_ThrowingRunnable__callUncatched",
         "description" : null,
         "fields" : [ {
+          "name" : "hidden",
+          "description" : null,
+          "args" : [ ],
+          "type" : {
+            "kind" : "SCALAR",
+            "name" : "Boolean",
+            "ofType" : null
+          },
+          "isDeprecated" : false,
+          "deprecationReason" : null
+        }, {
           "name" : "invoke",
           "description" : null,
           "args" : [ ],
@@ -6290,6 +6543,17 @@
         "name" : 
"org_apache_causeway_commons_functional_ThrowingRunnable__run",
         "description" : null,
         "fields" : [ {
+          "name" : "hidden",
+          "description" : null,
+          "args" : [ ],
+          "type" : {
+            "kind" : "SCALAR",
+            "name" : "Boolean",
+            "ofType" : null
+          },
+          "isDeprecated" : false,
+          "deprecationReason" : null
+        }, {
           "name" : "invoke",
           "description" : null,
           "args" : [ ],
@@ -6310,6 +6574,17 @@
         "name" : 
"org_apache_causeway_commons_functional_ThrowingRunnable__runUncatched",
         "description" : null,
         "fields" : [ {
+          "name" : "hidden",
+          "description" : null,
+          "args" : [ ],
+          "type" : {
+            "kind" : "SCALAR",
+            "name" : "Boolean",
+            "ofType" : null
+          },
+          "isDeprecated" : false,
+          "deprecationReason" : null
+        }, {
           "name" : "invoke",
           "description" : null,
           "args" : [ ],
@@ -6330,17 +6605,28 @@
         "name" : 
"org_apache_causeway_commons_functional_ThrowingRunnable__toCallable",
         "description" : null,
         "fields" : [ {
-          "name" : "invoke",
+          "name" : "hidden",
           "description" : null,
           "args" : [ ],
           "type" : {
-            "kind" : "OBJECT",
-            "name" : "java_util_concurrent_Callable",
+            "kind" : "SCALAR",
+            "name" : "Boolean",
             "ofType" : null
           },
           "isDeprecated" : false,
           "deprecationReason" : null
-        } ],
+        }, {
+          "name" : "invoke",
+          "description" : null,
+          "args" : [ ],
+          "type" : {
+            "kind" : "OBJECT",
+            "name" : "java_util_concurrent_Callable",
+            "ofType" : null
+          },
+          "isDeprecated" : false,
+          "deprecationReason" : null
+        } ],
         "inputFields" : null,
         "interfaces" : [ ],
         "enumValues" : null,
@@ -6350,6 +6636,17 @@
         "name" : 
"org_apache_causeway_commons_functional_ThrowingRunnable__toRunnable",
         "description" : null,
         "fields" : [ {
+          "name" : "hidden",
+          "description" : null,
+          "args" : [ ],
+          "type" : {
+            "kind" : "SCALAR",
+            "name" : "Boolean",
+            "ofType" : null
+          },
+          "isDeprecated" : false,
+          "deprecationReason" : null
+        }, {
           "name" : "invoke",
           "description" : null,
           "args" : [ ],
@@ -6431,6 +6728,17 @@
         "name" : "org_apache_causeway_commons_functional_Try__accept",
         "description" : null,
         "fields" : [ {
+          "name" : "hidden",
+          "description" : null,
+          "args" : [ ],
+          "type" : {
+            "kind" : "SCALAR",
+            "name" : "Boolean",
+            "ofType" : null
+          },
+          "isDeprecated" : false,
+          "deprecationReason" : null
+        }, {
           "name" : "invoke",
           "description" : null,
           "args" : [ {
@@ -6477,6 +6785,17 @@
         "name" : "org_apache_causeway_commons_functional_Try__flatMapSuccess",
         "description" : null,
         "fields" : [ {
+          "name" : "hidden",
+          "description" : null,
+          "args" : [ ],
+          "type" : {
+            "kind" : "SCALAR",
+            "name" : "Boolean",
+            "ofType" : null
+          },
+          "isDeprecated" : false,
+          "deprecationReason" : null
+        }, {
           "name" : "invoke",
           "description" : null,
           "args" : [ {
@@ -6510,6 +6829,17 @@
         "name" : 
"org_apache_causeway_commons_functional_Try__flatMapSuccessAsNullable",
         "description" : null,
         "fields" : [ {
+          "name" : "hidden",
+          "description" : null,
+          "args" : [ ],
+          "type" : {
+            "kind" : "SCALAR",
+            "name" : "Boolean",
+            "ofType" : null
+          },
+          "isDeprecated" : false,
+          "deprecationReason" : null
+        }, {
           "name" : "invoke",
           "description" : null,
           "args" : [ {
@@ -6543,6 +6873,17 @@
         "name" : 
"org_apache_causeway_commons_functional_Try__flatMapSuccessWhenPresent",
         "description" : null,
         "fields" : [ {
+          "name" : "hidden",
+          "description" : null,
+          "args" : [ ],
+          "type" : {
+            "kind" : "SCALAR",
+            "name" : "Boolean",
+            "ofType" : null
+          },
+          "isDeprecated" : false,
+          "deprecationReason" : null
+        }, {
           "name" : "invoke",
           "description" : null,
           "args" : [ {
@@ -6866,6 +7207,17 @@
         "name" : "org_apache_causeway_commons_functional_Try__ifAbsentFail",
         "description" : null,
         "fields" : [ {
+          "name" : "hidden",
+          "description" : null,
+          "args" : [ ],
+          "type" : {
+            "kind" : "SCALAR",
+            "name" : "Boolean",
+            "ofType" : null
+          },
+          "isDeprecated" : false,
+          "deprecationReason" : null
+        }, {
           "name" : "invoke",
           "description" : null,
           "args" : [ ],
@@ -6886,6 +7238,17 @@
         "name" : "org_apache_causeway_commons_functional_Try__ifFailure",
         "description" : null,
         "fields" : [ {
+          "name" : "hidden",
+          "description" : null,
+          "args" : [ ],
+          "type" : {
+            "kind" : "SCALAR",
+            "name" : "Boolean",
+            "ofType" : null
+          },
+          "isDeprecated" : false,
+          "deprecationReason" : null
+        }, {
           "name" : "invoke",
           "description" : null,
           "args" : [ {
@@ -6919,6 +7282,17 @@
         "name" : "org_apache_causeway_commons_functional_Try__ifFailureFail",
         "description" : null,
         "fields" : [ {
+          "name" : "hidden",
+          "description" : null,
+          "args" : [ ],
+          "type" : {
+            "kind" : "SCALAR",
+            "name" : "Boolean",
+            "ofType" : null
+          },
+          "isDeprecated" : false,
+          "deprecationReason" : null
+        }, {
           "name" : "invoke",
           "description" : null,
           "args" : [ ],
@@ -6939,6 +7313,17 @@
         "name" : "org_apache_causeway_commons_functional_Try__ifSuccess",
         "description" : null,
         "fields" : [ {
+          "name" : "hidden",
+          "description" : null,
+          "args" : [ ],
+          "type" : {
+            "kind" : "SCALAR",
+            "name" : "Boolean",
+            "ofType" : null
+          },
+          "isDeprecated" : false,
+          "deprecationReason" : null
+        }, {
           "name" : "invoke",
           "description" : null,
           "args" : [ {
@@ -6972,6 +7357,17 @@
         "name" : 
"org_apache_causeway_commons_functional_Try__ifSuccessAsNullable",
         "description" : null,
         "fields" : [ {
+          "name" : "hidden",
+          "description" : null,
+          "args" : [ ],
+          "type" : {
+            "kind" : "SCALAR",
+            "name" : "Boolean",
+            "ofType" : null
+          },
+          "isDeprecated" : false,
+          "deprecationReason" : null
+        }, {
           "name" : "invoke",
           "description" : null,
           "args" : [ {
@@ -7005,6 +7401,17 @@
         "name" : 
"org_apache_causeway_commons_functional_Try__mapEmptyToFailure",
         "description" : null,
         "fields" : [ {
+          "name" : "hidden",
+          "description" : null,
+          "args" : [ ],
+          "type" : {
+            "kind" : "SCALAR",
+            "name" : "Boolean",
+            "ofType" : null
+          },
+          "isDeprecated" : false,
+          "deprecationReason" : null
+        }, {
           "name" : "invoke",
           "description" : null,
           "args" : [ ],
@@ -7025,6 +7432,17 @@
         "name" : "org_apache_causeway_commons_functional_Try__mapFailure",
         "description" : null,
         "fields" : [ {
+          "name" : "hidden",
+          "description" : null,
+          "args" : [ ],
+          "type" : {
+            "kind" : "SCALAR",
+            "name" : "Boolean",
+            "ofType" : null
+          },
+          "isDeprecated" : false,
+          "deprecationReason" : null
+        }, {
           "name" : "invoke",
           "description" : null,
           "args" : [ {
@@ -7058,6 +7476,17 @@
         "name" : 
"org_apache_causeway_commons_functional_Try__mapFailureToSuccess",
         "description" : null,
         "fields" : [ {
+          "name" : "hidden",
+          "description" : null,
+          "args" : [ ],
+          "type" : {
+            "kind" : "SCALAR",
+            "name" : "Boolean",
+            "ofType" : null
+          },
+          "isDeprecated" : false,
+          "deprecationReason" : null
+        }, {
           "name" : "invoke",
           "description" : null,
           "args" : [ {
@@ -7091,6 +7520,17 @@
         "name" : "org_apache_causeway_commons_functional_Try__mapSuccess",
         "description" : null,
         "fields" : [ {
+          "name" : "hidden",
+          "description" : null,
+          "args" : [ ],
+          "type" : {
+            "kind" : "SCALAR",
+            "name" : "Boolean",
+            "ofType" : null
+          },
+          "isDeprecated" : false,
+          "deprecationReason" : null
+        }, {
           "name" : "invoke",
           "description" : null,
           "args" : [ {
@@ -7124,6 +7564,17 @@
         "name" : 
"org_apache_causeway_commons_functional_Try__mapSuccessAsNullable",
         "description" : null,
         "fields" : [ {
+          "name" : "hidden",
+          "description" : null,
+          "args" : [ ],
+          "type" : {
+            "kind" : "SCALAR",
+            "name" : "Boolean",
+            "ofType" : null
+          },
+          "isDeprecated" : false,
+          "deprecationReason" : null
+        }, {
           "name" : "invoke",
           "description" : null,
           "args" : [ {
@@ -7157,6 +7608,17 @@
         "name" : 
"org_apache_causeway_commons_functional_Try__mapSuccessWhenPresent",
         "description" : null,
         "fields" : [ {
+          "name" : "hidden",
+          "description" : null,
+          "args" : [ ],
+          "type" : {
+            "kind" : "SCALAR",
+            "name" : "Boolean",
+            "ofType" : null
+          },
+          "isDeprecated" : false,
+          "deprecationReason" : null
+        }, {
           "name" : "invoke",
           "description" : null,
           "args" : [ {
@@ -7190,6 +7652,17 @@
         "name" : "org_apache_causeway_commons_functional_Try__mapToEither",
         "description" : null,
         "fields" : [ {
+          "name" : "hidden",
+          "description" : null,
+          "args" : [ ],
+          "type" : {
+            "kind" : "SCALAR",
+            "name" : "Boolean",
+            "ofType" : null
+          },
+          "isDeprecated" : false,
+          "deprecationReason" : null
+        }, {
           "name" : "invoke",
           "description" : null,
           "args" : [ {
@@ -7236,6 +7709,17 @@
         "name" : "org_apache_causeway_commons_functional_Try__orCall",
         "description" : null,
         "fields" : [ {
+          "name" : "hidden",
+          "description" : null,
+          "args" : [ ],
+          "type" : {
+            "kind" : "SCALAR",
+            "name" : "Boolean",
+            "ofType" : null
+          },
+          "isDeprecated" : false,
+          "deprecationReason" : null
+        }, {
           "name" : "invoke",
           "description" : null,
           "args" : [ {
@@ -7269,6 +7753,17 @@
         "name" : "org_apache_causeway_commons_functional_Try__then",
         "description" : null,
         "fields" : [ {
+          "name" : "hidden",
+          "description" : null,
+          "args" : [ ],
+          "type" : {
+            "kind" : "SCALAR",
+            "name" : "Boolean",
+            "ofType" : null
+          },
+          "isDeprecated" : false,
+          "deprecationReason" : null
+        }, {
           "name" : "invoke",
           "description" : null,
           "args" : [ {
@@ -7302,6 +7797,17 @@
         "name" : "org_apache_causeway_commons_functional_Try__thenCall",
         "description" : null,
         "fields" : [ {
+          "name" : "hidden",
+          "description" : null,
+          "args" : [ ],
+          "type" : {
+            "kind" : "SCALAR",
+            "name" : "Boolean",
+            "ofType" : null
+          },
+          "isDeprecated" : false,
+          "deprecationReason" : null
+        }, {
           "name" : "invoke",
           "description" : null,
           "args" : [ {
@@ -7335,6 +7841,17 @@
         "name" : "org_apache_causeway_commons_functional_Try__thenRun",
         "description" : null,
         "fields" : [ {
+          "name" : "hidden",
+          "description" : null,
+          "args" : [ ],
+          "type" : {
+            "kind" : "SCALAR",
+            "name" : "Boolean",
+            "ofType" : null
+          },
+          "isDeprecated" : false,
+          "deprecationReason" : null
+        }, {
           "name" : "invoke",
           "description" : null,
           "args" : [ {
@@ -7591,6 +8108,17 @@
         "name" : 
"org_apache_causeway_core_metamodel_inspect_model_MemberNode__streamChildNodes",
         "description" : null,
         "fields" : [ {
+          "name" : "hidden",
+          "description" : null,
+          "args" : [ ],
+          "type" : {
+            "kind" : "SCALAR",
+            "name" : "Boolean",
+            "ofType" : null
+          },
+          "isDeprecated" : false,
+          "deprecationReason" : null
+        }, {
           "name" : "invoke",
           "description" : null,
           "args" : [ ],
@@ -7794,11 +8322,53 @@
         "interfaces" : [ ],
         "enumValues" : null,
         "possibleTypes" : null
+      }, {
+        "kind" : "OBJECT",
+        "name" : "university_dept_DepartmentMenu__adminAction",
+        "description" : null,
+        "fields" : [ {
+          "name" : "hidden",
+          "description" : null,
+          "args" : [ ],
+          "type" : {
+            "kind" : "SCALAR",
+            "name" : "Boolean",
+            "ofType" : null
+          },
+          "isDeprecated" : false,
+          "deprecationReason" : null
+        }, {
+          "name" : "invoke",
+          "description" : null,
+          "args" : [ ],
+          "type" : {
+            "kind" : "SCALAR",
+            "name" : "String",
+            "ofType" : null
+          },
+          "isDeprecated" : false,
+          "deprecationReason" : null
+        } ],
+        "inputFields" : null,
+        "interfaces" : [ ],
+        "enumValues" : null,
+        "possibleTypes" : null
       }, {
         "kind" : "OBJECT",
         "name" : "university_dept_DepartmentMenu__createDepartment",
         "description" : null,
         "fields" : [ {
+          "name" : "hidden",
+          "description" : null,
+          "args" : [ ],
+          "type" : {
+            "kind" : "SCALAR",
+            "name" : "Boolean",
+            "ofType" : null
+          },
+          "isDeprecated" : false,
+          "deprecationReason" : null
+        }, {
           "name" : "invoke",
           "description" : null,
           "args" : [ {
@@ -7841,6 +8411,17 @@
         "name" : "university_dept_DepartmentMenu__findAllDepartments",
         "description" : null,
         "fields" : [ {
+          "name" : "hidden",
+          "description" : null,
+          "args" : [ ],
+          "type" : {
+            "kind" : "SCALAR",
+            "name" : "Boolean",
+            "ofType" : null
+          },
+          "isDeprecated" : false,
+          "deprecationReason" : null
+        }, {
           "name" : "invoke",
           "description" : null,
           "args" : [ ],
@@ -7865,6 +8446,17 @@
         "name" : "university_dept_DepartmentMenu__gql_mutations",
         "description" : null,
         "fields" : [ {
+          "name" : "adminAction",
+          "description" : null,
+          "args" : [ ],
+          "type" : {
+            "kind" : "OBJECT",
+            "name" : "university_dept_DepartmentMenu__adminAction",
+            "ofType" : null
+          },
+          "isDeprecated" : false,
+          "deprecationReason" : null
+        }, {
           "name" : "createDepartment",
           "description" : null,
           "args" : [ ],
@@ -8041,6 +8633,17 @@
         "name" : "university_dept_DeptHeadMenu__findAllDeptHeads",
         "description" : null,
         "fields" : [ {
+          "name" : "hidden",
+          "description" : null,
+          "args" : [ ],
+          "type" : {
+            "kind" : "SCALAR",
+            "name" : "Boolean",
+            "ofType" : null
+          },
+          "isDeprecated" : false,
+          "deprecationReason" : null
+        }, {
           "name" : "invoke",
           "description" : null,
           "args" : [ ],
@@ -8065,6 +8668,17 @@
         "name" : "university_dept_DeptHeadMenu__findDeptHeadByName",
         "description" : null,
         "fields" : [ {
+          "name" : "hidden",
+          "description" : null,
+          "args" : [ ],
+          "type" : {
+            "kind" : "SCALAR",
+            "name" : "Boolean",
+            "ofType" : null
+          },
+          "isDeprecated" : false,
+          "deprecationReason" : null
+        }, {
           "name" : "invoke",
           "description" : null,
           "args" : [ {
@@ -8098,6 +8712,17 @@
         "name" : "university_dept_DeptHead__changeDepartment",
         "description" : null,
         "fields" : [ {
+          "name" : "hidden",
+          "description" : null,
+          "args" : [ ],
+          "type" : {
+            "kind" : "SCALAR",
+            "name" : "Boolean",
+            "ofType" : null
+          },
+          "isDeprecated" : false,
+          "deprecationReason" : null
+        }, {
           "name" : "invoke",
           "description" : null,
           "args" : [ {
@@ -8131,6 +8756,17 @@
         "name" : "university_dept_DeptHead__changeName",
         "description" : null,
         "fields" : [ {
+          "name" : "hidden",
+          "description" : null,
+          "args" : [ ],
+          "type" : {
+            "kind" : "SCALAR",
+            "name" : "Boolean",
+            "ofType" : null
+          },
+          "isDeprecated" : false,
+          "deprecationReason" : null
+        }, {
           "name" : "invoke",
           "description" : null,
           "args" : [ {
diff --git 
a/incubator/viewers/graphql/test/src/test/java/org/apache/causeway/viewer/graphql/viewer/test/e2e/Schema_IntegTest.schema_types_name.approved.json
 
b/incubator/viewers/graphql/test/src/test/java/org/apache/causeway/viewer/graphql/viewer/test/e2e/Schema_IntegTest.schema_types_name.approved.json
index c3b812bc39..cbc1a2c9b9 100644
--- 
a/incubator/viewers/graphql/test/src/test/java/org/apache/causeway/viewer/graphql/viewer/test/e2e/Schema_IntegTest.schema_types_name.approved.json
+++ 
b/incubator/viewers/graphql/test/src/test/java/org/apache/causeway/viewer/graphql/viewer/test/e2e/Schema_IntegTest.schema_types_name.approved.json
@@ -393,6 +393,8 @@
         "name" : "university_dept_Department"
       }, {
         "name" : "university_dept_DepartmentMenu"
+      }, {
+        "name" : "university_dept_DepartmentMenu__adminAction"
       }, {
         "name" : "university_dept_DepartmentMenu__createDepartment"
       }, {
diff --git a/incubator/viewers/graphql/test/src/test/resources/schema.gql 
b/incubator/viewers/graphql/test/src/test/resources/schema.gql
index 90daf264aa..4525375ec6 100644
--- a/incubator/viewers/graphql/test/src/test/resources/schema.gql
+++ b/incubator/viewers/graphql/test/src/test/resources/schema.gql
@@ -84,6 +84,7 @@ type causeway_applib_PropertyNode__gql_mutations {
 }
 
 type causeway_applib_PropertyNode__streamChildNodes {
+  hidden: Boolean
   invoke: java_util_stream_Stream
 }
 
@@ -133,6 +134,7 @@ type causeway_applib_UserMenu {
 }
 
 type causeway_applib_UserMenu__me {
+  hidden: Boolean
   invoke: causeway_applib_UserMemento
 }
 
@@ -154,6 +156,7 @@ type causeway_applib_node_ActionNode__gql_mutations {
 }
 
 type causeway_applib_node_ActionNode__streamChildNodes {
+  hidden: Boolean
   invoke: java_util_stream_Stream
 }
 
@@ -175,6 +178,7 @@ type causeway_applib_node_CollectionNode__gql_mutations {
 }
 
 type causeway_applib_node_CollectionNode__streamChildNodes {
+  hidden: Boolean
   invoke: java_util_stream_Stream
 }
 
@@ -205,6 +209,7 @@ type causeway_conf_ConfigurationMenu {
 }
 
 type causeway_conf_ConfigurationMenu__configuration {
+  hidden: Boolean
   invoke: causeway_conf_ConfigurationViewmodel
 }
 
@@ -358,6 +363,7 @@ type causeway_security_LogoutMenu {
 }
 
 type causeway_security_LogoutMenu__logout {
+  hidden: Boolean
   invoke: String
 }
 
@@ -453,6 +459,7 @@ type org_apache_causeway_commons_functional_Either {
 }
 
 type org_apache_causeway_commons_functional_Either__accept {
+  hidden: Boolean
   invoke(leftConsumer: java_util_function_Consumer__gql_input!, rightConsumer: 
java_util_function_Consumer__gql_input!): String
 }
 
@@ -471,22 +478,27 @@ type 
org_apache_causeway_commons_functional_Either__gql_mutations {
 }
 
 type org_apache_causeway_commons_functional_Either__left {
+  hidden: Boolean
   invoke: String
 }
 
 type org_apache_causeway_commons_functional_Either__map {
+  hidden: Boolean
   invoke(leftMapper: java_util_function_Function__gql_input!, rightMapper: 
java_util_function_Function__gql_input!): 
org_apache_causeway_commons_functional_Either
 }
 
 type org_apache_causeway_commons_functional_Either__mapLeft {
+  hidden: Boolean
   invoke(leftMapper: java_util_function_Function__gql_input!): 
org_apache_causeway_commons_functional_Either
 }
 
 type org_apache_causeway_commons_functional_Either__mapRight {
+  hidden: Boolean
   invoke(rightMapper: java_util_function_Function__gql_input!): 
org_apache_causeway_commons_functional_Either
 }
 
 type org_apache_causeway_commons_functional_Either__right {
+  hidden: Boolean
   invoke: String
 }
 
@@ -498,6 +510,7 @@ type org_apache_causeway_commons_functional_Railway {
 }
 
 type org_apache_causeway_commons_functional_Railway__chain {
+  hidden: Boolean
   invoke(chainingFunction: 
org_apache_causeway_commons_functional_ThrowingFunction__gql_input!): 
org_apache_causeway_commons_functional_Railway
 }
 
@@ -515,18 +528,22 @@ type 
org_apache_causeway_commons_functional_Railway__gql_mutations {
 }
 
 type org_apache_causeway_commons_functional_Railway__ifFailure {
+  hidden: Boolean
   invoke(failureConsumer: 
org_apache_causeway_commons_functional_ThrowingConsumer__gql_input!): 
org_apache_causeway_commons_functional_Railway
 }
 
 type org_apache_causeway_commons_functional_Railway__ifSuccess {
+  hidden: Boolean
   invoke(successConsumer: 
org_apache_causeway_commons_functional_ThrowingConsumer__gql_input!): 
org_apache_causeway_commons_functional_Railway
 }
 
 type org_apache_causeway_commons_functional_Railway__mapFailure {
+  hidden: Boolean
   invoke(failureMapper: 
org_apache_causeway_commons_functional_ThrowingFunction__gql_input!): 
org_apache_causeway_commons_functional_Railway
 }
 
 type org_apache_causeway_commons_functional_Railway__mapSuccess {
+  hidden: Boolean
   invoke(successMapper: 
org_apache_causeway_commons_functional_ThrowingFunction__gql_input!): 
org_apache_causeway_commons_functional_Railway
 }
 
@@ -536,6 +553,7 @@ type 
org_apache_causeway_commons_functional_ThrowingConsumer {
 }
 
 type org_apache_causeway_commons_functional_ThrowingConsumer__andThen {
+  hidden: Boolean
   invoke(arg0: java_util_function_Consumer__gql_input!): 
java_util_function_Consumer
 }
 
@@ -550,6 +568,7 @@ type 
org_apache_causeway_commons_functional_ThrowingConsumer__gql_mutations {
 }
 
 type org_apache_causeway_commons_functional_ThrowingConsumer__throwing {
+  hidden: Boolean
   invoke(exceptionWrapper: java_util_function_BiFunction__gql_input!): 
org_apache_causeway_commons_functional_ThrowingConsumer
 }
 
@@ -559,10 +578,12 @@ type 
org_apache_causeway_commons_functional_ThrowingFunction {
 }
 
 type org_apache_causeway_commons_functional_ThrowingFunction__andThen {
+  hidden: Boolean
   invoke(arg0: java_util_function_Function__gql_input!): 
java_util_function_Function
 }
 
 type org_apache_causeway_commons_functional_ThrowingFunction__compose {
+  hidden: Boolean
   invoke(arg0: java_util_function_Function__gql_input!): 
java_util_function_Function
 }
 
@@ -578,6 +599,7 @@ type 
org_apache_causeway_commons_functional_ThrowingFunction__gql_mutations {
 }
 
 type org_apache_causeway_commons_functional_ThrowingFunction__throwing {
+  hidden: Boolean
   invoke(exceptionWrapper: java_util_function_BiFunction__gql_input!): 
org_apache_causeway_commons_functional_ThrowingFunction
 }
 
@@ -587,6 +609,7 @@ type 
org_apache_causeway_commons_functional_ThrowingRunnable {
 }
 
 type org_apache_causeway_commons_functional_ThrowingRunnable__callUncatched {
+  hidden: Boolean
   invoke: String
 }
 
@@ -604,18 +627,22 @@ type 
org_apache_causeway_commons_functional_ThrowingRunnable__gql_mutations {
 }
 
 type org_apache_causeway_commons_functional_ThrowingRunnable__run {
+  hidden: Boolean
   invoke: String
 }
 
 type org_apache_causeway_commons_functional_ThrowingRunnable__runUncatched {
+  hidden: Boolean
   invoke: String
 }
 
 type org_apache_causeway_commons_functional_ThrowingRunnable__toCallable {
+  hidden: Boolean
   invoke: java_util_concurrent_Callable
 }
 
 type org_apache_causeway_commons_functional_ThrowingRunnable__toRunnable {
+  hidden: Boolean
   invoke: java_lang_Runnable
 }
 
@@ -627,18 +654,22 @@ type org_apache_causeway_commons_functional_Try {
 }
 
 type org_apache_causeway_commons_functional_Try__accept {
+  hidden: Boolean
   invoke(failureConsumer: 
org_apache_causeway_commons_functional_ThrowingConsumer__gql_input!, 
successConsumer: 
org_apache_causeway_commons_functional_ThrowingConsumer__gql_input!): 
org_apache_causeway_commons_functional_Try
 }
 
 type org_apache_causeway_commons_functional_Try__flatMapSuccess {
+  hidden: Boolean
   invoke(successMapper: 
org_apache_causeway_commons_functional_ThrowingFunction__gql_input!): 
org_apache_causeway_commons_functional_Try
 }
 
 type org_apache_causeway_commons_functional_Try__flatMapSuccessAsNullable {
+  hidden: Boolean
   invoke(successMapper: 
org_apache_causeway_commons_functional_ThrowingFunction__gql_input!): 
org_apache_causeway_commons_functional_Try
 }
 
 type org_apache_causeway_commons_functional_Try__flatMapSuccessWhenPresent {
+  hidden: Boolean
   invoke(successMapper: 
org_apache_causeway_commons_functional_ThrowingFunction__gql_input!): 
org_apache_causeway_commons_functional_Try
 }
 
@@ -671,66 +702,82 @@ type 
org_apache_causeway_commons_functional_Try__gql_mutations {
 }
 
 type org_apache_causeway_commons_functional_Try__ifAbsentFail {
+  hidden: Boolean
   invoke: org_apache_causeway_commons_functional_Try
 }
 
 type org_apache_causeway_commons_functional_Try__ifFailure {
+  hidden: Boolean
   invoke(exceptionConsumer: 
org_apache_causeway_commons_functional_ThrowingConsumer__gql_input!): 
org_apache_causeway_commons_functional_Try
 }
 
 type org_apache_causeway_commons_functional_Try__ifFailureFail {
+  hidden: Boolean
   invoke: org_apache_causeway_commons_functional_Try
 }
 
 type org_apache_causeway_commons_functional_Try__ifSuccess {
+  hidden: Boolean
   invoke(valueConsumer: 
org_apache_causeway_commons_functional_ThrowingConsumer__gql_input!): 
org_apache_causeway_commons_functional_Try
 }
 
 type org_apache_causeway_commons_functional_Try__ifSuccessAsNullable {
+  hidden: Boolean
   invoke(valueConsumer: 
org_apache_causeway_commons_functional_ThrowingConsumer__gql_input!): 
org_apache_causeway_commons_functional_Try
 }
 
 type org_apache_causeway_commons_functional_Try__mapEmptyToFailure {
+  hidden: Boolean
   invoke: org_apache_causeway_commons_functional_Try
 }
 
 type org_apache_causeway_commons_functional_Try__mapFailure {
+  hidden: Boolean
   invoke(failureMapper: 
org_apache_causeway_commons_functional_ThrowingFunction__gql_input!): 
org_apache_causeway_commons_functional_Try
 }
 
 type org_apache_causeway_commons_functional_Try__mapFailureToSuccess {
+  hidden: Boolean
   invoke(recoveryMapper: 
org_apache_causeway_commons_functional_ThrowingFunction__gql_input!): 
org_apache_causeway_commons_functional_Try
 }
 
 type org_apache_causeway_commons_functional_Try__mapSuccess {
+  hidden: Boolean
   invoke(successMapper: 
org_apache_causeway_commons_functional_ThrowingFunction__gql_input!): 
org_apache_causeway_commons_functional_Try
 }
 
 type org_apache_causeway_commons_functional_Try__mapSuccessAsNullable {
+  hidden: Boolean
   invoke(successMapper: 
org_apache_causeway_commons_functional_ThrowingFunction__gql_input!): 
org_apache_causeway_commons_functional_Try
 }
 
 type org_apache_causeway_commons_functional_Try__mapSuccessWhenPresent {
+  hidden: Boolean
   invoke(successMapper: 
org_apache_causeway_commons_functional_ThrowingFunction__gql_input!): 
org_apache_causeway_commons_functional_Try
 }
 
 type org_apache_causeway_commons_functional_Try__mapToEither {
+  hidden: Boolean
   invoke(failureMapper: 
org_apache_causeway_commons_functional_ThrowingFunction__gql_input!, 
successMapper: 
org_apache_causeway_commons_functional_ThrowingFunction__gql_input!): 
org_apache_causeway_commons_functional_Either
 }
 
 type org_apache_causeway_commons_functional_Try__orCall {
+  hidden: Boolean
   invoke(fallback: java_util_concurrent_Callable__gql_input!): 
org_apache_causeway_commons_functional_Try
 }
 
 type org_apache_causeway_commons_functional_Try__then {
+  hidden: Boolean
   invoke(next: java_util_concurrent_Callable__gql_input!): 
org_apache_causeway_commons_functional_Try
 }
 
 type org_apache_causeway_commons_functional_Try__thenCall {
+  hidden: Boolean
   invoke(callable: java_util_concurrent_Callable__gql_input!): 
org_apache_causeway_commons_functional_Try
 }
 
 type org_apache_causeway_commons_functional_Try__thenRun {
+  hidden: Boolean
   invoke(runnable: 
org_apache_causeway_commons_functional_ThrowingRunnable__gql_input!): 
org_apache_causeway_commons_functional_Try
 }
 
@@ -760,6 +807,7 @@ type 
org_apache_causeway_core_metamodel_inspect_model_MemberNode__gql_mutations
 }
 
 type 
org_apache_causeway_core_metamodel_inspect_model_MemberNode__streamChildNodes {
+  hidden: Boolean
   invoke: java_util_stream_Stream
 }
 
@@ -785,15 +833,23 @@ type university_dept_DepartmentMenu {
   findAllDepartments: university_dept_DepartmentMenu__findAllDepartments
 }
 
+type university_dept_DepartmentMenu__adminAction {
+  hidden: Boolean
+  invoke: String
+}
+
 type university_dept_DepartmentMenu__createDepartment {
+  hidden: Boolean
   invoke(deptHead: university_dept_DeptHead__gql_input, name: String!): 
university_dept_Department
 }
 
 type university_dept_DepartmentMenu__findAllDepartments {
+  hidden: Boolean
   invoke: [university_dept_Department]
 }
 
 type university_dept_DepartmentMenu__gql_mutations {
+  adminAction: university_dept_DepartmentMenu__adminAction
   createDepartment: university_dept_DepartmentMenu__createDepartment
 }
 
@@ -816,18 +872,22 @@ type university_dept_DeptHeadMenu {
 }
 
 type university_dept_DeptHeadMenu__findAllDeptHeads {
+  hidden: Boolean
   invoke: [university_dept_DeptHead]
 }
 
 type university_dept_DeptHeadMenu__findDeptHeadByName {
+  hidden: Boolean
   invoke(name: String!): university_dept_DeptHead
 }
 
 type university_dept_DeptHead__changeDepartment {
+  hidden: Boolean
   invoke(department: university_dept_Department__gql_input!): 
university_dept_DeptHead
 }
 
 type university_dept_DeptHead__changeName {
+  hidden: Boolean
   invoke(newName: String!): university_dept_DeptHead
 }
 

Reply via email to