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 2023/03/31 19:11:25 UTC
[causeway] branch master updated: CAUSEWAY-3401: NPE fixes for prev. commit
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 252e985e65 CAUSEWAY-3401: NPE fixes for prev. commit
252e985e65 is described below
commit 252e985e65a6c01588144e738805aa0aadb355a8
Author: Andi Huber <ah...@apache.org>
AuthorDate: Fri Mar 31 21:11:17 2023 +0200
CAUSEWAY-3401: NPE fixes for prev. commit
---
.../apache/causeway/core/metamodel/consent/Consent.java | 5 +++++
.../facets/members/disabled/DisabledFacetAbstract.java | 16 ++++++----------
.../disabled/DisabledFacetForPropertyAnnotation.java | 6 ++++--
3 files changed, 15 insertions(+), 12 deletions(-)
diff --git a/core/metamodel/src/main/java/org/apache/causeway/core/metamodel/consent/Consent.java b/core/metamodel/src/main/java/org/apache/causeway/core/metamodel/consent/Consent.java
index 1328d4b381..48f6e5f7e9 100644
--- a/core/metamodel/src/main/java/org/apache/causeway/core/metamodel/consent/Consent.java
+++ b/core/metamodel/src/main/java/org/apache/causeway/core/metamodel/consent/Consent.java
@@ -21,6 +21,9 @@ package org.apache.causeway.core.metamodel.consent;
import java.io.Serializable;
import java.util.Optional;
+import org.apache.causeway.commons.internal.assertions._Assert;
+import org.apache.causeway.commons.internal.base._Strings;
+
import lombok.NonNull;
import lombok.experimental.Accessors;
@@ -34,9 +37,11 @@ public interface Consent {
private final boolean inferred;
private final @NonNull String string;
public static VetoReason inferred(final String reason) {
+ _Assert.assertTrue(_Strings.isNotEmpty(reason));
return new VetoReason(true, reason);
}
public static VetoReason explicit(final String reason) {
+ _Assert.assertTrue(_Strings.isNotEmpty(reason));
return new VetoReason(false, reason);
}
public Optional<VetoReason> toOptional() {
diff --git a/core/metamodel/src/main/java/org/apache/causeway/core/metamodel/facets/members/disabled/DisabledFacetAbstract.java b/core/metamodel/src/main/java/org/apache/causeway/core/metamodel/facets/members/disabled/DisabledFacetAbstract.java
index af8f28babc..7e8aaae562 100644
--- a/core/metamodel/src/main/java/org/apache/causeway/core/metamodel/facets/members/disabled/DisabledFacetAbstract.java
+++ b/core/metamodel/src/main/java/org/apache/causeway/core/metamodel/facets/members/disabled/DisabledFacetAbstract.java
@@ -21,8 +21,6 @@ package org.apache.causeway.core.metamodel.facets.members.disabled;
import java.util.Optional;
import java.util.function.BiConsumer;
-import org.springframework.lang.Nullable;
-
import org.apache.causeway.applib.annotation.Where;
import org.apache.causeway.core.metamodel.consent.Consent.VetoReason;
import org.apache.causeway.core.metamodel.facetapi.Facet;
@@ -49,7 +47,7 @@ implements DisabledFacet {
* when either sub-classes override {@link #disabledReason(ManagedObject)}
* or the semantics is inverted (ENABLED)
*/
- private final @Nullable VetoReason reason;
+ private final @NonNull VetoReason reason;
protected DisabledFacetAbstract(
final Where where,
@@ -71,18 +69,16 @@ implements DisabledFacet {
@Override
public Optional<VetoReason> disabledReason(final ManagedObject targetAdapter) {
- if(getSemantics().isEnabled()) {
- return Optional.empty();
- }
- return Optional.of(reason!=null
- ? reason
- : ALWAYS_DISABLED_REASON);
+ // handle inverted semantics
+ return getSemantics().isEnabled()
+ ? Optional.empty()
+ : Optional.of(reason);
}
@Override
public Optional<VetoReason> disables(final UsabilityContext ic) {
if(getSemantics().isEnabled()) {
- return null;
+ return Optional.empty();
}
final ManagedObject target = ic.getTarget();
final Optional<VetoReason> disabledReason = disabledReason(target);
diff --git a/core/metamodel/src/main/java/org/apache/causeway/core/metamodel/facets/properties/property/disabled/DisabledFacetForPropertyAnnotation.java b/core/metamodel/src/main/java/org/apache/causeway/core/metamodel/facets/properties/property/disabled/DisabledFacetForPropertyAnnotation.java
index d7cf16c5d4..a5f3093074 100644
--- a/core/metamodel/src/main/java/org/apache/causeway/core/metamodel/facets/properties/property/disabled/DisabledFacetForPropertyAnnotation.java
+++ b/core/metamodel/src/main/java/org/apache/causeway/core/metamodel/facets/properties/property/disabled/DisabledFacetForPropertyAnnotation.java
@@ -49,8 +49,10 @@ extends DisabledFacetAbstract {
return null;
case DISABLED:
- final String reasonString = _Strings.nullToEmpty(property.editingDisabledReason());
- final VetoReason disabledReason = VetoReason.explicit(reasonString);
+ final VetoReason disabledReason = _Strings.isNullOrEmpty(property.editingDisabledReason())
+ ? ALWAYS_DISABLED_REASON
+ : VetoReason.explicit(property.editingDisabledReason());
+
return new DisabledFacetForPropertyAnnotation(disabledReason, holder);
case ENABLED:
return new DisabledFacetForPropertyAnnotationInvertedSemantics(holder);