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 5b76d6a6e44c156b1bf0456ac2e4de64fbb8091b Author: danhaywood <[email protected]> AuthorDate: Tue Jan 23 18:10:02 2024 +0000 CAUSEWAY-3676: adds ActionDisabled --- .../graphql/model/domain/BookmarkedPojo.java | 40 ++ .../viewer/graphql/model/domain/GqlvAction.java | 54 +- ...lvActionHidden.java => GqlvActionDisabled.java} | 51 +- .../model/domain/GqlvActionDisabledHolder.java | 27 + .../graphql/model/domain/GqlvActionHidden.java | 30 +- .../model/domain/GqlvActionHiddenHolder.java | 18 + .../graphql/model/domain/GqlvActionHolder.java | 18 + .../graphql/model/domain/GqlvActionInvoke.java | 24 +- .../model/domain/GqlvActionInvokeHolder.java | 18 + .../graphql/model/domain/GqlvActionParameter.java | 18 + .../graphql/model/domain/GqlvAssociation.java | 18 + .../model/domain/GqlvAssociationHolder.java | 18 + .../graphql/model/domain/GqlvCollection.java | 18 + .../graphql/model/domain/GqlvCollectionHolder.java | 18 + .../graphql/model/domain/GqlvDomainObject.java | 18 + .../graphql/model/domain/GqlvDomainService.java | 18 + .../viewer/graphql/model/domain/GqlvHolder.java | 18 + .../viewer/graphql/model/domain/GqlvMember.java | 18 + .../graphql/model/domain/GqlvMemberHolder.java | 18 + .../viewer/graphql/model/domain/GqlvMeta.java | 18 + .../graphql/model/domain/GqlvMetaHolder.java | 18 + .../viewer/graphql/model/domain/GqlvMutations.java | 43 +- .../graphql/model/domain/GqlvMutationsHolder.java | 18 + .../viewer/graphql/model/domain/GqlvProperty.java | 18 + .../graphql/model/domain/GqlvPropertyHolder.java | 18 + .../model/registry/GraphQLTypeRegistry.java | 18 + .../graphql/viewer/test/domain/DepartmentMenu.java | 8 + .../e2e/Domain_IntegTest.create_department._.gql | 1 + ...omain_IntegTest.create_department.approved.json | 1 + .../graphql/viewer/test/e2e/Domain_IntegTest.java | 11 + .../e2e/Domain_IntegTest.other_admin_action._.gql | 9 + ...main_IntegTest.other_admin_action.approved.json | 11 + .../test/e2e/Schema_IntegTest.schema.approved.json | 666 ++++++++++++++++++++- ...chema_IntegTest.schema_types_name.approved.json | 2 + .../graphql/test/src/test/resources/schema.gql | 62 ++ 35 files changed, 1296 insertions(+), 86 deletions(-) diff --git a/incubator/viewers/graphql/model/src/main/java/org/apache/causeway/viewer/graphql/model/domain/BookmarkedPojo.java b/incubator/viewers/graphql/model/src/main/java/org/apache/causeway/viewer/graphql/model/domain/BookmarkedPojo.java new file mode 100644 index 0000000000..7e9a7aeae7 --- /dev/null +++ b/incubator/viewers/graphql/model/src/main/java/org/apache/causeway/viewer/graphql/model/domain/BookmarkedPojo.java @@ -0,0 +1,40 @@ +/* + * 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 org.apache.causeway.applib.services.bookmark.Bookmark; +import org.apache.causeway.applib.services.bookmark.BookmarkService; + +class BookmarkedPojo { + + private final Bookmark bookmark; + private final BookmarkService bookmarkService; + + public BookmarkedPojo( + final Bookmark bookmark, + final BookmarkService bookmarkService) { + + this.bookmark = bookmark; + this.bookmarkService = bookmarkService; + } + + public Object getTargetPojo() { + return bookmarkService.lookup(bookmark).orElseThrow(); + } +} 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 7cb4bbe7a5..71b8487184 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 @@ -1,6 +1,23 @@ +/* + * 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 org.apache.causeway.applib.services.bookmark.Bookmark; import org.apache.causeway.applib.services.bookmark.BookmarkService; import org.apache.causeway.core.metamodel.spec.feature.ObjectAction; import org.apache.causeway.viewer.graphql.model.util.TypeNames; @@ -14,11 +31,12 @@ import static graphql.schema.GraphQLFieldDefinition.newFieldDefinition; import static graphql.schema.GraphQLObjectType.newObject; @Log4j2 -public class GqlvAction extends GqlvMember<ObjectAction, GqlvActionHolder> implements GqlvActionInvokeHolder, GqlvActionHiddenHolder { +public class GqlvAction extends GqlvMember<ObjectAction, GqlvActionHolder> implements GqlvActionInvokeHolder, GqlvActionHiddenHolder, GqlvActionDisabledHolder { private final GraphQLObjectType.Builder gqlObjectTypeBuilder; private final GraphQLObjectType gqlObjectType; private final GqlvActionHidden hidden; + private final GqlvActionDisabled disabled; private final GqlvActionInvoke invoke; private final BookmarkService bookmarkService; @@ -34,6 +52,7 @@ public class GqlvAction extends GqlvMember<ObjectAction, GqlvActionHolder> imple this.bookmarkService = bookmarkService; this.hidden = new GqlvActionHidden(this, codeRegistryBuilder); + this.disabled = new GqlvActionDisabled(this, codeRegistryBuilder); this.invoke = new GqlvActionInvoke(this, codeRegistryBuilder); this.gqlObjectType = gqlObjectTypeBuilder.build(); @@ -62,48 +81,31 @@ public class GqlvAction extends GqlvMember<ObjectAction, GqlvActionHolder> imple codeRegistryBuilder.dataFetcher( holder.coordinatesFor(getField()), - new Fetcher2()); + new Fetcher()); hidden.addDataFetcher(); + disabled.addDataFetcher(); invoke.addDataFetcher(); } - private class Fetcher2 implements DataFetcher<Object> { + private class Fetcher implements DataFetcher<Object> { @Override public Object get(DataFetchingEnvironment environment) { Object source = environment.getSource(); Object domainPojo; - if (source instanceof GqlvMutations.Fetcher) { - GqlvMutations.Fetcher mutationsFetcher = (GqlvMutations.Fetcher) source; - domainPojo = mutationsFetcher.getTargetPojo(); + if (source instanceof BookmarkedPojo) { + BookmarkedPojo mutationsBookmarkedPojo = (BookmarkedPojo) source; + domainPojo = mutationsBookmarkedPojo.getTargetPojo(); } else { // presumably this is a safe action domainPojo = source; } return bookmarkService.bookmarkFor(domainPojo) - .map(bookmark -> new Fetcher(bookmark, bookmarkService)) + .map(bookmark -> new BookmarkedPojo(bookmark, bookmarkService)) .orElseThrow(); } } - static class Fetcher { - - private final Bookmark bookmark; - private final BookmarkService bookmarkService; - - public Fetcher( - final Bookmark bookmark, - final BookmarkService bookmarkService) { - - this.bookmark = bookmark; - this.bookmarkService = bookmarkService; - } - - public Object getTargetPojo() { - return bookmarkService.lookup(bookmark).orElseThrow(); - } - } - @Override public FieldCoordinates coordinatesFor(GraphQLFieldDefinition fieldDefinition) { 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/GqlvActionDisabled.java similarity index 60% copy from incubator/viewers/graphql/model/src/main/java/org/apache/causeway/viewer/graphql/model/domain/GqlvActionHidden.java copy to incubator/viewers/graphql/model/src/main/java/org/apache/causeway/viewer/graphql/model/domain/GqlvActionDisabled.java index 17bed097a6..c42a7fcf20 100644 --- 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/GqlvActionDisabled.java @@ -1,36 +1,47 @@ +/* + * 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 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.val; 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 { +public class GqlvActionDisabled { private final GqlvActionHiddenHolder holder; private final GraphQLCodeRegistry.Builder codeRegistryBuilder; private final GraphQLFieldDefinition field; - public GqlvActionHidden( + public GqlvActionDisabled( final GqlvActionHiddenHolder holder, final GraphQLCodeRegistry.Builder codeRegistryBuilder ) { @@ -43,8 +54,8 @@ public class GqlvActionHidden { GraphQLFieldDefinition fieldDefinition = newFieldDefinition() - .name("hidden") - .type(ScalarMapper.typeFor(boolean.class)) + .name("disabled") + .type(ScalarMapper.typeFor(String.class)) .build(); holder.addField(fieldDefinition); @@ -54,20 +65,20 @@ public class GqlvActionHidden { public void addDataFetcher() { codeRegistryBuilder.dataFetcher( holder.coordinatesFor(field), - this::hidden + this::disabled ); } - private boolean hidden( + private String disabled( 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(); + if (source instanceof BookmarkedPojo) { + BookmarkedPojo fetched = (BookmarkedPojo) source; + domainObjectInstance = fetched.getTargetPojo(); } else { domainObjectInstance = source; } @@ -77,13 +88,13 @@ public class GqlvActionHidden { .loadSpecification(domainObjectInstanceClass); if (specification == null) { // not expected - return true; + return String.format("Disabled; could not determine target object's type ('%s')", domainObjectInstanceClass.getName()); } ManagedObject owner = ManagedObject.adaptSingular(specification, domainObjectInstance); - val visibleConsent = objectAction.isVisible(owner, InteractionInitiatedBy.USER, Where.ANYWHERE); - return visibleConsent.isVetoed(); + val usable = objectAction.isUsable(owner, InteractionInitiatedBy.USER, Where.ANYWHERE); + return usable.getReasonAsString().orElse(null); } } diff --git a/incubator/viewers/graphql/model/src/main/java/org/apache/causeway/viewer/graphql/model/domain/GqlvActionDisabledHolder.java b/incubator/viewers/graphql/model/src/main/java/org/apache/causeway/viewer/graphql/model/domain/GqlvActionDisabledHolder.java new file mode 100644 index 0000000000..8264c7ad72 --- /dev/null +++ b/incubator/viewers/graphql/model/src/main/java/org/apache/causeway/viewer/graphql/model/domain/GqlvActionDisabledHolder.java @@ -0,0 +1,27 @@ +/* + * 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 org.apache.causeway.core.metamodel.spec.feature.ObjectAction; + +public interface GqlvActionDisabledHolder extends GqlvHolder { + + + ObjectAction getObjectAction(); +} 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 index 17bed097a6..8b4852ec24 100644 --- 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 @@ -1,16 +1,28 @@ +/* + * 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 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; @@ -65,9 +77,9 @@ public class GqlvActionHidden { Object source = dataFetchingEnvironment.getSource(); Object domainObjectInstance; - if (source instanceof GqlvAction.Fetcher) { - GqlvAction.Fetcher fetcher = (GqlvAction.Fetcher) source; - domainObjectInstance = fetcher.getTargetPojo(); + if (source instanceof BookmarkedPojo) { + BookmarkedPojo fetched = (BookmarkedPojo) source; + domainObjectInstance = fetched.getTargetPojo(); } else { domainObjectInstance = source; } 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 index dd809e76b9..a13414ea92 100644 --- 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 @@ -1,3 +1,21 @@ +/* + * 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 org.apache.causeway.core.metamodel.spec.feature.ObjectAction; diff --git a/incubator/viewers/graphql/model/src/main/java/org/apache/causeway/viewer/graphql/model/domain/GqlvActionHolder.java b/incubator/viewers/graphql/model/src/main/java/org/apache/causeway/viewer/graphql/model/domain/GqlvActionHolder.java index 00293a11be..c974fc4c5d 100644 --- a/incubator/viewers/graphql/model/src/main/java/org/apache/causeway/viewer/graphql/model/domain/GqlvActionHolder.java +++ b/incubator/viewers/graphql/model/src/main/java/org/apache/causeway/viewer/graphql/model/domain/GqlvActionHolder.java @@ -1,3 +1,21 @@ +/* + * 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; public interface GqlvActionHolder extends GqlvMemberHolder { diff --git a/incubator/viewers/graphql/model/src/main/java/org/apache/causeway/viewer/graphql/model/domain/GqlvActionInvoke.java b/incubator/viewers/graphql/model/src/main/java/org/apache/causeway/viewer/graphql/model/domain/GqlvActionInvoke.java index 9c38a70313..d7f0b0f3fe 100644 --- a/incubator/viewers/graphql/model/src/main/java/org/apache/causeway/viewer/graphql/model/domain/GqlvActionInvoke.java +++ b/incubator/viewers/graphql/model/src/main/java/org/apache/causeway/viewer/graphql/model/domain/GqlvActionInvoke.java @@ -1,3 +1,21 @@ +/* + * 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.Scalars; @@ -156,9 +174,9 @@ public class GqlvActionInvoke { Object source = dataFetchingEnvironment.getSource(); Object domainObjectInstance; - if (source instanceof GqlvAction.Fetcher) { - GqlvAction.Fetcher fetcher = (GqlvAction.Fetcher) source; - domainObjectInstance = fetcher.getTargetPojo(); + if (source instanceof BookmarkedPojo) { + BookmarkedPojo fetched = (BookmarkedPojo) source; + domainObjectInstance = fetched.getTargetPojo(); } else { domainObjectInstance = source; } diff --git a/incubator/viewers/graphql/model/src/main/java/org/apache/causeway/viewer/graphql/model/domain/GqlvActionInvokeHolder.java b/incubator/viewers/graphql/model/src/main/java/org/apache/causeway/viewer/graphql/model/domain/GqlvActionInvokeHolder.java index d32aafe916..d8d91cfb70 100644 --- a/incubator/viewers/graphql/model/src/main/java/org/apache/causeway/viewer/graphql/model/domain/GqlvActionInvokeHolder.java +++ b/incubator/viewers/graphql/model/src/main/java/org/apache/causeway/viewer/graphql/model/domain/GqlvActionInvokeHolder.java @@ -1,3 +1,21 @@ +/* + * 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 org.apache.causeway.core.metamodel.spec.feature.ObjectAction; diff --git a/incubator/viewers/graphql/model/src/main/java/org/apache/causeway/viewer/graphql/model/domain/GqlvActionParameter.java b/incubator/viewers/graphql/model/src/main/java/org/apache/causeway/viewer/graphql/model/domain/GqlvActionParameter.java index c9fc9ba227..1ce04b922d 100644 --- a/incubator/viewers/graphql/model/src/main/java/org/apache/causeway/viewer/graphql/model/domain/GqlvActionParameter.java +++ b/incubator/viewers/graphql/model/src/main/java/org/apache/causeway/viewer/graphql/model/domain/GqlvActionParameter.java @@ -1,3 +1,21 @@ +/* + * 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 org.apache.causeway.core.metamodel.spec.ObjectSpecification; diff --git a/incubator/viewers/graphql/model/src/main/java/org/apache/causeway/viewer/graphql/model/domain/GqlvAssociation.java b/incubator/viewers/graphql/model/src/main/java/org/apache/causeway/viewer/graphql/model/domain/GqlvAssociation.java index f3bf1fdd29..a869efcc02 100644 --- a/incubator/viewers/graphql/model/src/main/java/org/apache/causeway/viewer/graphql/model/domain/GqlvAssociation.java +++ b/incubator/viewers/graphql/model/src/main/java/org/apache/causeway/viewer/graphql/model/domain/GqlvAssociation.java @@ -1,3 +1,21 @@ +/* + * 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 org.apache.causeway.applib.services.metamodel.BeanSort; diff --git a/incubator/viewers/graphql/model/src/main/java/org/apache/causeway/viewer/graphql/model/domain/GqlvAssociationHolder.java b/incubator/viewers/graphql/model/src/main/java/org/apache/causeway/viewer/graphql/model/domain/GqlvAssociationHolder.java index 55b018ca64..5edfb3b083 100644 --- a/incubator/viewers/graphql/model/src/main/java/org/apache/causeway/viewer/graphql/model/domain/GqlvAssociationHolder.java +++ b/incubator/viewers/graphql/model/src/main/java/org/apache/causeway/viewer/graphql/model/domain/GqlvAssociationHolder.java @@ -1,3 +1,21 @@ +/* + * 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; public interface GqlvAssociationHolder extends GqlvMemberHolder { diff --git a/incubator/viewers/graphql/model/src/main/java/org/apache/causeway/viewer/graphql/model/domain/GqlvCollection.java b/incubator/viewers/graphql/model/src/main/java/org/apache/causeway/viewer/graphql/model/domain/GqlvCollection.java index d751cbf17c..1a04a8dfbb 100644 --- a/incubator/viewers/graphql/model/src/main/java/org/apache/causeway/viewer/graphql/model/domain/GqlvCollection.java +++ b/incubator/viewers/graphql/model/src/main/java/org/apache/causeway/viewer/graphql/model/domain/GqlvCollection.java @@ -1,3 +1,21 @@ +/* + * 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 org.springframework.lang.Nullable; diff --git a/incubator/viewers/graphql/model/src/main/java/org/apache/causeway/viewer/graphql/model/domain/GqlvCollectionHolder.java b/incubator/viewers/graphql/model/src/main/java/org/apache/causeway/viewer/graphql/model/domain/GqlvCollectionHolder.java index ccb0e14306..b35649e084 100644 --- a/incubator/viewers/graphql/model/src/main/java/org/apache/causeway/viewer/graphql/model/domain/GqlvCollectionHolder.java +++ b/incubator/viewers/graphql/model/src/main/java/org/apache/causeway/viewer/graphql/model/domain/GqlvCollectionHolder.java @@ -1,3 +1,21 @@ +/* + * 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; public interface GqlvCollectionHolder extends GqlvAssociationHolder { diff --git a/incubator/viewers/graphql/model/src/main/java/org/apache/causeway/viewer/graphql/model/domain/GqlvDomainObject.java b/incubator/viewers/graphql/model/src/main/java/org/apache/causeway/viewer/graphql/model/domain/GqlvDomainObject.java index 3852eb200b..b2885fd538 100644 --- a/incubator/viewers/graphql/model/src/main/java/org/apache/causeway/viewer/graphql/model/domain/GqlvDomainObject.java +++ b/incubator/viewers/graphql/model/src/main/java/org/apache/causeway/viewer/graphql/model/domain/GqlvDomainObject.java @@ -1,3 +1,21 @@ +/* + * 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 java.util.Map; diff --git a/incubator/viewers/graphql/model/src/main/java/org/apache/causeway/viewer/graphql/model/domain/GqlvDomainService.java b/incubator/viewers/graphql/model/src/main/java/org/apache/causeway/viewer/graphql/model/domain/GqlvDomainService.java index 57289a0bf7..913b55d476 100644 --- a/incubator/viewers/graphql/model/src/main/java/org/apache/causeway/viewer/graphql/model/domain/GqlvDomainService.java +++ b/incubator/viewers/graphql/model/src/main/java/org/apache/causeway/viewer/graphql/model/domain/GqlvDomainService.java @@ -1,3 +1,21 @@ +/* + * 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 java.util.ArrayList; diff --git a/incubator/viewers/graphql/model/src/main/java/org/apache/causeway/viewer/graphql/model/domain/GqlvHolder.java b/incubator/viewers/graphql/model/src/main/java/org/apache/causeway/viewer/graphql/model/domain/GqlvHolder.java index b181010d9f..c078fe6699 100644 --- a/incubator/viewers/graphql/model/src/main/java/org/apache/causeway/viewer/graphql/model/domain/GqlvHolder.java +++ b/incubator/viewers/graphql/model/src/main/java/org/apache/causeway/viewer/graphql/model/domain/GqlvHolder.java @@ -1,3 +1,21 @@ +/* + * 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.FieldCoordinates; diff --git a/incubator/viewers/graphql/model/src/main/java/org/apache/causeway/viewer/graphql/model/domain/GqlvMember.java b/incubator/viewers/graphql/model/src/main/java/org/apache/causeway/viewer/graphql/model/domain/GqlvMember.java index de9373744d..0a6188bfdd 100644 --- a/incubator/viewers/graphql/model/src/main/java/org/apache/causeway/viewer/graphql/model/domain/GqlvMember.java +++ b/incubator/viewers/graphql/model/src/main/java/org/apache/causeway/viewer/graphql/model/domain/GqlvMember.java @@ -1,3 +1,21 @@ +/* + * 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 org.apache.causeway.core.metamodel.spec.feature.ObjectMember; diff --git a/incubator/viewers/graphql/model/src/main/java/org/apache/causeway/viewer/graphql/model/domain/GqlvMemberHolder.java b/incubator/viewers/graphql/model/src/main/java/org/apache/causeway/viewer/graphql/model/domain/GqlvMemberHolder.java index 49a67c8337..a342c617f7 100644 --- a/incubator/viewers/graphql/model/src/main/java/org/apache/causeway/viewer/graphql/model/domain/GqlvMemberHolder.java +++ b/incubator/viewers/graphql/model/src/main/java/org/apache/causeway/viewer/graphql/model/domain/GqlvMemberHolder.java @@ -1,3 +1,21 @@ +/* + * 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 org.apache.causeway.core.metamodel.spec.ObjectSpecification; diff --git a/incubator/viewers/graphql/model/src/main/java/org/apache/causeway/viewer/graphql/model/domain/GqlvMeta.java b/incubator/viewers/graphql/model/src/main/java/org/apache/causeway/viewer/graphql/model/domain/GqlvMeta.java index b112514901..4b2de8e15a 100644 --- a/incubator/viewers/graphql/model/src/main/java/org/apache/causeway/viewer/graphql/model/domain/GqlvMeta.java +++ b/incubator/viewers/graphql/model/src/main/java/org/apache/causeway/viewer/graphql/model/domain/GqlvMeta.java @@ -1,3 +1,21 @@ +/* + * 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 java.util.Objects; diff --git a/incubator/viewers/graphql/model/src/main/java/org/apache/causeway/viewer/graphql/model/domain/GqlvMetaHolder.java b/incubator/viewers/graphql/model/src/main/java/org/apache/causeway/viewer/graphql/model/domain/GqlvMetaHolder.java index f18041f874..14244c9ae7 100644 --- a/incubator/viewers/graphql/model/src/main/java/org/apache/causeway/viewer/graphql/model/domain/GqlvMetaHolder.java +++ b/incubator/viewers/graphql/model/src/main/java/org/apache/causeway/viewer/graphql/model/domain/GqlvMetaHolder.java @@ -1,3 +1,21 @@ +/* + * 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 org.apache.causeway.core.metamodel.spec.ObjectSpecification; diff --git a/incubator/viewers/graphql/model/src/main/java/org/apache/causeway/viewer/graphql/model/domain/GqlvMutations.java b/incubator/viewers/graphql/model/src/main/java/org/apache/causeway/viewer/graphql/model/domain/GqlvMutations.java index 993cac2af1..02c783ffa4 100644 --- a/incubator/viewers/graphql/model/src/main/java/org/apache/causeway/viewer/graphql/model/domain/GqlvMutations.java +++ b/incubator/viewers/graphql/model/src/main/java/org/apache/causeway/viewer/graphql/model/domain/GqlvMutations.java @@ -1,13 +1,27 @@ +/* + * 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 java.util.ArrayList; -import java.util.List; -import java.util.Map; import java.util.Optional; import java.util.SortedMap; import java.util.TreeMap; -import org.apache.causeway.applib.services.bookmark.Bookmark; import org.apache.causeway.applib.services.bookmark.BookmarkService; import org.apache.causeway.core.metamodel.spec.ObjectSpecification; import org.apache.causeway.core.metamodel.spec.feature.ObjectAction; @@ -66,7 +80,6 @@ public class GqlvMutations implements GqlvActionHolder { } public void addAction(final ObjectAction objectAction) { -// actionSimples.add(new GqlvActionSimple(this, objectAction, codeRegistryBuilder)); String actionId = objectAction.getId(); if (!actions.containsKey(actionId)) { actions.put(actionId, new GqlvAction(this, objectAction, codeRegistryBuilder, bookmarkService)); @@ -75,7 +88,6 @@ public class GqlvMutations implements GqlvActionHolder { boolean hasActions() { -// return !actionSimples.isEmpty(); return !actions.isEmpty(); } @@ -115,7 +127,7 @@ public class GqlvMutations implements GqlvActionHolder { holder.coordinatesFor(fieldIfAny.get()), (DataFetcher<Object>) environment -> bookmarkService.bookmarkFor(environment.getSource()) - .map(bookmark -> new Fetcher(bookmark, bookmarkService)) + .map(bookmark -> new BookmarkedPojo(bookmark, bookmarkService)) .orElseThrow()); actions.forEach((id, gqlvAction) -> gqlvAction.addDataFetcher()); @@ -137,21 +149,4 @@ public class GqlvMutations implements GqlvActionHolder { } - static class Fetcher { - - private final Bookmark bookmark; - private final BookmarkService bookmarkService; - - public Fetcher( - final Bookmark bookmark, - final BookmarkService bookmarkService) { - - this.bookmark = bookmark; - this.bookmarkService = bookmarkService; - } - - public Object getTargetPojo() { - return bookmarkService.lookup(bookmark).orElseThrow(); - } - } } diff --git a/incubator/viewers/graphql/model/src/main/java/org/apache/causeway/viewer/graphql/model/domain/GqlvMutationsHolder.java b/incubator/viewers/graphql/model/src/main/java/org/apache/causeway/viewer/graphql/model/domain/GqlvMutationsHolder.java index 5d3b578961..3ec91ec829 100644 --- a/incubator/viewers/graphql/model/src/main/java/org/apache/causeway/viewer/graphql/model/domain/GqlvMutationsHolder.java +++ b/incubator/viewers/graphql/model/src/main/java/org/apache/causeway/viewer/graphql/model/domain/GqlvMutationsHolder.java @@ -1,3 +1,21 @@ +/* + * 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 org.apache.causeway.core.metamodel.spec.ObjectSpecification; diff --git a/incubator/viewers/graphql/model/src/main/java/org/apache/causeway/viewer/graphql/model/domain/GqlvProperty.java b/incubator/viewers/graphql/model/src/main/java/org/apache/causeway/viewer/graphql/model/domain/GqlvProperty.java index 79edd55f49..6f84b1a289 100644 --- a/incubator/viewers/graphql/model/src/main/java/org/apache/causeway/viewer/graphql/model/domain/GqlvProperty.java +++ b/incubator/viewers/graphql/model/src/main/java/org/apache/causeway/viewer/graphql/model/domain/GqlvProperty.java @@ -1,3 +1,21 @@ +/* + * 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 org.springframework.lang.Nullable; diff --git a/incubator/viewers/graphql/model/src/main/java/org/apache/causeway/viewer/graphql/model/domain/GqlvPropertyHolder.java b/incubator/viewers/graphql/model/src/main/java/org/apache/causeway/viewer/graphql/model/domain/GqlvPropertyHolder.java index 55e319d8b7..956c663d39 100644 --- a/incubator/viewers/graphql/model/src/main/java/org/apache/causeway/viewer/graphql/model/domain/GqlvPropertyHolder.java +++ b/incubator/viewers/graphql/model/src/main/java/org/apache/causeway/viewer/graphql/model/domain/GqlvPropertyHolder.java @@ -1,3 +1,21 @@ +/* + * 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; public interface GqlvPropertyHolder extends GqlvAssociationHolder { diff --git a/incubator/viewers/graphql/model/src/main/java/org/apache/causeway/viewer/graphql/model/registry/GraphQLTypeRegistry.java b/incubator/viewers/graphql/model/src/main/java/org/apache/causeway/viewer/graphql/model/registry/GraphQLTypeRegistry.java index 762073c497..9442e40b70 100644 --- a/incubator/viewers/graphql/model/src/main/java/org/apache/causeway/viewer/graphql/model/registry/GraphQLTypeRegistry.java +++ b/incubator/viewers/graphql/model/src/main/java/org/apache/causeway/viewer/graphql/model/registry/GraphQLTypeRegistry.java @@ -1,3 +1,21 @@ +/* + * 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.registry; import graphql.schema.GraphQLInputObjectType; 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 a909ff9e26..09dbd22060 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 @@ -65,4 +65,12 @@ public class DepartmentMenu { public void adminAction() { } + + @Action(semantics = SemanticsOf.NON_IDEMPOTENT) + public void otherAdminAction() { + } + public String disableOtherAdminAction() { + return "yup, disabled!"; + } + } 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 3b85bd7cb3..b26a4834f9 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 @@ -3,6 +3,7 @@ _gql_mutations { createDepartment { hidden + disabled 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 35b4dc5693..95c54dba70 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 @@ -4,6 +4,7 @@ "_gql_mutations" : { "createDepartment" : { "hidden" : false, + "disabled" : null, "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 e1670609e5..fbb2615bca 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 @@ -120,6 +120,17 @@ public class Domain_IntegTest extends CausewayViewerGraphqlTestModuleIntegTestAb Approvals.verify(response, jsonOptions()); } + @Test + @UseReporter(DiffReporter.class) + void other_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/Domain_IntegTest.other_admin_action._.gql b/incubator/viewers/graphql/test/src/test/java/org/apache/causeway/viewer/graphql/viewer/test/e2e/Domain_IntegTest.other_admin_action._.gql new file mode 100644 index 0000000000..81139b4a7f --- /dev/null +++ b/incubator/viewers/graphql/test/src/test/java/org/apache/causeway/viewer/graphql/viewer/test/e2e/Domain_IntegTest.other_admin_action._.gql @@ -0,0 +1,9 @@ +{ + university_dept_DepartmentMenu { + _gql_mutations { + otherAdminAction { + disabled + } + } + } +} diff --git a/incubator/viewers/graphql/test/src/test/java/org/apache/causeway/viewer/graphql/viewer/test/e2e/Domain_IntegTest.other_admin_action.approved.json b/incubator/viewers/graphql/test/src/test/java/org/apache/causeway/viewer/graphql/viewer/test/e2e/Domain_IntegTest.other_admin_action.approved.json new file mode 100644 index 0000000000..7c44bc3a62 --- /dev/null +++ b/incubator/viewers/graphql/test/src/test/java/org/apache/causeway/viewer/graphql/viewer/test/e2e/Domain_IntegTest.other_admin_action.approved.json @@ -0,0 +1,11 @@ +{ + "data" : { + "university_dept_DepartmentMenu" : { + "_gql_mutations" : { + "otherAdminAction" : { + "disabled" : "yup, disabled!" + } + } + } + } +} \ No newline at end of file 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 b099eba70f..6dd845c48d 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 @@ -1476,6 +1476,17 @@ }, "isDeprecated" : false, "deprecationReason" : null + }, { + "name" : "disabled", + "description" : null, + "args" : [ ], + "type" : { + "kind" : "SCALAR", + "name" : "String", + "ofType" : null + }, + "isDeprecated" : false, + "deprecationReason" : null }, { "name" : "invoke", "description" : null, @@ -1956,6 +1967,17 @@ }, "isDeprecated" : false, "deprecationReason" : null + }, { + "name" : "disabled", + "description" : null, + "args" : [ ], + "type" : { + "kind" : "SCALAR", + "name" : "String", + "ofType" : null + }, + "isDeprecated" : false, + "deprecationReason" : null }, { "name" : "invoke", "description" : null, @@ -2144,6 +2166,17 @@ }, "isDeprecated" : false, "deprecationReason" : null + }, { + "name" : "disabled", + "description" : null, + "args" : [ ], + "type" : { + "kind" : "SCALAR", + "name" : "String", + "ofType" : null + }, + "isDeprecated" : false, + "deprecationReason" : null }, { "name" : "invoke", "description" : null, @@ -2332,6 +2365,17 @@ }, "isDeprecated" : false, "deprecationReason" : null + }, { + "name" : "disabled", + "description" : null, + "args" : [ ], + "type" : { + "kind" : "SCALAR", + "name" : "String", + "ofType" : null + }, + "isDeprecated" : false, + "deprecationReason" : null }, { "name" : "invoke", "description" : null, @@ -2605,6 +2649,17 @@ }, "isDeprecated" : false, "deprecationReason" : null + }, { + "name" : "disabled", + "description" : null, + "args" : [ ], + "type" : { + "kind" : "SCALAR", + "name" : "String", + "ofType" : null + }, + "isDeprecated" : false, + "deprecationReason" : null }, { "name" : "invoke", "description" : null, @@ -4221,6 +4276,17 @@ }, "isDeprecated" : false, "deprecationReason" : null + }, { + "name" : "disabled", + "description" : null, + "args" : [ ], + "type" : { + "kind" : "SCALAR", + "name" : "String", + "ofType" : null + }, + "isDeprecated" : false, + "deprecationReason" : null }, { "name" : "invoke", "description" : null, @@ -5083,6 +5149,17 @@ }, "isDeprecated" : false, "deprecationReason" : null + }, { + "name" : "disabled", + "description" : null, + "args" : [ ], + "type" : { + "kind" : "SCALAR", + "name" : "String", + "ofType" : null + }, + "isDeprecated" : false, + "deprecationReason" : null }, { "name" : "invoke", "description" : null, @@ -5276,6 +5353,17 @@ }, "isDeprecated" : false, "deprecationReason" : null + }, { + "name" : "disabled", + "description" : null, + "args" : [ ], + "type" : { + "kind" : "SCALAR", + "name" : "String", + "ofType" : null + }, + "isDeprecated" : false, + "deprecationReason" : null }, { "name" : "invoke", "description" : null, @@ -5307,6 +5395,17 @@ }, "isDeprecated" : false, "deprecationReason" : null + }, { + "name" : "disabled", + "description" : null, + "args" : [ ], + "type" : { + "kind" : "SCALAR", + "name" : "String", + "ofType" : null + }, + "isDeprecated" : false, + "deprecationReason" : null }, { "name" : "invoke", "description" : null, @@ -5364,6 +5463,17 @@ }, "isDeprecated" : false, "deprecationReason" : null + }, { + "name" : "disabled", + "description" : null, + "args" : [ ], + "type" : { + "kind" : "SCALAR", + "name" : "String", + "ofType" : null + }, + "isDeprecated" : false, + "deprecationReason" : null }, { "name" : "invoke", "description" : null, @@ -5408,6 +5518,17 @@ }, "isDeprecated" : false, "deprecationReason" : null + }, { + "name" : "disabled", + "description" : null, + "args" : [ ], + "type" : { + "kind" : "SCALAR", + "name" : "String", + "ofType" : null + }, + "isDeprecated" : false, + "deprecationReason" : null }, { "name" : "invoke", "description" : null, @@ -5452,6 +5573,17 @@ }, "isDeprecated" : false, "deprecationReason" : null + }, { + "name" : "disabled", + "description" : null, + "args" : [ ], + "type" : { + "kind" : "SCALAR", + "name" : "String", + "ofType" : null + }, + "isDeprecated" : false, + "deprecationReason" : null }, { "name" : "invoke", "description" : null, @@ -5544,6 +5676,17 @@ }, "isDeprecated" : false, "deprecationReason" : null + }, { + "name" : "disabled", + "description" : null, + "args" : [ ], + "type" : { + "kind" : "SCALAR", + "name" : "String", + "ofType" : null + }, + "isDeprecated" : false, + "deprecationReason" : null }, { "name" : "invoke", "description" : null, @@ -5713,6 +5856,17 @@ }, "isDeprecated" : false, "deprecationReason" : null + }, { + "name" : "disabled", + "description" : null, + "args" : [ ], + "type" : { + "kind" : "SCALAR", + "name" : "String", + "ofType" : null + }, + "isDeprecated" : false, + "deprecationReason" : null }, { "name" : "invoke", "description" : null, @@ -5757,6 +5911,17 @@ }, "isDeprecated" : false, "deprecationReason" : null + }, { + "name" : "disabled", + "description" : null, + "args" : [ ], + "type" : { + "kind" : "SCALAR", + "name" : "String", + "ofType" : null + }, + "isDeprecated" : false, + "deprecationReason" : null }, { "name" : "invoke", "description" : null, @@ -5801,6 +5966,17 @@ }, "isDeprecated" : false, "deprecationReason" : null + }, { + "name" : "disabled", + "description" : null, + "args" : [ ], + "type" : { + "kind" : "SCALAR", + "name" : "String", + "ofType" : null + }, + "isDeprecated" : false, + "deprecationReason" : null }, { "name" : "invoke", "description" : null, @@ -5845,6 +6021,17 @@ }, "isDeprecated" : false, "deprecationReason" : null + }, { + "name" : "disabled", + "description" : null, + "args" : [ ], + "type" : { + "kind" : "SCALAR", + "name" : "String", + "ofType" : null + }, + "isDeprecated" : false, + "deprecationReason" : null }, { "name" : "invoke", "description" : null, @@ -5920,6 +6107,17 @@ }, "isDeprecated" : false, "deprecationReason" : null + }, { + "name" : "disabled", + "description" : null, + "args" : [ ], + "type" : { + "kind" : "SCALAR", + "name" : "String", + "ofType" : null + }, + "isDeprecated" : false, + "deprecationReason" : null }, { "name" : "invoke", "description" : null, @@ -6056,6 +6254,17 @@ }, "isDeprecated" : false, "deprecationReason" : null + }, { + "name" : "disabled", + "description" : null, + "args" : [ ], + "type" : { + "kind" : "SCALAR", + "name" : "String", + "ofType" : null + }, + "isDeprecated" : false, + "deprecationReason" : null }, { "name" : "invoke", "description" : null, @@ -6131,6 +6340,17 @@ }, "isDeprecated" : false, "deprecationReason" : null + }, { + "name" : "disabled", + "description" : null, + "args" : [ ], + "type" : { + "kind" : "SCALAR", + "name" : "String", + "ofType" : null + }, + "isDeprecated" : false, + "deprecationReason" : null }, { "name" : "invoke", "description" : null, @@ -6175,6 +6395,17 @@ }, "isDeprecated" : false, "deprecationReason" : null + }, { + "name" : "disabled", + "description" : null, + "args" : [ ], + "type" : { + "kind" : "SCALAR", + "name" : "String", + "ofType" : null + }, + "isDeprecated" : false, + "deprecationReason" : null }, { "name" : "invoke", "description" : null, @@ -6322,6 +6553,17 @@ }, "isDeprecated" : false, "deprecationReason" : null + }, { + "name" : "disabled", + "description" : null, + "args" : [ ], + "type" : { + "kind" : "SCALAR", + "name" : "String", + "ofType" : null + }, + "isDeprecated" : false, + "deprecationReason" : null }, { "name" : "invoke", "description" : null, @@ -6397,6 +6639,17 @@ }, "isDeprecated" : false, "deprecationReason" : null + }, { + "name" : "disabled", + "description" : null, + "args" : [ ], + "type" : { + "kind" : "SCALAR", + "name" : "String", + "ofType" : null + }, + "isDeprecated" : false, + "deprecationReason" : null }, { "name" : "invoke", "description" : null, @@ -6553,6 +6806,17 @@ }, "isDeprecated" : false, "deprecationReason" : null + }, { + "name" : "disabled", + "description" : null, + "args" : [ ], + "type" : { + "kind" : "SCALAR", + "name" : "String", + "ofType" : null + }, + "isDeprecated" : false, + "deprecationReason" : null }, { "name" : "invoke", "description" : null, @@ -6584,6 +6848,17 @@ }, "isDeprecated" : false, "deprecationReason" : null + }, { + "name" : "disabled", + "description" : null, + "args" : [ ], + "type" : { + "kind" : "SCALAR", + "name" : "String", + "ofType" : null + }, + "isDeprecated" : false, + "deprecationReason" : null }, { "name" : "invoke", "description" : null, @@ -6616,17 +6891,28 @@ "isDeprecated" : false, "deprecationReason" : null }, { - "name" : "invoke", + "name" : "disabled", "description" : null, "args" : [ ], "type" : { - "kind" : "OBJECT", - "name" : "java_util_concurrent_Callable", + "kind" : "SCALAR", + "name" : "String", "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, @@ -6646,6 +6932,17 @@ }, "isDeprecated" : false, "deprecationReason" : null + }, { + "name" : "disabled", + "description" : null, + "args" : [ ], + "type" : { + "kind" : "SCALAR", + "name" : "String", + "ofType" : null + }, + "isDeprecated" : false, + "deprecationReason" : null }, { "name" : "invoke", "description" : null, @@ -6738,6 +7035,17 @@ }, "isDeprecated" : false, "deprecationReason" : null + }, { + "name" : "disabled", + "description" : null, + "args" : [ ], + "type" : { + "kind" : "SCALAR", + "name" : "String", + "ofType" : null + }, + "isDeprecated" : false, + "deprecationReason" : null }, { "name" : "invoke", "description" : null, @@ -6795,6 +7103,17 @@ }, "isDeprecated" : false, "deprecationReason" : null + }, { + "name" : "disabled", + "description" : null, + "args" : [ ], + "type" : { + "kind" : "SCALAR", + "name" : "String", + "ofType" : null + }, + "isDeprecated" : false, + "deprecationReason" : null }, { "name" : "invoke", "description" : null, @@ -6839,6 +7158,17 @@ }, "isDeprecated" : false, "deprecationReason" : null + }, { + "name" : "disabled", + "description" : null, + "args" : [ ], + "type" : { + "kind" : "SCALAR", + "name" : "String", + "ofType" : null + }, + "isDeprecated" : false, + "deprecationReason" : null }, { "name" : "invoke", "description" : null, @@ -6883,6 +7213,17 @@ }, "isDeprecated" : false, "deprecationReason" : null + }, { + "name" : "disabled", + "description" : null, + "args" : [ ], + "type" : { + "kind" : "SCALAR", + "name" : "String", + "ofType" : null + }, + "isDeprecated" : false, + "deprecationReason" : null }, { "name" : "invoke", "description" : null, @@ -7217,6 +7558,17 @@ }, "isDeprecated" : false, "deprecationReason" : null + }, { + "name" : "disabled", + "description" : null, + "args" : [ ], + "type" : { + "kind" : "SCALAR", + "name" : "String", + "ofType" : null + }, + "isDeprecated" : false, + "deprecationReason" : null }, { "name" : "invoke", "description" : null, @@ -7248,6 +7600,17 @@ }, "isDeprecated" : false, "deprecationReason" : null + }, { + "name" : "disabled", + "description" : null, + "args" : [ ], + "type" : { + "kind" : "SCALAR", + "name" : "String", + "ofType" : null + }, + "isDeprecated" : false, + "deprecationReason" : null }, { "name" : "invoke", "description" : null, @@ -7292,6 +7655,17 @@ }, "isDeprecated" : false, "deprecationReason" : null + }, { + "name" : "disabled", + "description" : null, + "args" : [ ], + "type" : { + "kind" : "SCALAR", + "name" : "String", + "ofType" : null + }, + "isDeprecated" : false, + "deprecationReason" : null }, { "name" : "invoke", "description" : null, @@ -7323,6 +7697,17 @@ }, "isDeprecated" : false, "deprecationReason" : null + }, { + "name" : "disabled", + "description" : null, + "args" : [ ], + "type" : { + "kind" : "SCALAR", + "name" : "String", + "ofType" : null + }, + "isDeprecated" : false, + "deprecationReason" : null }, { "name" : "invoke", "description" : null, @@ -7367,6 +7752,17 @@ }, "isDeprecated" : false, "deprecationReason" : null + }, { + "name" : "disabled", + "description" : null, + "args" : [ ], + "type" : { + "kind" : "SCALAR", + "name" : "String", + "ofType" : null + }, + "isDeprecated" : false, + "deprecationReason" : null }, { "name" : "invoke", "description" : null, @@ -7411,6 +7807,17 @@ }, "isDeprecated" : false, "deprecationReason" : null + }, { + "name" : "disabled", + "description" : null, + "args" : [ ], + "type" : { + "kind" : "SCALAR", + "name" : "String", + "ofType" : null + }, + "isDeprecated" : false, + "deprecationReason" : null }, { "name" : "invoke", "description" : null, @@ -7442,6 +7849,17 @@ }, "isDeprecated" : false, "deprecationReason" : null + }, { + "name" : "disabled", + "description" : null, + "args" : [ ], + "type" : { + "kind" : "SCALAR", + "name" : "String", + "ofType" : null + }, + "isDeprecated" : false, + "deprecationReason" : null }, { "name" : "invoke", "description" : null, @@ -7486,6 +7904,17 @@ }, "isDeprecated" : false, "deprecationReason" : null + }, { + "name" : "disabled", + "description" : null, + "args" : [ ], + "type" : { + "kind" : "SCALAR", + "name" : "String", + "ofType" : null + }, + "isDeprecated" : false, + "deprecationReason" : null }, { "name" : "invoke", "description" : null, @@ -7530,6 +7959,17 @@ }, "isDeprecated" : false, "deprecationReason" : null + }, { + "name" : "disabled", + "description" : null, + "args" : [ ], + "type" : { + "kind" : "SCALAR", + "name" : "String", + "ofType" : null + }, + "isDeprecated" : false, + "deprecationReason" : null }, { "name" : "invoke", "description" : null, @@ -7574,6 +8014,17 @@ }, "isDeprecated" : false, "deprecationReason" : null + }, { + "name" : "disabled", + "description" : null, + "args" : [ ], + "type" : { + "kind" : "SCALAR", + "name" : "String", + "ofType" : null + }, + "isDeprecated" : false, + "deprecationReason" : null }, { "name" : "invoke", "description" : null, @@ -7618,6 +8069,17 @@ }, "isDeprecated" : false, "deprecationReason" : null + }, { + "name" : "disabled", + "description" : null, + "args" : [ ], + "type" : { + "kind" : "SCALAR", + "name" : "String", + "ofType" : null + }, + "isDeprecated" : false, + "deprecationReason" : null }, { "name" : "invoke", "description" : null, @@ -7662,6 +8124,17 @@ }, "isDeprecated" : false, "deprecationReason" : null + }, { + "name" : "disabled", + "description" : null, + "args" : [ ], + "type" : { + "kind" : "SCALAR", + "name" : "String", + "ofType" : null + }, + "isDeprecated" : false, + "deprecationReason" : null }, { "name" : "invoke", "description" : null, @@ -7719,6 +8192,17 @@ }, "isDeprecated" : false, "deprecationReason" : null + }, { + "name" : "disabled", + "description" : null, + "args" : [ ], + "type" : { + "kind" : "SCALAR", + "name" : "String", + "ofType" : null + }, + "isDeprecated" : false, + "deprecationReason" : null }, { "name" : "invoke", "description" : null, @@ -7763,6 +8247,17 @@ }, "isDeprecated" : false, "deprecationReason" : null + }, { + "name" : "disabled", + "description" : null, + "args" : [ ], + "type" : { + "kind" : "SCALAR", + "name" : "String", + "ofType" : null + }, + "isDeprecated" : false, + "deprecationReason" : null }, { "name" : "invoke", "description" : null, @@ -7807,6 +8302,17 @@ }, "isDeprecated" : false, "deprecationReason" : null + }, { + "name" : "disabled", + "description" : null, + "args" : [ ], + "type" : { + "kind" : "SCALAR", + "name" : "String", + "ofType" : null + }, + "isDeprecated" : false, + "deprecationReason" : null }, { "name" : "invoke", "description" : null, @@ -7851,6 +8357,17 @@ }, "isDeprecated" : false, "deprecationReason" : null + }, { + "name" : "disabled", + "description" : null, + "args" : [ ], + "type" : { + "kind" : "SCALAR", + "name" : "String", + "ofType" : null + }, + "isDeprecated" : false, + "deprecationReason" : null }, { "name" : "invoke", "description" : null, @@ -8118,6 +8635,17 @@ }, "isDeprecated" : false, "deprecationReason" : null + }, { + "name" : "disabled", + "description" : null, + "args" : [ ], + "type" : { + "kind" : "SCALAR", + "name" : "String", + "ofType" : null + }, + "isDeprecated" : false, + "deprecationReason" : null }, { "name" : "invoke", "description" : null, @@ -8337,6 +8865,17 @@ }, "isDeprecated" : false, "deprecationReason" : null + }, { + "name" : "disabled", + "description" : null, + "args" : [ ], + "type" : { + "kind" : "SCALAR", + "name" : "String", + "ofType" : null + }, + "isDeprecated" : false, + "deprecationReason" : null }, { "name" : "invoke", "description" : null, @@ -8368,6 +8907,17 @@ }, "isDeprecated" : false, "deprecationReason" : null + }, { + "name" : "disabled", + "description" : null, + "args" : [ ], + "type" : { + "kind" : "SCALAR", + "name" : "String", + "ofType" : null + }, + "isDeprecated" : false, + "deprecationReason" : null }, { "name" : "invoke", "description" : null, @@ -8421,6 +8971,17 @@ }, "isDeprecated" : false, "deprecationReason" : null + }, { + "name" : "disabled", + "description" : null, + "args" : [ ], + "type" : { + "kind" : "SCALAR", + "name" : "String", + "ofType" : null + }, + "isDeprecated" : false, + "deprecationReason" : null }, { "name" : "invoke", "description" : null, @@ -8467,6 +9028,59 @@ }, "isDeprecated" : false, "deprecationReason" : null + }, { + "name" : "otherAdminAction", + "description" : null, + "args" : [ ], + "type" : { + "kind" : "OBJECT", + "name" : "university_dept_DepartmentMenu__otherAdminAction", + "ofType" : null + }, + "isDeprecated" : false, + "deprecationReason" : null + } ], + "inputFields" : null, + "interfaces" : [ ], + "enumValues" : null, + "possibleTypes" : null + }, { + "kind" : "OBJECT", + "name" : "university_dept_DepartmentMenu__otherAdminAction", + "description" : null, + "fields" : [ { + "name" : "hidden", + "description" : null, + "args" : [ ], + "type" : { + "kind" : "SCALAR", + "name" : "Boolean", + "ofType" : null + }, + "isDeprecated" : false, + "deprecationReason" : null + }, { + "name" : "disabled", + "description" : null, + "args" : [ ], + "type" : { + "kind" : "SCALAR", + "name" : "String", + "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" : [ ], @@ -8643,6 +9257,17 @@ }, "isDeprecated" : false, "deprecationReason" : null + }, { + "name" : "disabled", + "description" : null, + "args" : [ ], + "type" : { + "kind" : "SCALAR", + "name" : "String", + "ofType" : null + }, + "isDeprecated" : false, + "deprecationReason" : null }, { "name" : "invoke", "description" : null, @@ -8678,6 +9303,17 @@ }, "isDeprecated" : false, "deprecationReason" : null + }, { + "name" : "disabled", + "description" : null, + "args" : [ ], + "type" : { + "kind" : "SCALAR", + "name" : "String", + "ofType" : null + }, + "isDeprecated" : false, + "deprecationReason" : null }, { "name" : "invoke", "description" : null, @@ -8722,6 +9358,17 @@ }, "isDeprecated" : false, "deprecationReason" : null + }, { + "name" : "disabled", + "description" : null, + "args" : [ ], + "type" : { + "kind" : "SCALAR", + "name" : "String", + "ofType" : null + }, + "isDeprecated" : false, + "deprecationReason" : null }, { "name" : "invoke", "description" : null, @@ -8766,6 +9413,17 @@ }, "isDeprecated" : false, "deprecationReason" : null + }, { + "name" : "disabled", + "description" : null, + "args" : [ ], + "type" : { + "kind" : "SCALAR", + "name" : "String", + "ofType" : null + }, + "isDeprecated" : false, + "deprecationReason" : null }, { "name" : "invoke", "description" : null, 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 cbc1a2c9b9..6b78684462 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 @@ -401,6 +401,8 @@ "name" : "university_dept_DepartmentMenu__findAllDepartments" }, { "name" : "university_dept_DepartmentMenu__gql_mutations" + }, { + "name" : "university_dept_DepartmentMenu__otherAdminAction" }, { "name" : "university_dept_Department__gql_input" }, { diff --git a/incubator/viewers/graphql/test/src/test/resources/schema.gql b/incubator/viewers/graphql/test/src/test/resources/schema.gql index 4525375ec6..f9b0cfed43 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 { + disabled: String hidden: Boolean invoke: java_util_stream_Stream } @@ -134,6 +135,7 @@ type causeway_applib_UserMenu { } type causeway_applib_UserMenu__me { + disabled: String hidden: Boolean invoke: causeway_applib_UserMemento } @@ -156,6 +158,7 @@ type causeway_applib_node_ActionNode__gql_mutations { } type causeway_applib_node_ActionNode__streamChildNodes { + disabled: String hidden: Boolean invoke: java_util_stream_Stream } @@ -178,6 +181,7 @@ type causeway_applib_node_CollectionNode__gql_mutations { } type causeway_applib_node_CollectionNode__streamChildNodes { + disabled: String hidden: Boolean invoke: java_util_stream_Stream } @@ -209,6 +213,7 @@ type causeway_conf_ConfigurationMenu { } type causeway_conf_ConfigurationMenu__configuration { + disabled: String hidden: Boolean invoke: causeway_conf_ConfigurationViewmodel } @@ -363,6 +368,7 @@ type causeway_security_LogoutMenu { } type causeway_security_LogoutMenu__logout { + disabled: String hidden: Boolean invoke: String } @@ -459,6 +465,7 @@ type org_apache_causeway_commons_functional_Either { } type org_apache_causeway_commons_functional_Either__accept { + disabled: String hidden: Boolean invoke(leftConsumer: java_util_function_Consumer__gql_input!, rightConsumer: java_util_function_Consumer__gql_input!): String } @@ -478,26 +485,31 @@ type org_apache_causeway_commons_functional_Either__gql_mutations { } type org_apache_causeway_commons_functional_Either__left { + disabled: String hidden: Boolean invoke: String } type org_apache_causeway_commons_functional_Either__map { + disabled: String 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 { + disabled: String hidden: Boolean invoke(leftMapper: java_util_function_Function__gql_input!): org_apache_causeway_commons_functional_Either } type org_apache_causeway_commons_functional_Either__mapRight { + disabled: String hidden: Boolean invoke(rightMapper: java_util_function_Function__gql_input!): org_apache_causeway_commons_functional_Either } type org_apache_causeway_commons_functional_Either__right { + disabled: String hidden: Boolean invoke: String } @@ -510,6 +522,7 @@ type org_apache_causeway_commons_functional_Railway { } type org_apache_causeway_commons_functional_Railway__chain { + disabled: String hidden: Boolean invoke(chainingFunction: org_apache_causeway_commons_functional_ThrowingFunction__gql_input!): org_apache_causeway_commons_functional_Railway } @@ -528,21 +541,25 @@ type org_apache_causeway_commons_functional_Railway__gql_mutations { } type org_apache_causeway_commons_functional_Railway__ifFailure { + disabled: String 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 { + disabled: String 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 { + disabled: String 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 { + disabled: String hidden: Boolean invoke(successMapper: org_apache_causeway_commons_functional_ThrowingFunction__gql_input!): org_apache_causeway_commons_functional_Railway } @@ -553,6 +570,7 @@ type org_apache_causeway_commons_functional_ThrowingConsumer { } type org_apache_causeway_commons_functional_ThrowingConsumer__andThen { + disabled: String hidden: Boolean invoke(arg0: java_util_function_Consumer__gql_input!): java_util_function_Consumer } @@ -568,6 +586,7 @@ type org_apache_causeway_commons_functional_ThrowingConsumer__gql_mutations { } type org_apache_causeway_commons_functional_ThrowingConsumer__throwing { + disabled: String hidden: Boolean invoke(exceptionWrapper: java_util_function_BiFunction__gql_input!): org_apache_causeway_commons_functional_ThrowingConsumer } @@ -578,11 +597,13 @@ type org_apache_causeway_commons_functional_ThrowingFunction { } type org_apache_causeway_commons_functional_ThrowingFunction__andThen { + disabled: String hidden: Boolean invoke(arg0: java_util_function_Function__gql_input!): java_util_function_Function } type org_apache_causeway_commons_functional_ThrowingFunction__compose { + disabled: String hidden: Boolean invoke(arg0: java_util_function_Function__gql_input!): java_util_function_Function } @@ -599,6 +620,7 @@ type org_apache_causeway_commons_functional_ThrowingFunction__gql_mutations { } type org_apache_causeway_commons_functional_ThrowingFunction__throwing { + disabled: String hidden: Boolean invoke(exceptionWrapper: java_util_function_BiFunction__gql_input!): org_apache_causeway_commons_functional_ThrowingFunction } @@ -609,6 +631,7 @@ type org_apache_causeway_commons_functional_ThrowingRunnable { } type org_apache_causeway_commons_functional_ThrowingRunnable__callUncatched { + disabled: String hidden: Boolean invoke: String } @@ -627,21 +650,25 @@ type org_apache_causeway_commons_functional_ThrowingRunnable__gql_mutations { } type org_apache_causeway_commons_functional_ThrowingRunnable__run { + disabled: String hidden: Boolean invoke: String } type org_apache_causeway_commons_functional_ThrowingRunnable__runUncatched { + disabled: String hidden: Boolean invoke: String } type org_apache_causeway_commons_functional_ThrowingRunnable__toCallable { + disabled: String hidden: Boolean invoke: java_util_concurrent_Callable } type org_apache_causeway_commons_functional_ThrowingRunnable__toRunnable { + disabled: String hidden: Boolean invoke: java_lang_Runnable } @@ -654,21 +681,25 @@ type org_apache_causeway_commons_functional_Try { } type org_apache_causeway_commons_functional_Try__accept { + disabled: String 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 { + disabled: String 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 { + disabled: String 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 { + disabled: String hidden: Boolean invoke(successMapper: org_apache_causeway_commons_functional_ThrowingFunction__gql_input!): org_apache_causeway_commons_functional_Try } @@ -702,81 +733,97 @@ type org_apache_causeway_commons_functional_Try__gql_mutations { } type org_apache_causeway_commons_functional_Try__ifAbsentFail { + disabled: String hidden: Boolean invoke: org_apache_causeway_commons_functional_Try } type org_apache_causeway_commons_functional_Try__ifFailure { + disabled: String 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 { + disabled: String hidden: Boolean invoke: org_apache_causeway_commons_functional_Try } type org_apache_causeway_commons_functional_Try__ifSuccess { + disabled: String 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 { + disabled: String 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 { + disabled: String hidden: Boolean invoke: org_apache_causeway_commons_functional_Try } type org_apache_causeway_commons_functional_Try__mapFailure { + disabled: String 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 { + disabled: String 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 { + disabled: String 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 { + disabled: String 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 { + disabled: String 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 { + disabled: String 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 { + disabled: String hidden: Boolean invoke(fallback: java_util_concurrent_Callable__gql_input!): org_apache_causeway_commons_functional_Try } type org_apache_causeway_commons_functional_Try__then { + disabled: String hidden: Boolean invoke(next: java_util_concurrent_Callable__gql_input!): org_apache_causeway_commons_functional_Try } type org_apache_causeway_commons_functional_Try__thenCall { + disabled: String hidden: Boolean invoke(callable: java_util_concurrent_Callable__gql_input!): org_apache_causeway_commons_functional_Try } type org_apache_causeway_commons_functional_Try__thenRun { + disabled: String hidden: Boolean invoke(runnable: org_apache_causeway_commons_functional_ThrowingRunnable__gql_input!): org_apache_causeway_commons_functional_Try } @@ -807,6 +854,7 @@ type org_apache_causeway_core_metamodel_inspect_model_MemberNode__gql_mutations } type org_apache_causeway_core_metamodel_inspect_model_MemberNode__streamChildNodes { + disabled: String hidden: Boolean invoke: java_util_stream_Stream } @@ -834,16 +882,19 @@ type university_dept_DepartmentMenu { } type university_dept_DepartmentMenu__adminAction { + disabled: String hidden: Boolean invoke: String } type university_dept_DepartmentMenu__createDepartment { + disabled: String hidden: Boolean invoke(deptHead: university_dept_DeptHead__gql_input, name: String!): university_dept_Department } type university_dept_DepartmentMenu__findAllDepartments { + disabled: String hidden: Boolean invoke: [university_dept_Department] } @@ -851,6 +902,13 @@ type university_dept_DepartmentMenu__findAllDepartments { type university_dept_DepartmentMenu__gql_mutations { adminAction: university_dept_DepartmentMenu__adminAction createDepartment: university_dept_DepartmentMenu__createDepartment + otherAdminAction: university_dept_DepartmentMenu__otherAdminAction +} + +type university_dept_DepartmentMenu__otherAdminAction { + disabled: String + hidden: Boolean + invoke: String } type university_dept_Department__gql_meta { @@ -872,21 +930,25 @@ type university_dept_DeptHeadMenu { } type university_dept_DeptHeadMenu__findAllDeptHeads { + disabled: String hidden: Boolean invoke: [university_dept_DeptHead] } type university_dept_DeptHeadMenu__findDeptHeadByName { + disabled: String hidden: Boolean invoke(name: String!): university_dept_DeptHead } type university_dept_DeptHead__changeDepartment { + disabled: String hidden: Boolean invoke(department: university_dept_Department__gql_input!): university_dept_DeptHead } type university_dept_DeptHead__changeName { + disabled: String hidden: Boolean invoke(newName: String!): university_dept_DeptHead }
