You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@isis.apache.org by ah...@apache.org on 2021/09/01 11:14:59 UTC
[isis] branch master updated: ISIS-2774: fixes
HiddenObjectFacetViaMethod not being imperative
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/isis.git
The following commit(s) were added to refs/heads/master by this push:
new 02dd148 ISIS-2774: fixes HiddenObjectFacetViaMethod not being imperative
02dd148 is described below
commit 02dd148031c4462bf59ab1571dcff4aaaa2cc14c
Author: Andi Huber <ah...@apache.org>
AuthorDate: Wed Sep 1 13:14:48 2021 +0200
ISIS-2774: fixes HiddenObjectFacetViaMethod not being imperative
---
.../DisabledObjectFacetViaMethodFactory.java | 1 -
.../object/hidden/HiddenObjectFacetAbstract.java | 4 +++-
.../hidden/method/HiddenObjectFacetViaMethod.java | 24 ++++++++++++++++++----
3 files changed, 23 insertions(+), 6 deletions(-)
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/disabled/method/DisabledObjectFacetViaMethodFactory.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/disabled/method/DisabledObjectFacetViaMethodFactory.java
index d9e7be4..8aa3299 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/disabled/method/DisabledObjectFacetViaMethodFactory.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/disabled/method/DisabledObjectFacetViaMethodFactory.java
@@ -81,7 +81,6 @@ extends MethodPrefixBasedFacetFactoryAbstract {
val translationContext = TranslationContext.forMethod(method);
addFacet(new DisabledObjectFacetViaMethod(method, translationContext, facetHolder));
-
processClassContext.removeMethod(method);
}
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/hidden/HiddenObjectFacetAbstract.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/hidden/HiddenObjectFacetAbstract.java
index 6882036..36220ce 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/hidden/HiddenObjectFacetAbstract.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/hidden/HiddenObjectFacetAbstract.java
@@ -25,7 +25,9 @@ import org.apache.isis.core.metamodel.facetapi.FacetHolder;
import org.apache.isis.core.metamodel.interactions.VisibilityContext;
import org.apache.isis.core.metamodel.spec.ManagedObject;
-public abstract class HiddenObjectFacetAbstract extends FacetAbstract implements HiddenObjectFacet {
+public abstract class HiddenObjectFacetAbstract
+extends FacetAbstract
+implements HiddenObjectFacet {
private static final Class<? extends Facet> type() {
return HiddenObjectFacet.class;
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/hidden/method/HiddenObjectFacetViaMethod.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/hidden/method/HiddenObjectFacetViaMethod.java
index 81928f1..17ab427 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/hidden/method/HiddenObjectFacetViaMethod.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/hidden/method/HiddenObjectFacetViaMethod.java
@@ -22,20 +22,32 @@ package org.apache.isis.core.metamodel.facets.object.hidden.method;
import java.lang.reflect.Method;
import java.util.function.BiConsumer;
+import org.apache.isis.commons.collections.Can;
import org.apache.isis.core.metamodel.facetapi.FacetHolder;
+import org.apache.isis.core.metamodel.facets.ImperativeFacet;
import org.apache.isis.core.metamodel.facets.object.hidden.HiddenObjectFacetAbstract;
import org.apache.isis.core.metamodel.interactions.VisibilityContext;
import org.apache.isis.core.metamodel.spec.ManagedObject;
import org.apache.isis.core.metamodel.spec.ManagedObjects;
+import lombok.Getter;
+import lombok.NonNull;
+import lombok.val;
+
public class HiddenObjectFacetViaMethod
-extends HiddenObjectFacetAbstract {
+extends HiddenObjectFacetAbstract
+implements ImperativeFacet {
- private final Method method;
+ @Getter(onMethod_ = {@Override}) private final @NonNull Can<Method> methods;
public HiddenObjectFacetViaMethod(final Method method, final FacetHolder holder) {
super(holder);
- this.method = method;
+ this.methods = ImperativeFacet.singleMethod(method);;
+ }
+
+ @Override
+ public Intent getIntent(final Method method) {
+ return Intent.CHECK_IF_HIDDEN;
}
@Override
@@ -49,18 +61,22 @@ extends HiddenObjectFacetAbstract {
if (target == null) {
return null;
}
+ val method = methods.getFirstOrFail();
final Boolean isHidden = (Boolean) ManagedObjects.InvokeUtil.invoke(method, target);
return isHidden ? "Hidden" : null;
}
@Override
public HiddenObjectFacetViaMethod clone(final FacetHolder holder) {
- return new HiddenObjectFacetViaMethod(this.method, holder);
+ val method = methods.getFirstOrFail();
+ return new HiddenObjectFacetViaMethod(method, holder);
}
@Override
public void visitAttributes(final BiConsumer<String, Object> visitor) {
+ val method = methods.getFirstOrFail();
super.visitAttributes(visitor);
+ ImperativeFacet.visitAttributes(this, visitor);
visitor.accept("method", method);
}
}