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/08 13:45:46 UTC
[isis] branch master updated: ISIS-2774: method finder overhaul (6)
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 6b37e02 ISIS-2774: method finder overhaul (6)
6b37e02 is described below
commit 6b37e02bbdd14418d88e68c7eade51ffd9cb720b
Author: Andi Huber <ah...@apache.org>
AuthorDate: Wed Sep 8 15:44:52 2021 +0200
ISIS-2774: method finder overhaul (6)
---
.../progmodel/ProgrammingModelConstants.java | 42 +++---
.../isis/core/metamodel/facets/ActionSupport.java | 67 +++-------
.../core/metamodel/facets/ParameterSupport.java | 144 +++------------------
.../ActionValidationFacetViaMethodFactory.java | 4 +-
...ActionParameterSupportFacetFactoryAbstract.java | 2 +-
.../PropertyAutoCompleteFacetMethodFactory.java | 11 +-
.../PropertyChoicesFacetViaMethodFactory.java | 11 +-
.../isis/core/metamodel/methods/MethodFinder.java | 14 +-
.../core/metamodel/methods/MethodFinderPAT.java | 41 +-----
9 files changed, 92 insertions(+), 244 deletions(-)
diff --git a/core/config/src/main/java/org/apache/isis/core/config/progmodel/ProgrammingModelConstants.java b/core/config/src/main/java/org/apache/isis/core/config/progmodel/ProgrammingModelConstants.java
index 104de7b..ac4e821 100644
--- a/core/config/src/main/java/org/apache/isis/core/config/progmodel/ProgrammingModelConstants.java
+++ b/core/config/src/main/java/org/apache/isis/core/config/progmodel/ProgrammingModelConstants.java
@@ -24,6 +24,7 @@ import java.lang.reflect.Member;
import java.lang.reflect.Method;
import java.lang.reflect.Modifier;
import java.util.Collection;
+import java.util.function.Function;
import java.util.function.IntFunction;
import java.util.function.Predicate;
import java.util.stream.Stream;
@@ -141,24 +142,29 @@ public final class ProgrammingModelConstants {
}
private final Can<Class<?>> returnTypes;
- public static Can<Class<?>> nonScalar(final @NonNull Class<?> elementReturnType) {
- if(VOID.returnTypes.contains(elementReturnType)) {
+ public static Can<Class<?>> nonScalar(final @NonNull Class<?> elementType) {
+ if(VOID.returnTypes.contains(elementType)) {
return Can.empty();
}
return Can.<Class<?>>of(
Can.class,
Collection.class,
- Array.newInstance(elementReturnType, 0).getClass());
+ Array.newInstance(elementType, 0).getClass());
}
}
// -- PARAMETER SUPPORT
- public static enum ReturnType {
- NON_SCALAR,
- TEXT,
- BOOLEAN,
- SAME_AS_PARAMETER_TYPE,
+ @RequiredArgsConstructor
+ public static enum ReturnTypePattern {
+ SCALAR(Can::ofSingleton),
+ NON_SCALAR(ReturnTypeCategory::nonScalar),
+ TEXT(__->ReturnTypeCategory.TRANSLATABLE.getReturnTypes()),
+ BOOLEAN(__->ReturnTypeCategory.BOOLEAN.getReturnTypes());
+ final Function<Class<?>, Can<Class<?>>> matchingTypesForElementType;
+ public Can<Class<?>> matchingTypes(final @NonNull Class<?> elementType) {
+ return matchingTypesForElementType.apply(elementType);
+ }
}
// -- OBJECT SUPPORT
@@ -193,21 +199,21 @@ public final class ProgrammingModelConstants {
@Getter
public static enum MemberSupportPrefix {
- DEFAULT(ReturnType.SAME_AS_PARAMETER_TYPE, "default"),
- CHOICES(ReturnType.NON_SCALAR, "choices"),
- AUTO_COMPLETE(ReturnType.NON_SCALAR, "autoComplete"),
- HIDE(ReturnType.BOOLEAN, "hide"),
- DISABLE(ReturnType.TEXT, "disable"),
- VALIDATE(ReturnType.TEXT, "validate"),
- NAMED(ReturnType.TEXT, "named"), // imperative naming
- DESCRIBED(ReturnType.TEXT, "described"); // imperative naming
+ DEFAULT(ReturnTypePattern.SCALAR, "default"),
+ CHOICES(ReturnTypePattern.NON_SCALAR, "choices"),
+ AUTO_COMPLETE(ReturnTypePattern.NON_SCALAR, "autoComplete"),
+ HIDE(ReturnTypePattern.BOOLEAN, "hide"),
+ DISABLE(ReturnTypePattern.TEXT, "disable"),
+ VALIDATE(ReturnTypePattern.TEXT, "validate"),
+ NAMED(ReturnTypePattern.TEXT, "named"), // imperative naming
+ DESCRIBED(ReturnTypePattern.TEXT, "described"); // imperative naming
MemberSupportPrefix(
- final ReturnType parameterSearchReturnType,
+ final ReturnTypePattern parameterSearchReturnType,
final String ...methodNamePrefixes) {
this.supportMethodReturnType = parameterSearchReturnType;
this.methodNamePrefixes = Can.of(methodNamePrefixes);
}
- private final ReturnType supportMethodReturnType;
+ private final ReturnTypePattern supportMethodReturnType;
private final Can<String> methodNamePrefixes;
}
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/ActionSupport.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/ActionSupport.java
index 07b24a6..aaa31ed 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/ActionSupport.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/ActionSupport.java
@@ -29,8 +29,7 @@ import org.springframework.lang.Nullable;
import org.apache.isis.commons.collections.Can;
import org.apache.isis.commons.internal.collections._Arrays;
-import org.apache.isis.core.config.progmodel.ProgrammingModelConstants.ReturnType;
-import org.apache.isis.core.config.progmodel.ProgrammingModelConstants.ReturnTypeCategory;
+import org.apache.isis.core.config.progmodel.ProgrammingModelConstants.ReturnTypePattern;
import org.apache.isis.core.metamodel.methods.MethodFinder;
import org.apache.isis.core.metamodel.methods.MethodFinderOptions;
import org.apache.isis.core.metamodel.methods.MethodFinderPAT;
@@ -52,7 +51,7 @@ public final class ActionSupport {
@NonNull FacetFactory.ProcessMethodContext processMethodContext;
@Getter @NonNull MethodFinderOptions finderOptions;
@NonNull EnumSet<SearchAlgorithm> searchAlgorithms;
- @NonNull ReturnType returnType;
+ @NonNull ReturnTypePattern returnTypePattern;
Class<?> additionalParamType;
@@ -109,28 +108,15 @@ public final class ActionSupport {
val paramTypes = searchRequest.getParamTypes();
val finderOptions = searchRequest.getFinderOptions();
val additionalParamTypes = Can.ofNullable(searchRequest.getAdditionalParamType());
-
- switch(searchRequest.getReturnType()) {
- case BOOLEAN:
- MethodFinderPAT
- .findMethodWithPATArg_returningBoolean(
- finderOptions,
- paramTypes, additionalParamTypes)
- .map(ActionSupport::toSearchResult)
- .forEach(onMethodFound);
- break;
- case TEXT:
- MethodFinderPAT
- .findMethodWithPATArg_returningText(
- finderOptions,
- paramTypes, additionalParamTypes)
- .map(ActionSupport::toSearchResult)
- .forEach(onMethodFound);
- break;
- default:
-
- }
-
+ val anyOfReturnTypes = searchRequest.getReturnTypePattern().matchingTypes(void.class); // ignores actual type
+
+ MethodFinderPAT
+ .findMethodWithPATArg_returningAnyOf(
+ finderOptions,
+ anyOfReturnTypes,
+ paramTypes, additionalParamTypes)
+ .map(ActionSupport::toSearchResult)
+ .forEach(onMethodFound);
}
private static ActionSupportingMethodSearchResult toSearchResult(
@@ -156,28 +142,15 @@ public final class ActionSupport {
if(paramsConsideredCount>=0) {
val paramTypesToLookFor = concat(paramTypes, paramsConsideredCount, additionalParamType);
-
- switch(searchRequest.getReturnType()) {
- case BOOLEAN:
- MethodFinder
- .findMethod_returningCategory(
- finderOptions,
- ReturnTypeCategory.BOOLEAN,
- paramTypesToLookFor)
- .map(ActionSupport::toSearchResult)
- .forEach(onMethodFound);
- break;
- case TEXT:
- MethodFinder
- .findMethod_returningCategory(
- finderOptions,
- ReturnTypeCategory.TRANSLATABLE,
- paramTypesToLookFor)
- .map(ActionSupport::toSearchResult)
- .forEach(onMethodFound);
- break;
- default:
- }
+ val anyOfReturnTypes = searchRequest.getReturnTypePattern().matchingTypes(void.class); // ignores actual type
+
+ MethodFinder
+ .findMethod_returningAnyOf(
+ finderOptions,
+ anyOfReturnTypes,
+ paramTypesToLookFor)
+ .map(ActionSupport::toSearchResult)
+ .forEach(onMethodFound);
}
}
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/ParameterSupport.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/ParameterSupport.java
index 69aeefc..1ff02bf 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/ParameterSupport.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/ParameterSupport.java
@@ -30,8 +30,7 @@ import org.springframework.lang.Nullable;
import org.apache.isis.commons.collections.Can;
import org.apache.isis.commons.internal.collections._Arrays;
-import org.apache.isis.core.config.progmodel.ProgrammingModelConstants.ReturnType;
-import org.apache.isis.core.config.progmodel.ProgrammingModelConstants.ReturnTypeCategory;
+import org.apache.isis.core.config.progmodel.ProgrammingModelConstants.ReturnTypePattern;
import org.apache.isis.core.metamodel.methods.MethodFinder;
import org.apache.isis.core.metamodel.methods.MethodFinderOptions;
import org.apache.isis.core.metamodel.methods.MethodFinderPAT;
@@ -57,7 +56,7 @@ public final class ParameterSupport {
@NonNull FacetFactory.ProcessMethodContext processMethodContext;
@NonNull Can<IntFunction<String>> paramIndexToMethodNameProviders;
@NonNull EnumSet<SearchAlgorithm> searchAlgorithms;
- @NonNull ReturnType returnType;
+ @NonNull ReturnTypePattern returnTypePattern;
Class<?> additionalParamType;
@@ -133,47 +132,14 @@ public final class ParameterSupport {
val paramType = paramTypes[paramIndex];
val additionalParamTypes = Can.ofNullable(searchRequest.getAdditionalParamType());
- switch(searchRequest.getReturnType()) {
- case BOOLEAN:
- MethodFinderPAT
- .findMethodWithPATArg_returningBoolean(
- MethodFinderOptions
- .memberSupport(type, methodNames, processMethodContext.getIntrospectionPolicy()),
- paramTypes, additionalParamTypes)
- .map(methodAndPatConstructor->toSearchResult(paramIndex, paramType, methodAndPatConstructor))
- .forEach(onMethodFound);
- break;
- case TEXT:
- MethodFinderPAT
- .findMethodWithPATArg_returningText(
- MethodFinderOptions
- .memberSupport(type, methodNames, processMethodContext.getIntrospectionPolicy()),
- paramTypes, additionalParamTypes)
- .map(methodAndPatConstructor->toSearchResult(paramIndex, paramType, methodAndPatConstructor))
- .forEach(onMethodFound);
- break;
- case NON_SCALAR:
- MethodFinderPAT
- .findMethodWithPATArg_returningNonScalar(
- MethodFinderOptions
- .memberSupport(type, methodNames, processMethodContext.getIntrospectionPolicy()),
- paramType, paramTypes, additionalParamTypes)
- .map(methodAndPatConstructor->toSearchResult(paramIndex, paramType, methodAndPatConstructor))
- .forEach(onMethodFound);
- break;
- case SAME_AS_PARAMETER_TYPE:
- MethodFinderPAT
- .findMethodWithPATArg(
- MethodFinderOptions
- .memberSupport(type, methodNames, processMethodContext.getIntrospectionPolicy()),
- paramType, paramTypes, additionalParamTypes)
- .map(methodAndPatConstructor->toSearchResult(paramIndex, paramType, methodAndPatConstructor))
- .forEach(onMethodFound);
- break;
- default:
-
- }
-
+ MethodFinderPAT
+ .findMethodWithPATArg_returningAnyOf(
+ MethodFinderOptions
+ .memberSupport(type, methodNames, processMethodContext.getIntrospectionPolicy()),
+ searchRequest.getReturnTypePattern().matchingTypes(paramType),
+ paramTypes, additionalParamTypes)
+ .map(methodAndPatConstructor->toSearchResult(paramIndex, paramType, methodAndPatConstructor))
+ .forEach(onMethodFound);
}
private static ParamSupportingMethodSearchResult toSearchResult(
@@ -199,47 +165,14 @@ public final class ParameterSupport {
val paramType = paramTypes[paramIndex];
val singleArg = new Class<?>[]{paramType};
- switch(searchRequest.getReturnType()) {
- case BOOLEAN:
- MethodFinder
- .findMethod_returningCategory(
- MethodFinderOptions
- .memberSupport(type, methodNames, processMethodContext.getIntrospectionPolicy()),
- ReturnTypeCategory.BOOLEAN,
- singleArg)
- .map(supportingMethod->toSearchResult(paramIndex, paramType, supportingMethod))
- .forEach(onMethodFound);
- break;
- case TEXT:
- MethodFinder
- .findMethod_returningCategory(
- MethodFinderOptions
- .memberSupport(type, methodNames, processMethodContext.getIntrospectionPolicy()),
- ReturnTypeCategory.TRANSLATABLE,
- singleArg)
- .map(supportingMethod->toSearchResult(paramIndex, paramType, supportingMethod))
- .forEach(onMethodFound);
- break;
- case NON_SCALAR:
- MethodFinder
- .findMethod_returningNonScalar(
- MethodFinderOptions
- .memberSupport(type, methodNames, processMethodContext.getIntrospectionPolicy()),
- paramType, singleArg)
- .map(supportingMethod->toSearchResult(paramIndex, paramType, supportingMethod))
- .forEach(onMethodFound);
- break;
- case SAME_AS_PARAMETER_TYPE:
- MethodFinder
- .findMethod(
- MethodFinderOptions
- .memberSupport(type, methodNames, processMethodContext.getIntrospectionPolicy()),
- paramType, singleArg)
- .map(supportingMethod->toSearchResult(paramIndex, paramType, supportingMethod))
- .forEach(onMethodFound);
- break;
- default:
- }
+ MethodFinder
+ .findMethod_returningAnyOf(
+ MethodFinderOptions
+ .memberSupport(type, methodNames, processMethodContext.getIntrospectionPolicy()),
+ searchRequest.getReturnTypePattern().matchingTypes(paramType),
+ singleArg)
+ .map(supportingMethod->toSearchResult(paramIndex, paramType, supportingMethod))
+ .forEach(onMethodFound);
}
@@ -265,49 +198,14 @@ public final class ParameterSupport {
val paramTypesToLookFor = concat(paramTypes, paramsConsideredCount, additionalParamType);
final Method supportingMethod;
-
- switch(searchRequest.getReturnType()) {
- case BOOLEAN:
- supportingMethod = MethodFinder
- .findMethod_returningCategory(
- MethodFinderOptions
- .memberSupport(type, methodNames, processMethodContext.getIntrospectionPolicy()),
- ReturnTypeCategory.BOOLEAN,
- paramTypesToLookFor)
- .findFirst()
- .orElse(null);
- break;
- case TEXT:
- supportingMethod = MethodFinder
- .findMethod_returningCategory(
+ supportingMethod = MethodFinder
+ .findMethod_returningAnyOf(
MethodFinderOptions
.memberSupport(type, methodNames, processMethodContext.getIntrospectionPolicy()),
- ReturnTypeCategory.TRANSLATABLE,
+ searchRequest.getReturnTypePattern().matchingTypes(paramType),
paramTypesToLookFor)
.findFirst()
.orElse(null);
- break;
- case NON_SCALAR:
- supportingMethod = MethodFinder
- .findMethod_returningNonScalar(
- MethodFinderOptions
- .memberSupport(type, methodNames, processMethodContext.getIntrospectionPolicy()),
- paramType, paramTypesToLookFor)
- .findFirst()
- .orElse(null);
- break;
- case SAME_AS_PARAMETER_TYPE:
- supportingMethod = MethodFinder
- .findMethod(
- MethodFinderOptions
- .memberSupport(type, methodNames, processMethodContext.getIntrospectionPolicy()),
- paramType, paramTypesToLookFor)
- .findFirst()
- .orElse(null);
- break;
- default:
- supportingMethod = null;
- }
if(supportingMethod != null) {
onMethodFound.accept(toSearchResult(paramIndex, paramType, supportingMethod));
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/actions/validate/method/ActionValidationFacetViaMethodFactory.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/actions/validate/method/ActionValidationFacetViaMethodFactory.java
index be864a7..7d30916 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/actions/validate/method/ActionValidationFacetViaMethodFactory.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/actions/validate/method/ActionValidationFacetViaMethodFactory.java
@@ -23,7 +23,7 @@ import java.util.EnumSet;
import javax.inject.Inject;
import org.apache.isis.core.config.progmodel.ProgrammingModelConstants.MemberSupportPrefix;
-import org.apache.isis.core.config.progmodel.ProgrammingModelConstants.ReturnType;
+import org.apache.isis.core.config.progmodel.ProgrammingModelConstants.ReturnTypePattern;
import org.apache.isis.core.metamodel.context.MetaModelContext;
import org.apache.isis.core.metamodel.facetapi.FeatureType;
import org.apache.isis.core.metamodel.facets.ActionSupport;
@@ -52,7 +52,7 @@ extends MemberSupportFacetFactoryAbstract {
val searchRequest = ActionSupport.ActionSupportingMethodSearchRequest.builder()
.processMethodContext(processMethodContext)
- .returnType(ReturnType.TEXT)
+ .returnTypePattern(ReturnTypePattern.TEXT)
.finderOptions(methodFinderOptions)
.searchAlgorithms(EnumSet.of(SearchAlgorithm.PAT, SearchAlgorithm.ALL_PARAM_TYPES))
.build();
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/param/support/ActionParameterSupportFacetFactoryAbstract.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/param/support/ActionParameterSupportFacetFactoryAbstract.java
index ddb0bc6..0a795e4 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/param/support/ActionParameterSupportFacetFactoryAbstract.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/param/support/ActionParameterSupportFacetFactoryAbstract.java
@@ -74,7 +74,7 @@ extends MemberAndPropertySupportFacetFactoryAbstract {
.processMethodContext(processMethodContext)
.paramIndexToMethodNameProviders(methodNameCandidates)
.searchAlgorithms(EnumSet.of(SearchAlgorithm.PAT, SearchAlgorithm.SWEEP))
- .returnType(memberSupportPrefix.getSupportMethodReturnType()))
+ .returnTypePattern(memberSupportPrefix.getSupportMethodReturnType()))
.build();
ParameterSupport.findParamSupportingMethods(searchRequest, searchResult -> {
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/properties/autocomplete/method/PropertyAutoCompleteFacetMethodFactory.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/properties/autocomplete/method/PropertyAutoCompleteFacetMethodFactory.java
index f0b10ce..ed2f2b1 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/properties/autocomplete/method/PropertyAutoCompleteFacetMethodFactory.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/properties/autocomplete/method/PropertyAutoCompleteFacetMethodFactory.java
@@ -21,6 +21,7 @@ package org.apache.isis.core.metamodel.facets.properties.autocomplete.method;
import javax.inject.Inject;
import org.apache.isis.core.config.progmodel.ProgrammingModelConstants.MemberSupportPrefix;
+import org.apache.isis.core.config.progmodel.ProgrammingModelConstants.ReturnTypeCategory;
import org.apache.isis.core.metamodel.context.MetaModelContext;
import org.apache.isis.core.metamodel.facetapi.FeatureType;
import org.apache.isis.core.metamodel.facets.members.support.MemberSupportFacetFactoryAbstract;
@@ -43,18 +44,18 @@ extends MemberSupportFacetFactoryAbstract {
final MethodFinderOptions methodFinderOptions) {
val getterOrMixinMain = processMethodContext.getMethod();
- val returnType = getterOrMixinMain.getReturnType();
+ val getterType = getterOrMixinMain.getReturnType();
MethodFinder
- .findMethod_returningNonScalar(
+ .findMethod_returningAnyOf(
methodFinderOptions,
- returnType,
- STRING_ARG)
+ ReturnTypeCategory.nonScalar(getterType),
+ STRING_ARG)
.peek(processMethodContext::removeMethod)
.forEach(autoCompleteMethod->{
addFacet(
new PropertyAutoCompleteFacetMethod(
- autoCompleteMethod, returnType, processMethodContext.getFacetHolder()));
+ autoCompleteMethod, getterType, processMethodContext.getFacetHolder()));
});
}
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/properties/choices/method/PropertyChoicesFacetViaMethodFactory.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/properties/choices/method/PropertyChoicesFacetViaMethodFactory.java
index 25ce222..07584de 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/properties/choices/method/PropertyChoicesFacetViaMethodFactory.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/properties/choices/method/PropertyChoicesFacetViaMethodFactory.java
@@ -21,6 +21,7 @@ package org.apache.isis.core.metamodel.facets.properties.choices.method;
import javax.inject.Inject;
import org.apache.isis.core.config.progmodel.ProgrammingModelConstants.MemberSupportPrefix;
+import org.apache.isis.core.config.progmodel.ProgrammingModelConstants.ReturnTypeCategory;
import org.apache.isis.core.metamodel.context.MetaModelContext;
import org.apache.isis.core.metamodel.facetapi.FeatureType;
import org.apache.isis.core.metamodel.facets.members.support.MemberSupportFacetFactoryAbstract;
@@ -43,18 +44,18 @@ extends MemberSupportFacetFactoryAbstract {
final MethodFinderOptions methodFinderOptions) {
val getterOrMixinMain = processMethodContext.getMethod();
- val returnType = getterOrMixinMain.getReturnType();
+ val getterType = getterOrMixinMain.getReturnType();
MethodFinder
- .findMethod_returningNonScalar(
+ .findMethod_returningAnyOf(
methodFinderOptions,
- returnType,
- NO_ARG)
+ ReturnTypeCategory.nonScalar(getterType),
+ NO_ARG)
.peek(processMethodContext::removeMethod)
.forEach(choicesMethod->{
addFacet(
new PropertyChoicesFacetViaMethod(
- choicesMethod, returnType, processMethodContext.getFacetHolder()));
+ choicesMethod, getterType, processMethodContext.getFacetHolder()));
});
}
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/methods/MethodFinder.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/methods/MethodFinder.java
index c21a536..3f02fc8 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/methods/MethodFinder.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/methods/MethodFinder.java
@@ -50,22 +50,24 @@ public final class MethodFinder {
// -- SEARCH FOR MULTIPLE NAME CANDIDATES
- public static Stream<Method> findMethod_returningCategory(
+
+ public static Stream<Method> findMethod_returningAnyOf(
final MethodFinderOptions options,
- final ReturnTypeCategory returnTypeCategory,
+ final Can<Class<?>> anyOfReturnTypes,
final Class<?>[] signature) {
return options.streamMethodsMatchingSignature(signature)
- .filter(hasReturnTypeAnyOf(returnTypeCategory.getReturnTypes()));
+ .filter(hasReturnTypeAnyOf(anyOfReturnTypes));
}
- public static Stream<Method> findMethod_returningNonScalar(
+ @Deprecated
+ public static Stream<Method> findMethod_returningCategory(
final MethodFinderOptions options,
- final Class<?> elementReturnType,
+ final ReturnTypeCategory returnTypeCategory,
final Class<?>[] signature) {
return options.streamMethodsMatchingSignature(signature)
- .filter(hasReturnTypeAnyOf(ReturnTypeCategory.nonScalar(elementReturnType)));
+ .filter(hasReturnTypeAnyOf(returnTypeCategory.getReturnTypes()));
}
}
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/methods/MethodFinderPAT.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/methods/MethodFinderPAT.java
index 2d2d3df..766ff0f 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/methods/MethodFinderPAT.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/methods/MethodFinderPAT.java
@@ -25,7 +25,6 @@ import java.util.stream.Stream;
import org.apache.isis.commons.collections.Can;
import org.apache.isis.commons.internal.reflection._Reflect;
-import org.apache.isis.core.config.progmodel.ProgrammingModelConstants.ReturnTypeCategory;
import org.apache.isis.core.metamodel.commons.MethodUtil;
import static org.apache.isis.commons.internal.reflection._Reflect.Filter.paramSignatureMatch;
@@ -66,37 +65,14 @@ public final class MethodFinderPAT {
.flatMap(Optional::stream);
}
- @Deprecated
- public Stream<MethodAndPatConstructor> findMethodWithPATArg_returningBoolean(
+ public Stream<MethodAndPatConstructor> findMethodWithPATArg_returningAnyOf(
final MethodFinderOptions options,
+ final Can<Class<?>> returnTypes,
final Class<?>[] signature,
final Can<Class<?>> additionalParamTypes) {
- return MethodFinderPAT
- .findMethodWithPATArg_returningAnyOf(
- options, ReturnTypeCategory.BOOLEAN.getReturnTypes(), signature, additionalParamTypes);
- }
-
- @Deprecated
- public Stream<MethodAndPatConstructor> findMethodWithPATArg_returningText(
- final MethodFinderOptions options,
- final Class<?>[] signature,
- final Can<Class<?>> additionalParamTypes) {
-
- return MethodFinderPAT
- .findMethodWithPATArg_returningAnyOf(
- options, ReturnTypeCategory.TRANSLATABLE.getReturnTypes(), signature, additionalParamTypes);
- }
-
- public Stream<MethodAndPatConstructor> findMethodWithPATArg_returningNonScalar(
- final MethodFinderOptions options,
- final Class<?> elementReturnType,
- final Class<?>[] signature,
- final Can<Class<?>> additionalParamTypes) {
-
- return MethodFinderPAT
- .findMethodWithPATArg_returningAnyOf(
- options, ReturnTypeCategory.nonScalar(elementReturnType), signature, additionalParamTypes);
+ return returnTypes.stream()
+ .flatMap(returnType->findMethodWithPATArg(options, returnType, signature, additionalParamTypes));
}
// -- HELPER
@@ -112,14 +88,5 @@ public final class MethodFinderPAT {
.findFirst();
}
- private Stream<MethodAndPatConstructor> findMethodWithPATArg_returningAnyOf(
- final MethodFinderOptions options,
- final Can<Class<?>> returnTypes,
- final Class<?>[] signature,
- final Can<Class<?>> additionalParamTypes) {
-
- return returnTypes.stream()
- .flatMap(returnType->findMethodWithPATArg(options, returnType, signature, additionalParamTypes));
- }
}