This is an automated email from the ASF dual-hosted git repository. danhaywood pushed a commit to branch CAUSEWAY-3546 in repository https://gitbox.apache.org/repos/asf/causeway.git
commit 752a8a4e3e37fcc9d02f2ec16007aee7c58c49d0 Author: danhaywood <[email protected]> AuthorDate: Fri Sep 29 09:37:08 2023 +0100 CAUSEWAY-3546: adds missing additional cases --- .../command/CommandPublishingFacetForActionAnnotation.java | 9 +++------ .../command/CommandPublishingFacetForPropertyAnnotation.java | 7 ++++++- .../execution/ExecutionPublishingFacetForActionAnnotation.java | 9 +++------ .../execution/ExecutionPublishingFacetForPropertyAnnotation.java | 9 ++++++++- 4 files changed, 20 insertions(+), 14 deletions(-) diff --git a/core/metamodel/src/main/java/org/apache/causeway/core/metamodel/facets/members/publish/command/CommandPublishingFacetForActionAnnotation.java b/core/metamodel/src/main/java/org/apache/causeway/core/metamodel/facets/members/publish/command/CommandPublishingFacetForActionAnnotation.java index d6f1aa2467..e4f6f711e6 100644 --- a/core/metamodel/src/main/java/org/apache/causeway/core/metamodel/facets/members/publish/command/CommandPublishingFacetForActionAnnotation.java +++ b/core/metamodel/src/main/java/org/apache/causeway/core/metamodel/facets/members/publish/command/CommandPublishingFacetForActionAnnotation.java @@ -100,12 +100,9 @@ public abstract class CommandPublishingFacetForActionAnnotation extends CommandP }); } - private static boolean hasSafeSemantics(final FacetHolder holder) { - final ActionSemanticsFacet actionSemanticsFacet = holder.getFacet(ActionSemanticsFacet.class); - if(actionSemanticsFacet == null) { - throw new IllegalStateException("Require ActionSemanticsFacet in order to process"); - } - return actionSemanticsFacet.value().isSafeInNature(); + static boolean hasSafeSemantics(final FacetHolder holder) { + val actionSemanticsFacet = holder.getFacet(ActionSemanticsFacet.class); + return actionSemanticsFacet != null && actionSemanticsFacet.value().isSafeInNature(); } CommandPublishingFacetForActionAnnotation( diff --git a/core/metamodel/src/main/java/org/apache/causeway/core/metamodel/facets/members/publish/command/CommandPublishingFacetForPropertyAnnotation.java b/core/metamodel/src/main/java/org/apache/causeway/core/metamodel/facets/members/publish/command/CommandPublishingFacetForPropertyAnnotation.java index 7354072226..7415b05ce3 100644 --- a/core/metamodel/src/main/java/org/apache/causeway/core/metamodel/facets/members/publish/command/CommandPublishingFacetForPropertyAnnotation.java +++ b/core/metamodel/src/main/java/org/apache/causeway/core/metamodel/facets/members/publish/command/CommandPublishingFacetForPropertyAnnotation.java @@ -113,10 +113,15 @@ public abstract class CommandPublishingFacetForPropertyAnnotation extends Comman switch (actionPublishingPolicy) { case NONE: return new CommandPublishingFacetForActionFromConfiguration.None(holder, servicesInjector); + case IGNORE_QUERY_ONLY: + case IGNORE_SAFE: + return CommandPublishingFacetForActionAnnotation.hasSafeSemantics(holder) + ? new CommandPublishingFacetForActionFromConfiguration.IgnoreSafe(holder, servicesInjector) + : new CommandPublishingFacetForActionFromConfiguration.IgnoreSafeYetNot(holder, servicesInjector); case ALL: return new CommandPublishingFacetForActionFromConfiguration.All(holder, servicesInjector); default: - throw new IllegalStateException(String.format("configured action publishingPolicy '%s' not recognised", publishingPolicy)); + throw new IllegalStateException(String.format("configured action publishingPolicy '%s' not recognised", actionPublishingPolicy)); } } }); diff --git a/core/metamodel/src/main/java/org/apache/causeway/core/metamodel/facets/members/publish/execution/ExecutionPublishingFacetForActionAnnotation.java b/core/metamodel/src/main/java/org/apache/causeway/core/metamodel/facets/members/publish/execution/ExecutionPublishingFacetForActionAnnotation.java index 000b4d2737..da9b9ba8f0 100644 --- a/core/metamodel/src/main/java/org/apache/causeway/core/metamodel/facets/members/publish/execution/ExecutionPublishingFacetForActionAnnotation.java +++ b/core/metamodel/src/main/java/org/apache/causeway/core/metamodel/facets/members/publish/execution/ExecutionPublishingFacetForActionAnnotation.java @@ -90,12 +90,9 @@ public abstract class ExecutionPublishingFacetForActionAnnotation extends Execut }); } - private static boolean hasSafeSemantics(final FacetHolder holder) { - final ActionSemanticsFacet actionSemanticsFacet = holder.getFacet(ActionSemanticsFacet.class); - if(actionSemanticsFacet == null) { - throw new IllegalStateException("Require ActionSemanticsFacet in order to process"); - } - return actionSemanticsFacet.value().isSafeInNature(); + static boolean hasSafeSemantics(final FacetHolder holder) { + val actionSemanticsFacet = holder.getFacet(ActionSemanticsFacet.class); + return actionSemanticsFacet != null && actionSemanticsFacet.value().isSafeInNature(); } ExecutionPublishingFacetForActionAnnotation(final FacetHolder holder) { diff --git a/core/metamodel/src/main/java/org/apache/causeway/core/metamodel/facets/members/publish/execution/ExecutionPublishingFacetForPropertyAnnotation.java b/core/metamodel/src/main/java/org/apache/causeway/core/metamodel/facets/members/publish/execution/ExecutionPublishingFacetForPropertyAnnotation.java index f97615d210..ad6bc81f20 100644 --- a/core/metamodel/src/main/java/org/apache/causeway/core/metamodel/facets/members/publish/execution/ExecutionPublishingFacetForPropertyAnnotation.java +++ b/core/metamodel/src/main/java/org/apache/causeway/core/metamodel/facets/members/publish/execution/ExecutionPublishingFacetForPropertyAnnotation.java @@ -29,6 +29,8 @@ import org.apache.causeway.core.metamodel.facetapi.FacetHolder; import org.apache.causeway.core.metamodel.facetapi.FeatureType; import org.apache.causeway.core.metamodel.facets.TypedHolder; import org.apache.causeway.core.metamodel.facets.actions.contributing.ContributingFacet; +import org.apache.causeway.core.metamodel.facets.members.publish.command.CommandPublishingFacetForActionAnnotation; +import org.apache.causeway.core.metamodel.facets.members.publish.command.CommandPublishingFacetForActionFromConfiguration; import org.apache.causeway.core.metamodel.facets.object.mixin.MixinFacet; import lombok.val; @@ -106,10 +108,15 @@ extends ExecutionPublishingFacetAbstract { switch (actionPublishingPolicy) { case NONE: return new ExecutionPublishingFacetForActionFromConfiguration.None(holder); + case IGNORE_QUERY_ONLY: + case IGNORE_SAFE: + return ExecutionPublishingFacetForActionAnnotation.hasSafeSemantics(holder) + ? new ExecutionPublishingFacetForActionFromConfiguration.IgnoreSafe(holder) + : new ExecutionPublishingFacetForActionFromConfiguration.IgnoreSafeYetNot(holder); case ALL: return new ExecutionPublishingFacetForActionFromConfiguration.All(holder); default: - throw new IllegalStateException(String.format("configured action.executionPublishing policy '%s' not recognised", publishingPolicy)); + throw new IllegalStateException(String.format("configured action.executionPublishing policy '%s' not recognised", actionPublishingPolicy)); } } }
