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/03 11:09:45 UTC
[isis] branch master updated: ISIS-2774: ensure eval methods are
not void
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 090d4ed ISIS-2774: ensure eval methods are not void
090d4ed is described below
commit 090d4ed7f7712acff9d0385fdfcd8591d9400193
Author: Andi Huber <ah...@apache.org>
AuthorDate: Fri Sep 3 13:09:37 2021 +0200
ISIS-2774: ensure eval methods are not void
---
.../apache/isis/core/metamodel/commons/MethodUtil.java | 16 ++++++++++++++++
.../apache/isis/core/metamodel/facets/Evaluators.java | 1 +
2 files changed, 17 insertions(+)
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/commons/MethodUtil.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/commons/MethodUtil.java
index 2373263..5e09ba3 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/commons/MethodUtil.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/commons/MethodUtil.java
@@ -26,6 +26,7 @@ import java.util.Objects;
import java.util.function.Predicate;
import org.apache.isis.commons.collections.Can;
+import org.apache.isis.commons.internal.collections._Collections;
import org.apache.isis.core.metamodel.methods.MethodLiteralConstants;
import lombok.val;
@@ -56,6 +57,21 @@ public class MethodUtil {
return method.getParameterCount() == 0;
}
+ public static boolean isVoid(final Method method) {
+ val returnType = method.getReturnType();
+ return returnType.equals(void.class)
+ || returnType.equals(Void.class);
+ }
+
+ public static boolean isNotVoid(final Method method) {
+ return !isVoid(method);
+ }
+
+ public static boolean isScalar(final Method method) {
+ return isNotVoid(method)
+ && ! _Collections.isCollectionOrArrayOrCanType(method.getReturnType());
+ }
+
@UtilityClass
public static class Predicates {
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/Evaluators.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/Evaluators.java
index 52b8ed6..7f5f3bf 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/Evaluators.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/Evaluators.java
@@ -82,6 +82,7 @@ public final class Evaluators {
.streamDeclaredMethods(cls)
.filter(MethodUtil::isNotStatic)
.filter(MethodUtil::isNoArg)
+ .filter(MethodUtil::isNotVoid)
.map(method->MethodEvaluator.create(method, annotationType))
.flatMap(Optional::stream);
}