You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@causeway.apache.org by ah...@apache.org on 2024/06/16 05:24:02 UTC

(causeway) branch master updated: CAUSEWAY-2297: minor: adds enum predicated (code quality)

This is an automated email from the ASF dual-hosted git repository.

ahuber pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/causeway.git


The following commit(s) were added to refs/heads/master by this push:
     new c37983af46 CAUSEWAY-2297: minor: adds enum predicated (code quality)
c37983af46 is described below

commit c37983af4619fb45726d91df56d1bdce00696766
Author: Andi Huber <ah...@apache.org>
AuthorDate: Sun Jun 16 07:23:57 2024 +0200

    CAUSEWAY-2297: minor: adds enum predicated (code quality)
---
 .../java/org/apache/causeway/core/config/CausewayConfiguration.java | 5 +++++
 .../causeway/core/metamodel/interactions/InteractionUtils.java      | 6 ++++--
 .../causeway/core/metamodel/interactions/PrototypingAttributes.java | 6 ++++--
 .../causeway/core/metamodel/interactions/UsabilityContext.java      | 3 ++-
 4 files changed, 15 insertions(+), 5 deletions(-)

diff --git a/core/config/src/main/java/org/apache/causeway/core/config/CausewayConfiguration.java b/core/config/src/main/java/org/apache/causeway/core/config/CausewayConfiguration.java
index 4857a2d72c..059d039714 100644
--- a/core/config/src/main/java/org/apache/causeway/core/config/CausewayConfiguration.java
+++ b/core/config/src/main/java/org/apache/causeway/core/config/CausewayConfiguration.java
@@ -2254,6 +2254,9 @@ public class CausewayConfiguration {
              * indicate the class name of the facet/advisor(s) that did the vetoing.
              */
             SHOW_AS_DISABLED_WITH_DIAGNOSTICS;
+            public boolean isHide() { return this == HIDE; }
+            public boolean isShowAsDisabled() { return this == SHOW_AS_DISABLED; }
+            public boolean isShowAsDisabledWithDiagnostics() { return this == SHOW_AS_DISABLED_WITH_DIAGNOSTICS; }
         }
 
         /**
@@ -2286,6 +2289,8 @@ public class CausewayConfiguration {
              * indicate the class name of the facet/advisor(s) that did the vetoing.
              */
             SHOW_AS_DISABLED_WITH_DIAGNOSTICS;
+            public boolean isDisabled() { return this == DISABLE; }
+            public boolean isShowAsDisabledWithDiagnostics() { return this == SHOW_AS_DISABLED_WITH_DIAGNOSTICS; }
         }
 
         /**
diff --git a/core/metamodel/src/main/java/org/apache/causeway/core/metamodel/interactions/InteractionUtils.java b/core/metamodel/src/main/java/org/apache/causeway/core/metamodel/interactions/InteractionUtils.java
index aba0a7fd2f..712d5d4ed0 100644
--- a/core/metamodel/src/main/java/org/apache/causeway/core/metamodel/interactions/InteractionUtils.java
+++ b/core/metamodel/src/main/java/org/apache/causeway/core/metamodel/interactions/InteractionUtils.java
@@ -91,7 +91,8 @@ public final class InteractionUtils {
                             Consent.VetoReason hidingReason = Optional.ofNullable(hidingReasonString)
                                     .map(Consent.VetoReason::explicit)
                                     .orElse(null);
-                            if(hidingReason != null && ifHiddenPolicy == CausewayConfiguration.Prototyping.IfHiddenPolicy.SHOW_AS_DISABLED_WITH_DIAGNOSTICS) {
+                            if(hidingReason != null
+                                    && ifHiddenPolicy.isShowAsDisabledWithDiagnostics()) {
                                 hidingReason = VetoUtil.withAdvisorAsDiagnostic(hidingReason, advisor);
                             }
                             isResult.advise(hidingReason, advisor);
@@ -104,7 +105,8 @@ public final class InteractionUtils {
         .filter(advisor->compatible(advisor, context))
         .forEach(advisor->{
             Consent.VetoReason disablingReason = advisor.disables(context).orElse(null);
-            if(disablingReason != null && ifDisabledPolicy == CausewayConfiguration.Prototyping.IfDisabledPolicy.SHOW_AS_DISABLED_WITH_DIAGNOSTICS) {
+            if(disablingReason != null
+                    && ifDisabledPolicy.isShowAsDisabledWithDiagnostics()) {
                 disablingReason = VetoUtil.withAdvisorAsDiagnostic(disablingReason, advisor);
             }
             isResult.advise(disablingReason, advisor);
diff --git a/core/metamodel/src/main/java/org/apache/causeway/core/metamodel/interactions/PrototypingAttributes.java b/core/metamodel/src/main/java/org/apache/causeway/core/metamodel/interactions/PrototypingAttributes.java
index 39f848d3e4..ad6c56c821 100644
--- a/core/metamodel/src/main/java/org/apache/causeway/core/metamodel/interactions/PrototypingAttributes.java
+++ b/core/metamodel/src/main/java/org/apache/causeway/core/metamodel/interactions/PrototypingAttributes.java
@@ -22,6 +22,8 @@ import java.io.Serializable;
 
 import org.apache.causeway.core.config.CausewayConfiguration;
 
+import lombok.NonNull;
+
 /**
  * <h1>Troubleshooting Visibility and Usability</h1>
  * <p>
@@ -68,13 +70,13 @@ public class PrototypingAttributes implements Serializable {
      * but disabled with the veto providing some explanation as to why. And, if set to SHOW_AS_DISABLED_WITH_DIAGNOSTICS,
      * then the class name of the metamodel facet that vetoed the visibility is also shown in the tooltip.
      */
-    private final CausewayConfiguration.Prototyping.IfHiddenPolicy ifHiddenPolicy;
+    private final @NonNull CausewayConfiguration.Prototyping.IfHiddenPolicy ifHiddenPolicy;
 
     /**
      * If not specified or is set to DISABLED, then the behaviour is as per normal.
      * But if set to SHOW_AS_DISABLED_WITH_DIAGNOSTICS, then the class name of the metamodel facet that vetoed
      * the usability is also shown in the tooltip.
      */
-    private final CausewayConfiguration.Prototyping.IfDisabledPolicy ifDisabledPolicy;
+    private final @NonNull CausewayConfiguration.Prototyping.IfDisabledPolicy ifDisabledPolicy;
 
 }
diff --git a/core/metamodel/src/main/java/org/apache/causeway/core/metamodel/interactions/UsabilityContext.java b/core/metamodel/src/main/java/org/apache/causeway/core/metamodel/interactions/UsabilityContext.java
index 4a978f083a..2b4ab9e4b6 100644
--- a/core/metamodel/src/main/java/org/apache/causeway/core/metamodel/interactions/UsabilityContext.java
+++ b/core/metamodel/src/main/java/org/apache/causeway/core/metamodel/interactions/UsabilityContext.java
@@ -25,6 +25,7 @@ import org.apache.causeway.core.metamodel.consent.InteractionContextType;
 import org.apache.causeway.core.metamodel.consent.InteractionInitiatedBy;
 
 import lombok.Getter;
+import lombok.NonNull;
 
 /**
  * See {@link InteractionContext} for overview; analogous to
@@ -34,7 +35,7 @@ public abstract class UsabilityContext
 extends InteractionContext
 implements InteractionEventSupplier<UsabilityEvent> {
 
-    @Getter private final PrototypingAttributes prototypingAttributes;
+    @Getter private final @NonNull PrototypingAttributes prototypingAttributes;
 
     public UsabilityContext(
             final InteractionContextType interactionType,