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);
     }
 }