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 2020/07/17 17:13:12 UTC
[isis] branch master updated: ISIS-2362: add new supporting method
naming convention
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 5bf00e8 ISIS-2362: add new supporting method naming convention
5bf00e8 is described below
commit 5bf00e8a897e1b213972ca19f09080b0d48ec060
Author: Andi Huber <ah...@apache.org>
AuthorDate: Fri Jul 17 19:09:29 2020 +0200
ISIS-2362: add new supporting method naming convention
- prepares the framework to support multiple method naming conventions
- for mixins we allow supporting methods to reference their
corresponding action parameter by name only (instead of number and
action name)
- eg. valid mixin code now
- - public int act(int a, int b){...}
- - public int defaultA(...){...}
- - public int[] choicesB(...){...}
---
.../isis/core/metamodel/facets/MethodFinder2.java | 169 +++++++++++++++++++++
.../metamodel/facets/MethodLiteralConstants.java | 28 +++-
.../MethodPrefixBasedFacetFactoryAbstract.java | 6 +-
.../core/metamodel/facets/ParameterSupport.java | 65 ++++----
.../ActionDefaultsFacetViaMethodFactory.java | 9 +-
.../ActionValidationFacetViaMethodFactory.java | 8 +-
.../DisableForContextFacetViaMethodFactory.java | 12 +-
.../HideForContextFacetViaMethodFactory.java | 12 +-
...ParameterAutoCompleteFacetViaMethodFactory.java | 4 +-
.../method/ActionChoicesFacetViaMethodFactory.java | 6 +-
...ctionParameterChoicesFacetViaMethodFactory.java | 6 +-
...tionParameterDefaultsFacetViaMethodFactory.java | 4 +-
...tionParameterDisabledFacetViaMethodFactory.java | 4 +-
...ActionParameterHiddenFacetViaMethodFactory.java | 4 +-
...onParameterValidationFacetViaMethodFactory.java | 4 +-
.../PropertyAutoCompleteFacetMethodFactory.java | 10 +-
.../PropertyChoicesFacetViaMethodFactory.java | 11 +-
.../PropertyDefaultFacetViaMethodFactory.java | 10 +-
.../PropertyValidateFacetViaMethodFactory.java | 9 +-
.../InteractionNpmDemo_biArgDisabled.java | 5 +-
.../InteractionNpmDemo_biArgEnabled.java | 12 +-
.../testdomain/interact/NewParameterModelTest.java | 13 +-
22 files changed, 313 insertions(+), 98 deletions(-)
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/MethodFinder2.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/MethodFinder2.java
new file mode 100644
index 0000000..d586f71
--- /dev/null
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/MethodFinder2.java
@@ -0,0 +1,169 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.isis.core.metamodel.facets;
+
+import java.lang.reflect.Method;
+
+import org.apache.isis.core.commons.collections.Can;
+import org.apache.isis.core.commons.internal.base._NullSafe;
+import org.apache.isis.core.metamodel.facets.MethodFinderUtils.MethodAndPpmConstructor;
+
+/**
+ * An extension to {@link MethodFinderUtils} in support of multiple simultaneous naming conventions.
+ * @apiNote each method name candidate is processed in sequence as given by {@code Can<String> names},
+ * first one found wins
+ */
+//@Log4j2
+public final class MethodFinder2 {
+
+ public static Method findMethod(
+ final Class<?> type,
+ final Can<String> names,
+ final Class<?> expectedReturnType,
+ final Class<?>[] paramTypes) {
+
+ return names.stream()
+ .distinct()
+ .map(name->MethodFinderUtils
+ .findMethod(type, name, expectedReturnType, paramTypes))
+ .filter(_NullSafe::isPresent)
+ .findFirst()
+ .orElse(null);
+ }
+
+ // -- SEARCH FOR MULTIPLE NAME CANDIDATES
+
+ public static Method findMethod_returningBoolean(
+ final Class<?> type,
+ final Can<String> names,
+ final Class<?>[] paramTypes) {
+ return names.stream()
+ .distinct()
+ .map(name->MethodFinderUtils
+ .findMethod_returningBoolean(type, name, paramTypes))
+ .filter(_NullSafe::isPresent)
+ .findFirst()
+ .orElse(null);
+ }
+
+ public static Method findMethod_returningText(
+ final Class<?> type,
+ final Can<String> names,
+ final Class<?>[] paramTypes) {
+ return names.stream()
+ .distinct()
+ .map(name->MethodFinderUtils
+ .findMethod_returningText(type, name, paramTypes))
+ .filter(_NullSafe::isPresent)
+ .findFirst()
+ .orElse(null);
+ }
+
+ public static Method findMethod_returningNonScalar(
+ final Class<?> type,
+ final Can<String> names,
+ final Class<?> elementReturnType,
+ final Class<?>[] paramTypes) {
+ return names.stream()
+ .distinct()
+ .map(name->MethodFinderUtils
+ .findMethod_returningNonScalar(type, name, elementReturnType, paramTypes))
+ .filter(_NullSafe::isPresent)
+ .findFirst()
+ .orElse(null);
+ }
+
+
+ // -- SEARCH FOR MULTIPLE NAME CANDIDATES (PPM)
+
+ public static MethodAndPpmConstructor findMethodWithPPMArg(
+ final Class<?> type,
+ final Can<String> names,
+ final Class<?> returnType,
+ final Class<?>[] paramTypes,
+ final Can<Class<?>> additionalParamTypes) {
+ return names.stream()
+ .distinct()
+ .map(name->MethodFinderUtils
+ .findMethodWithPPMArg(type, name, returnType, paramTypes, additionalParamTypes))
+ .filter(_NullSafe::isPresent)
+ .findFirst()
+ .orElse(null);
+ }
+
+ public static MethodAndPpmConstructor findMethodWithPPMArg_returningAnyOf(
+ final Class<?>[] returnTypes,
+ final Class<?> type,
+ final Can<String> names,
+ final Class<?>[] paramTypes,
+ final Can<Class<?>> additionalParamTypes) {
+ return names.stream()
+ .distinct()
+ .map(name->MethodFinderUtils
+ .findMethodWithPPMArg_returningAnyOf(returnTypes, type, name, paramTypes, additionalParamTypes))
+ .filter(_NullSafe::isPresent)
+ .findFirst()
+ .orElse(null);
+ }
+
+ public static MethodAndPpmConstructor findMethodWithPPMArg_returningBoolean(
+ final Class<?> type,
+ final Can<String> names,
+ final Class<?>[] paramTypes,
+ final Can<Class<?>> additionalParamTypes) {
+ return names.stream()
+ .distinct()
+ .map(name->MethodFinderUtils
+ .findMethodWithPPMArg_returningBoolean(type, name, paramTypes, additionalParamTypes))
+ .filter(_NullSafe::isPresent)
+ .findFirst()
+ .orElse(null);
+ }
+
+ public static MethodAndPpmConstructor findMethodWithPPMArg_returningText(
+ final Class<?> type,
+ final Can<String> names,
+ final Class<?>[] paramTypes,
+ final Can<Class<?>> additionalParamTypes) {
+ return names.stream()
+ .distinct()
+ .map(name->MethodFinderUtils
+ .findMethodWithPPMArg_returningText(type, name, paramTypes, additionalParamTypes))
+ .filter(_NullSafe::isPresent)
+ .findFirst()
+ .orElse(null);
+ }
+
+ public static MethodAndPpmConstructor findMethodWithPPMArg_returningNonScalar(
+ final Class<?> type,
+ final Can<String> names,
+ final Class<?> elementReturnType,
+ final Class<?>[] paramTypes,
+ final Can<Class<?>> additionalParamTypes) {
+ return names.stream()
+ .distinct()
+ .map(name->MethodFinderUtils
+ .findMethodWithPPMArg_returningNonScalar(type, name, elementReturnType, paramTypes, additionalParamTypes))
+ .filter(_NullSafe::isPresent)
+ .findFirst()
+ .orElse(null);
+ }
+
+
+}
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/MethodLiteralConstants.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/MethodLiteralConstants.java
index ff2f801..3b80695 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/MethodLiteralConstants.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/MethodLiteralConstants.java
@@ -79,16 +79,16 @@ public final class MethodLiteralConstants {
@Override
protected String getActionSupportingMethodName(Method actionMethod, String prefix) {
- final String capitalizedName =
+ final String capitalizedActionName =
StringExtensions.asCapitalizedName(actionMethod.getName());
- return prefix + capitalizedName;
+ return prefix + capitalizedActionName;
}
@Override
protected String getParameterSupportingMethodName(Method actionMethod, String prefix, int paramNum) {
- final String capitalizedName =
+ final String capitalizedActionName =
StringExtensions.asCapitalizedName(actionMethod.getName());
- return prefix + paramNum + capitalizedName;
+ return prefix + paramNum + capitalizedActionName;
}
@Override
@@ -110,7 +110,27 @@ public final class MethodLiteralConstants {
return prefix + capitalizedName;
}
+ },
+
+ /** version 2.x, introduced for mixins eg. hide(...), hideParamname(...)*/
+ PREFIX_PARAMNAME_USING_PARAMETERS_RECORD {
+ @Override
+ protected String getActionSupportingMethodName(Method actionMethod, String prefix) {
+ return prefix;
+ }
+ @Override
+ protected String getParameterSupportingMethodName(Method actionMethod, String prefix, int paramNum) {
+ final String capitalizedParamName =
+ StringExtensions.asCapitalizedName(actionMethod.getParameters()[paramNum].getName());
+ return prefix + capitalizedParamName;
+ }
+ @Override
+ protected String getMemberSupportingMethodName(Member member, String prefix) {
+ // same as classic ???
+ return PREFIX_PARAMNUM_ACTION.getMemberSupportingMethodName(member, prefix);
+ }
}
+
;
protected abstract String getActionSupportingMethodName(Method actionMethod, String prefix);
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/MethodPrefixBasedFacetFactoryAbstract.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/MethodPrefixBasedFacetFactoryAbstract.java
index d5302ef..03fe30c 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/MethodPrefixBasedFacetFactoryAbstract.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/MethodPrefixBasedFacetFactoryAbstract.java
@@ -36,8 +36,10 @@ public abstract class MethodPrefixBasedFacetFactoryAbstract
extends FacetFactoryAbstract
implements MethodPrefixBasedFacetFactory {
- protected static final SupportingMethodNamingConvention PREFIX_BASED_NAMING =
- SupportingMethodNamingConvention.PREFIX_PARAMNUM_ACTION;
+ protected static final Can<SupportingMethodNamingConvention> PREFIX_BASED_NAMING =
+ Can.of(
+ SupportingMethodNamingConvention.PREFIX_PARAMNUM_ACTION,
+ SupportingMethodNamingConvention.PREFIX_PARAMNAME_USING_PARAMETERS_RECORD); // new since v2 [ISIS-2362]
@Getter(onMethod = @__(@Override))
private final Can<String> prefixes;
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 5c64a19..70d8cd3 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
@@ -64,7 +64,7 @@ public class ParameterSupport {
}
@NonNull FacetFactory.ProcessMethodContext processMethodContext;
- @NonNull IntFunction<String> paramIndexToMethodName;
+ @NonNull Can<IntFunction<String>> paramIndexToMethodNameProviders;
@NonNull EnumSet<SearchAlgorithm> searchAlgorithms;
@NonNull ReturnType returnType;
@@ -72,6 +72,12 @@ public class ParameterSupport {
@Getter(lazy = true)
Class<?>[] paramTypes = getProcessMethodContext().getMethod().getParameterTypes();
+
+ Can<String> getSupporingMethodNameCandidates(final int paramNr) {
+ //TODO optimization make unique, without loosing order
+ return getParamIndexToMethodNameProviders()
+ .map(provider->provider.apply(paramNr));
+ }
}
@Value(staticConstructor = "of")
@@ -140,7 +146,8 @@ public class ParameterSupport {
val processMethodContext = searchRequest.getProcessMethodContext();
val type = processMethodContext.getCls();
val paramTypes = searchRequest.getParamTypes();
- val methodName = searchRequest.getParamIndexToMethodName().apply(paramIndex);
+ val methodNames = searchRequest.getSupporingMethodNameCandidates(paramIndex);
+
val paramType = paramTypes[paramIndex];
val additionalParamTypes = Can.ofNullable(searchRequest.getAdditionalParamType());
@@ -148,20 +155,20 @@ public class ParameterSupport {
switch(searchRequest.getReturnType()) {
case BOOLEAN:
- supportingMethodAndPpmConstructor = MethodFinderUtils
- .findMethodWithPPMArg_returningBoolean(type, methodName, paramTypes, additionalParamTypes);
+ supportingMethodAndPpmConstructor = MethodFinder2
+ .findMethodWithPPMArg_returningBoolean(type, methodNames, paramTypes, additionalParamTypes);
break;
case TEXT:
- supportingMethodAndPpmConstructor = MethodFinderUtils
- .findMethodWithPPMArg_returningText(type, methodName, paramTypes, additionalParamTypes);
+ supportingMethodAndPpmConstructor = MethodFinder2
+ .findMethodWithPPMArg_returningText(type, methodNames, paramTypes, additionalParamTypes);
break;
case NON_SCALAR:
- supportingMethodAndPpmConstructor = MethodFinderUtils
- .findMethodWithPPMArg_returningNonScalar(type, methodName, paramType, paramTypes, additionalParamTypes);
+ supportingMethodAndPpmConstructor = MethodFinder2
+ .findMethodWithPPMArg_returningNonScalar(type, methodNames, paramType, paramTypes, additionalParamTypes);
break;
case SAME_AS_PARAMETER_TYPE:
- supportingMethodAndPpmConstructor = MethodFinderUtils
- .findMethodWithPPMArg(type, methodName, paramType, paramTypes, additionalParamTypes);
+ supportingMethodAndPpmConstructor = MethodFinder2
+ .findMethodWithPPMArg(type, methodNames, paramType, paramTypes, additionalParamTypes);
break;
default:
supportingMethodAndPpmConstructor = null;
@@ -196,7 +203,7 @@ public class ParameterSupport {
val processMethodContext = searchRequest.getProcessMethodContext();
val type = processMethodContext.getCls();
val paramTypes = searchRequest.getParamTypes();
- val methodName = searchRequest.getParamIndexToMethodName().apply(paramIndex);
+ val methodNames = searchRequest.getSupporingMethodNameCandidates(paramIndex);
val paramType = paramTypes[paramIndex];
val singleArg = new Class<?>[]{paramType};
@@ -204,20 +211,20 @@ public class ParameterSupport {
switch(searchRequest.getReturnType()) {
case BOOLEAN:
- supportingMethod = MethodFinderUtils
- .findMethod_returningBoolean(type, methodName, singleArg);
+ supportingMethod = MethodFinder2
+ .findMethod_returningBoolean(type, methodNames, singleArg);
break;
case TEXT:
- supportingMethod = MethodFinderUtils
- .findMethod_returningText(type, methodName, singleArg);
+ supportingMethod = MethodFinder2
+ .findMethod_returningText(type, methodNames, singleArg);
break;
case NON_SCALAR:
- supportingMethod = MethodFinderUtils
- .findMethod_returningNonScalar(type, methodName, paramType, singleArg);
+ supportingMethod = MethodFinder2
+ .findMethod_returningNonScalar(type, methodNames, paramType, singleArg);
break;
case SAME_AS_PARAMETER_TYPE:
- supportingMethod = MethodFinderUtils
- .findMethod(type, methodName, paramType, singleArg);
+ supportingMethod = MethodFinder2
+ .findMethod(type, methodNames, paramType, singleArg);
break;
default:
supportingMethod = null;
@@ -242,7 +249,7 @@ public class ParameterSupport {
val processMethodContext = searchRequest.getProcessMethodContext();
val type = processMethodContext.getCls();
val paramTypes = searchRequest.getParamTypes();
- val methodName = searchRequest.getParamIndexToMethodName().apply(paramIndex);
+ val methodNames = searchRequest.getSupporingMethodNameCandidates(paramIndex);
val paramType = paramTypes[paramIndex];
val additionalParamType = searchRequest.getAdditionalParamType();
val additionalParamCount = additionalParamType!=null ? 1 : 0;
@@ -256,20 +263,20 @@ public class ParameterSupport {
switch(searchRequest.getReturnType()) {
case BOOLEAN:
- supportingMethod = MethodFinderUtils
- .findMethod_returningBoolean(type, methodName, paramTypesToLookFor);
+ supportingMethod = MethodFinder2
+ .findMethod_returningBoolean(type, methodNames, paramTypesToLookFor);
break;
case TEXT:
- supportingMethod = MethodFinderUtils
- .findMethod_returningText(type, methodName, paramTypesToLookFor);
+ supportingMethod = MethodFinder2
+ .findMethod_returningText(type, methodNames, paramTypesToLookFor);
break;
case NON_SCALAR:
- supportingMethod = MethodFinderUtils
- .findMethod_returningNonScalar(type, methodName, paramType, paramTypesToLookFor);
+ supportingMethod = MethodFinder2
+ .findMethod_returningNonScalar(type, methodNames, paramType, paramTypesToLookFor);
break;
case SAME_AS_PARAMETER_TYPE:
- supportingMethod = MethodFinderUtils
- .findMethod(type, methodName, paramType, paramTypesToLookFor);
+ supportingMethod = MethodFinder2
+ .findMethod(type, methodNames, paramType, paramTypesToLookFor);
break;
default:
supportingMethod = null;
@@ -322,7 +329,7 @@ public class ParameterSupport {
return String.format("%s.%s(%s) : %s",
searchRequest.getProcessMethodContext().getCls().getSimpleName(),
- searchRequest.getParamIndexToMethodName().apply(paramIndex),
+ searchRequest.getSupporingMethodNameCandidates(paramIndex),
toString(searchRequest.getParamTypes()),
searchRequest.getReturnType().name()
);
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/actions/defaults/method/ActionDefaultsFacetViaMethodFactory.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/actions/defaults/method/ActionDefaultsFacetViaMethodFactory.java
index 90b331e..2e35cbf 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/actions/defaults/method/ActionDefaultsFacetViaMethodFactory.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/actions/defaults/method/ActionDefaultsFacetViaMethodFactory.java
@@ -23,10 +23,9 @@ import java.lang.reflect.Method;
import java.util.List;
import org.apache.isis.core.commons.collections.Can;
-import org.apache.isis.core.commons.internal._Constants;
import org.apache.isis.core.metamodel.facetapi.Facet;
import org.apache.isis.core.metamodel.facetapi.FeatureType;
-import org.apache.isis.core.metamodel.facets.MethodFinderUtils;
+import org.apache.isis.core.metamodel.facets.MethodFinder2;
import org.apache.isis.core.metamodel.facets.MethodLiteralConstants;
import org.apache.isis.core.metamodel.facets.MethodPrefixBasedFacetFactoryAbstract;
@@ -71,10 +70,10 @@ public class ActionDefaultsFacetViaMethodFactory extends MethodPrefixBasedFacetF
final Class<?> returnType) {
val actionMethod = processMethodContext.getMethod();
- val namingConvention = PREFIX_BASED_NAMING.providerForAction(actionMethod, PREFIX);
val cls = processMethodContext.getCls();
- return MethodFinderUtils.findMethod(
- cls, namingConvention.get(), returnType, NO_ARG);
+ val namingConvention = PREFIX_BASED_NAMING.map(naming->naming.providerForAction(actionMethod, PREFIX));
+ return MethodFinder2.findMethod(
+ cls, namingConvention.map(x->x.get()), returnType, NO_ARG);
}
}
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 cfd2e60..2483550 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
@@ -24,7 +24,7 @@ import java.lang.reflect.Method;
import org.apache.isis.applib.services.i18n.TranslationService;
import org.apache.isis.core.commons.collections.Can;
import org.apache.isis.core.metamodel.facetapi.FeatureType;
-import org.apache.isis.core.metamodel.facets.MethodFinderUtils;
+import org.apache.isis.core.metamodel.facets.MethodFinder2;
import org.apache.isis.core.metamodel.facets.MethodLiteralConstants;
import org.apache.isis.core.metamodel.facets.MethodPrefixBasedFacetFactoryAbstract;
import org.apache.isis.core.metamodel.facets.actions.validate.ActionValidationFacet;
@@ -56,11 +56,11 @@ extends MethodPrefixBasedFacetFactoryAbstract {
val paramTypes = actionMethod.getParameterTypes();
- val namingConvention = PREFIX_BASED_NAMING.providerForAction(actionMethod, PREFIX);
+ val namingConvention = PREFIX_BASED_NAMING.map(naming->naming.providerForAction(actionMethod, PREFIX));
- final Method validateMethod = MethodFinderUtils.findMethod_returningText(
+ final Method validateMethod = MethodFinder2.findMethod_returningText(
cls,
- namingConvention.get(),
+ namingConvention.map(x->x.get()),
paramTypes);
if (validateMethod == null) {
return;
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/members/disabled/method/DisableForContextFacetViaMethodFactory.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/members/disabled/method/DisableForContextFacetViaMethodFactory.java
index 5da2fb2..bd819e3 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/members/disabled/method/DisableForContextFacetViaMethodFactory.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/members/disabled/method/DisableForContextFacetViaMethodFactory.java
@@ -26,7 +26,7 @@ import org.apache.isis.core.commons.collections.Can;
import org.apache.isis.core.metamodel.facetapi.FacetHolder;
import org.apache.isis.core.metamodel.facetapi.FeatureType;
import org.apache.isis.core.metamodel.facetapi.IdentifiedHolder;
-import org.apache.isis.core.metamodel.facets.MethodFinderUtils;
+import org.apache.isis.core.metamodel.facets.MethodFinder2;
import org.apache.isis.core.metamodel.facets.MethodLiteralConstants;
import org.apache.isis.core.metamodel.facets.MethodPrefixBasedFacetFactoryAbstract;
@@ -54,22 +54,22 @@ extends MethodPrefixBasedFacetFactoryAbstract {
Method disableMethod = null;
- val namingConvention = PREFIX_BASED_NAMING.providerForMember(actionOrGetter, PREFIX);
+ val namingConvention = PREFIX_BASED_NAMING.map(naming->naming.providerForMember(actionOrGetter, PREFIX));
boolean noParamsOnly = getConfiguration().getCore().getMetaModel().getValidator().isNoParamsOnly();
boolean searchExactMatch = !noParamsOnly;
if(searchExactMatch) {
// search for exact match
- disableMethod = MethodFinderUtils.findMethod_returningText(
+ disableMethod = MethodFinder2.findMethod_returningText(
cls,
- namingConvention.get(),
+ namingConvention.map(x->x.get()),
actionOrGetter.getParameterTypes());
}
if (disableMethod == null) {
// search for no-arg version
- disableMethod = MethodFinderUtils.findMethod_returningText(
+ disableMethod = MethodFinder2.findMethod_returningText(
cls,
- namingConvention.get(),
+ namingConvention.map(x->x.get()),
NO_ARG);
}
if (disableMethod == null) {
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/members/hidden/method/HideForContextFacetViaMethodFactory.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/members/hidden/method/HideForContextFacetViaMethodFactory.java
index d1178db..5e30d6e 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/members/hidden/method/HideForContextFacetViaMethodFactory.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/members/hidden/method/HideForContextFacetViaMethodFactory.java
@@ -25,7 +25,7 @@ import org.apache.isis.core.commons.collections.Can;
import org.apache.isis.core.metamodel.facetapi.FacetHolder;
import org.apache.isis.core.metamodel.facetapi.FacetUtil;
import org.apache.isis.core.metamodel.facetapi.FeatureType;
-import org.apache.isis.core.metamodel.facets.MethodFinderUtils;
+import org.apache.isis.core.metamodel.facets.MethodFinder2;
import org.apache.isis.core.metamodel.facets.MethodLiteralConstants;
import org.apache.isis.core.metamodel.facets.MethodPrefixBasedFacetFactoryAbstract;
@@ -49,12 +49,12 @@ extends MethodPrefixBasedFacetFactoryAbstract {
final Method actionOrGetter = processMethodContext.getMethod();
- val namingConvention = PREFIX_BASED_NAMING.providerForMember(actionOrGetter, PREFIX);
+ val namingConvention = PREFIX_BASED_NAMING.map(naming->naming.providerForMember(actionOrGetter, PREFIX));
val cls = processMethodContext.getCls();
- Method hideMethod = MethodFinderUtils.findMethod(
+ Method hideMethod = MethodFinder2.findMethod(
cls,
- namingConvention.get(),
+ namingConvention.map(x->x.get()),
boolean.class,
NO_ARG);
if (hideMethod == null) {
@@ -62,9 +62,9 @@ extends MethodPrefixBasedFacetFactoryAbstract {
boolean noParamsOnly = getConfiguration().getCore().getMetaModel().getValidator().isNoParamsOnly();
boolean searchExactMatch = !noParamsOnly;
if(searchExactMatch) {
- hideMethod = MethodFinderUtils.findMethod(
+ hideMethod = MethodFinder2.findMethod(
cls,
- namingConvention.get(),
+ namingConvention.map(x->x.get()),
boolean.class,
actionOrGetter.getParameterTypes());
}
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/param/autocomplete/method/ActionParameterAutoCompleteFacetViaMethodFactory.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/param/autocomplete/method/ActionParameterAutoCompleteFacetViaMethodFactory.java
index 2dbea29..9c775de 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/param/autocomplete/method/ActionParameterAutoCompleteFacetViaMethodFactory.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/param/autocomplete/method/ActionParameterAutoCompleteFacetViaMethodFactory.java
@@ -54,13 +54,13 @@ public class ActionParameterAutoCompleteFacetViaMethodFactory extends MethodPref
// attach ActionParameterChoicesFacet if autoCompleteNumMethod is found ...
val actionMethod = processMethodContext.getMethod();
- val namingConvention = PREFIX_BASED_NAMING.providerForParam(actionMethod, PREFIX);
+ val namingConvention = PREFIX_BASED_NAMING.map(naming->naming.providerForParam(actionMethod, PREFIX));
val searchRequest = ParameterSupport.ParamSupportingMethodSearchRequest.builder()
.processMethodContext(processMethodContext)
.returnType(ReturnType.NON_SCALAR)
.additionalParamType(String.class)
- .paramIndexToMethodName(namingConvention)
+ .paramIndexToMethodNameProviders(namingConvention)
.searchAlgorithms(EnumSet.of(SearchAlgorithm.PPM, SearchAlgorithm.SWEEP))
.build();
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/param/choices/method/ActionChoicesFacetViaMethodFactory.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/param/choices/method/ActionChoicesFacetViaMethodFactory.java
index 6698a28..73ab9f3 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/param/choices/method/ActionChoicesFacetViaMethodFactory.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/param/choices/method/ActionChoicesFacetViaMethodFactory.java
@@ -25,7 +25,7 @@ import java.util.Collection;
import org.apache.isis.core.commons.collections.Can;
import org.apache.isis.core.metamodel.facetapi.FacetHolder;
import org.apache.isis.core.metamodel.facetapi.FeatureType;
-import org.apache.isis.core.metamodel.facets.MethodFinderUtils;
+import org.apache.isis.core.metamodel.facets.MethodFinder2;
import org.apache.isis.core.metamodel.facets.MethodLiteralConstants;
import org.apache.isis.core.metamodel.facets.MethodPrefixBasedFacetFactoryAbstract;
@@ -80,10 +80,10 @@ public class ActionChoicesFacetViaMethodFactory extends MethodPrefixBasedFacetFa
val cls = processMethodContext.getCls();
val actionMethod = processMethodContext.getMethod();
- val namingConvention = PREFIX_BASED_NAMING.providerForAction(actionMethod, PREFIX);
+ val namingConvention = PREFIX_BASED_NAMING.map(naming->naming.providerForAction(actionMethod, PREFIX));
Method choicesMethod =
- MethodFinderUtils.findMethod(cls, namingConvention.get(), returnType, NO_ARG);
+ MethodFinder2.findMethod(cls, namingConvention.map(x->x.get()), returnType, NO_ARG);
return choicesMethod;
}
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/param/choices/methodnum/ActionParameterChoicesFacetViaMethodFactory.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/param/choices/methodnum/ActionParameterChoicesFacetViaMethodFactory.java
index b2167cf..7f034c3 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/param/choices/methodnum/ActionParameterChoicesFacetViaMethodFactory.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/param/choices/methodnum/ActionParameterChoicesFacetViaMethodFactory.java
@@ -27,8 +27,8 @@ import org.apache.isis.core.metamodel.facetapi.FeatureType;
import org.apache.isis.core.metamodel.facets.MethodLiteralConstants;
import org.apache.isis.core.metamodel.facets.MethodPrefixBasedFacetFactoryAbstract;
import org.apache.isis.core.metamodel.facets.ParameterSupport;
-import org.apache.isis.core.metamodel.facets.ParameterSupport.SearchAlgorithm;
import org.apache.isis.core.metamodel.facets.ParameterSupport.ParamSupportingMethodSearchRequest.ReturnType;
+import org.apache.isis.core.metamodel.facets.ParameterSupport.SearchAlgorithm;
import org.apache.isis.core.metamodel.facets.param.choices.ActionChoicesFacet;
import lombok.val;
@@ -59,12 +59,12 @@ extends MethodPrefixBasedFacetFactoryAbstract {
// attach ActionChoicesFacet if choicesNumMethod is found ...
val actionMethod = processMethodContext.getMethod();
- val namingConvention = PREFIX_BASED_NAMING.providerForParam(actionMethod, PREFIX);
+ val namingConvention = PREFIX_BASED_NAMING.map(naming->naming.providerForParam(actionMethod, PREFIX));
val searchRequest = ParameterSupport.ParamSupportingMethodSearchRequest.builder()
.processMethodContext(processMethodContext)
.returnType(ReturnType.NON_SCALAR)
- .paramIndexToMethodName(namingConvention)
+ .paramIndexToMethodNameProviders(namingConvention)
.searchAlgorithms(EnumSet.of(SearchAlgorithm.PPM, SearchAlgorithm.SWEEP))
.build();
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/param/defaults/methodnum/ActionParameterDefaultsFacetViaMethodFactory.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/param/defaults/methodnum/ActionParameterDefaultsFacetViaMethodFactory.java
index 417ecc6..b11d387 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/param/defaults/methodnum/ActionParameterDefaultsFacetViaMethodFactory.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/param/defaults/methodnum/ActionParameterDefaultsFacetViaMethodFactory.java
@@ -62,12 +62,12 @@ public class ActionParameterDefaultsFacetViaMethodFactory extends MethodPrefixBa
// attach DefaultFacetForParameters if defaultNumMethod is found ...
val actionMethod = processMethodContext.getMethod();
- val namingConvention = PREFIX_BASED_NAMING.providerForParam(actionMethod, PREFIX);
+ val namingConvention = PREFIX_BASED_NAMING.map(naming->naming.providerForParam(actionMethod, PREFIX));
val searchRequest = ParameterSupport.ParamSupportingMethodSearchRequest.builder()
.processMethodContext(processMethodContext)
.returnType(ReturnType.SAME_AS_PARAMETER_TYPE)
- .paramIndexToMethodName(namingConvention)
+ .paramIndexToMethodNameProviders(namingConvention)
.searchAlgorithms(EnumSet.of(SearchAlgorithm.PPM, SearchAlgorithm.SWEEP))
.build();
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/param/disable/method/ActionParameterDisabledFacetViaMethodFactory.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/param/disable/method/ActionParameterDisabledFacetViaMethodFactory.java
index 5de0cb9..cec518d 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/param/disable/method/ActionParameterDisabledFacetViaMethodFactory.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/param/disable/method/ActionParameterDisabledFacetViaMethodFactory.java
@@ -58,12 +58,12 @@ extends MethodPrefixBasedFacetFactoryAbstract {
// attach ActionParameterDisabledFacet if disableNumMethod is found ...
val actionMethod = processMethodContext.getMethod();
- val namingConvention = PREFIX_BASED_NAMING.providerForParam(actionMethod, PREFIX);
+ val namingConvention = PREFIX_BASED_NAMING.map(naming->naming.providerForParam(actionMethod, PREFIX));
val searchRequest = ParameterSupport.ParamSupportingMethodSearchRequest.builder()
.processMethodContext(processMethodContext)
.returnType(ReturnType.TEXT)
- .paramIndexToMethodName(namingConvention)
+ .paramIndexToMethodNameProviders(namingConvention)
.searchAlgorithms(EnumSet.of(SearchAlgorithm.PPM, SearchAlgorithm.SWEEP))
.build();
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/param/hide/method/ActionParameterHiddenFacetViaMethodFactory.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/param/hide/method/ActionParameterHiddenFacetViaMethodFactory.java
index 909800e..07e6ec8 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/param/hide/method/ActionParameterHiddenFacetViaMethodFactory.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/param/hide/method/ActionParameterHiddenFacetViaMethodFactory.java
@@ -57,12 +57,12 @@ public class ActionParameterHiddenFacetViaMethodFactory extends MethodPrefixBase
// attach ActionParameterHiddenFacet if hideNumMethod is found ...
val actionMethod = processMethodContext.getMethod();
- val namingConvention = PREFIX_BASED_NAMING.providerForParam(actionMethod, PREFIX);
+ val namingConvention = PREFIX_BASED_NAMING.map(naming->naming.providerForParam(actionMethod, PREFIX));
val searchRequest = ParameterSupport.ParamSupportingMethodSearchRequest.builder()
.processMethodContext(processMethodContext)
.returnType(ReturnType.BOOLEAN)
- .paramIndexToMethodName(namingConvention)
+ .paramIndexToMethodNameProviders(namingConvention)
.searchAlgorithms(EnumSet.of(SearchAlgorithm.PPM, SearchAlgorithm.SWEEP))
.build();
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/param/validate/method/ActionParameterValidationFacetViaMethodFactory.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/param/validate/method/ActionParameterValidationFacetViaMethodFactory.java
index 8887017..90cbb2f 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/param/validate/method/ActionParameterValidationFacetViaMethodFactory.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/param/validate/method/ActionParameterValidationFacetViaMethodFactory.java
@@ -58,12 +58,12 @@ public class ActionParameterValidationFacetViaMethodFactory extends MethodPrefix
// in any case single-arg, either same as param-type or PPM style
val actionMethod = processMethodContext.getMethod();
- val namingConvention = PREFIX_BASED_NAMING.providerForParam(actionMethod, PREFIX);
+ val namingConvention = PREFIX_BASED_NAMING.map(naming->naming.providerForParam(actionMethod, PREFIX));
val searchRequest = ParameterSupport.ParamSupportingMethodSearchRequest.builder()
.processMethodContext(processMethodContext)
.returnType(ReturnType.TEXT)
- .paramIndexToMethodName(namingConvention)
+ .paramIndexToMethodNameProviders(namingConvention)
.searchAlgorithms(EnumSet.of(SearchAlgorithm.PPM, SearchAlgorithm.SINGLEARG_BEING_PARAMTYPE))
.build();
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 2e7bb6b..30af672 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
@@ -23,7 +23,7 @@ import org.apache.isis.core.commons.collections.Can;
import org.apache.isis.core.metamodel.facetapi.FacetHolder;
import org.apache.isis.core.metamodel.facetapi.FacetUtil;
import org.apache.isis.core.metamodel.facetapi.FeatureType;
-import org.apache.isis.core.metamodel.facets.MethodFinderUtils;
+import org.apache.isis.core.metamodel.facets.MethodFinder2;
import org.apache.isis.core.metamodel.facets.MethodLiteralConstants;
import org.apache.isis.core.metamodel.facets.MethodPrefixBasedFacetFactoryAbstract;
@@ -54,16 +54,16 @@ public class PropertyAutoCompleteFacetMethodFactory extends MethodPrefixBasedFac
val getterOrMixinMain = processMethodContext.getMethod();
val namingConvention = processMethodContext.isMixinMain()
- ? PREFIX_BASED_NAMING.providerForAction(getterOrMixinMain, PREFIX)
- : PREFIX_BASED_NAMING.providerForMember(getterOrMixinMain, PREFIX); // handles getters
+ ? PREFIX_BASED_NAMING.map(naming->naming.providerForAction(getterOrMixinMain, PREFIX))
+ : PREFIX_BASED_NAMING.map(naming->naming.providerForMember(getterOrMixinMain, PREFIX)); // handles getters
val cls = processMethodContext.getCls();
val returnType = getterOrMixinMain.getReturnType();
- val autoCompleteMethod = MethodFinderUtils
+ val autoCompleteMethod = MethodFinder2
.findMethod(
cls,
- namingConvention.get(),
+ namingConvention.map(x->x.get()),
NO_RETURN,
STRING_ARG);
if (autoCompleteMethod == null) {
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 c703074..7f0ea43 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
@@ -23,7 +23,7 @@ import org.apache.isis.core.commons.collections.Can;
import org.apache.isis.core.metamodel.facetapi.FacetHolder;
import org.apache.isis.core.metamodel.facetapi.FacetUtil;
import org.apache.isis.core.metamodel.facetapi.FeatureType;
-import org.apache.isis.core.metamodel.facets.MethodFinderUtils;
+import org.apache.isis.core.metamodel.facets.MethodFinder2;
import org.apache.isis.core.metamodel.facets.MethodLiteralConstants;
import org.apache.isis.core.metamodel.facets.MethodPrefixBasedFacetFactoryAbstract;
@@ -52,16 +52,17 @@ public class PropertyChoicesFacetViaMethodFactory extends MethodPrefixBasedFacet
}
val getterOrMixinMain = processMethodContext.getMethod();
+
val namingConvention = processMethodContext.isMixinMain()
- ? PREFIX_BASED_NAMING.providerForAction(getterOrMixinMain, PREFIX)
- : PREFIX_BASED_NAMING.providerForMember(getterOrMixinMain, PREFIX); // handles getters
+ ? PREFIX_BASED_NAMING.map(naming->naming.providerForAction(getterOrMixinMain, PREFIX))
+ : PREFIX_BASED_NAMING.map(naming->naming.providerForMember(getterOrMixinMain, PREFIX)); // handles getters
val cls = processMethodContext.getCls();
val returnType = getterOrMixinMain.getReturnType();
- val choicesMethod = MethodFinderUtils
+ val choicesMethod = MethodFinder2
.findMethod(
cls,
- namingConvention.get(),
+ namingConvention.map(x->x.get()),
NO_RETURN,
NO_ARG);
if (choicesMethod == null) {
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/properties/defaults/method/PropertyDefaultFacetViaMethodFactory.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/properties/defaults/method/PropertyDefaultFacetViaMethodFactory.java
index 612d218..29f57dd 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/properties/defaults/method/PropertyDefaultFacetViaMethodFactory.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/properties/defaults/method/PropertyDefaultFacetViaMethodFactory.java
@@ -23,7 +23,7 @@ import org.apache.isis.core.commons.collections.Can;
import org.apache.isis.core.metamodel.facetapi.FacetHolder;
import org.apache.isis.core.metamodel.facetapi.FacetUtil;
import org.apache.isis.core.metamodel.facetapi.FeatureType;
-import org.apache.isis.core.metamodel.facets.MethodFinderUtils;
+import org.apache.isis.core.metamodel.facets.MethodFinder2;
import org.apache.isis.core.metamodel.facets.MethodLiteralConstants;
import org.apache.isis.core.metamodel.facets.MethodPrefixBasedFacetFactoryAbstract;
@@ -53,15 +53,15 @@ public class PropertyDefaultFacetViaMethodFactory extends MethodPrefixBasedFacet
val getterOrMixinMain = processMethodContext.getMethod();
val namingConvention = processMethodContext.isMixinMain()
- ? PREFIX_BASED_NAMING.providerForAction(getterOrMixinMain, PREFIX)
- : PREFIX_BASED_NAMING.providerForMember(getterOrMixinMain, PREFIX); // handles getters
+ ? PREFIX_BASED_NAMING.map(naming->naming.providerForAction(getterOrMixinMain, PREFIX))
+ : PREFIX_BASED_NAMING.map(naming->naming.providerForMember(getterOrMixinMain, PREFIX)); // handles getters
val cls = processMethodContext.getCls();
val returnType = getterOrMixinMain.getReturnType();
- val method = MethodFinderUtils
+ val method = MethodFinder2
.findMethod(
cls,
- namingConvention.get(),
+ namingConvention.map(x->x.get()),
returnType,
NO_ARG);
if (method == null) {
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/properties/validating/method/PropertyValidateFacetViaMethodFactory.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/properties/validating/method/PropertyValidateFacetViaMethodFactory.java
index c572db0..b074d7f 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/properties/validating/method/PropertyValidateFacetViaMethodFactory.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/properties/validating/method/PropertyValidateFacetViaMethodFactory.java
@@ -21,7 +21,7 @@ package org.apache.isis.core.metamodel.facets.properties.validating.method;
import org.apache.isis.core.commons.collections.Can;
import org.apache.isis.core.metamodel.facetapi.FeatureType;
-import org.apache.isis.core.metamodel.facets.MethodFinderUtils;
+import org.apache.isis.core.metamodel.facets.MethodFinder2;
import org.apache.isis.core.metamodel.facets.MethodLiteralConstants;
import org.apache.isis.core.metamodel.facets.MethodPrefixBasedFacetFactoryAbstract;
@@ -45,12 +45,13 @@ public class PropertyValidateFacetViaMethodFactory extends MethodPrefixBasedFace
val cls = processMethodContext.getCls();
val getterMethod = processMethodContext.getMethod();
- val namingConvention = PREFIX_BASED_NAMING.providerForMember(getterMethod, PREFIX);
+
+ val namingConvention = PREFIX_BASED_NAMING.map(naming->naming.providerForMember(getterMethod, PREFIX));
val returnType = getterMethod.getReturnType();
- val validateMethod = MethodFinderUtils.findMethod_returningText(
+ val validateMethod = MethodFinder2.findMethod_returningText(
cls,
- namingConvention.get(),
+ namingConvention.map(x->x.get()),
new Class[] { returnType });
if (validateMethod == null) {
return;
diff --git a/examples/smoketests/stable/src/main/java/org/apache/isis/testdomain/model/interaction/InteractionNpmDemo_biArgDisabled.java b/examples/smoketests/stable/src/main/java/org/apache/isis/testdomain/model/interaction/InteractionNpmDemo_biArgDisabled.java
index 557193c..c88792e 100644
--- a/examples/smoketests/stable/src/main/java/org/apache/isis/testdomain/model/interaction/InteractionNpmDemo_biArgDisabled.java
+++ b/examples/smoketests/stable/src/main/java/org/apache/isis/testdomain/model/interaction/InteractionNpmDemo_biArgDisabled.java
@@ -50,8 +50,9 @@ public class InteractionNpmDemo_biArgDisabled {
}
//TODO[ISIS-2362] supporting methods (no arg): rename -> validate()
- @Model
- public String validateAct() {
+ //TODO[ISIS-2362] supporting methods (all args): rename -> validate(params)
+ //@Model //FIXME not recognized by method finders (metamodel)
+ public String validateAct(Parameters params) {
return "Never valid for demonstration.";
}
}
diff --git a/examples/smoketests/stable/src/main/java/org/apache/isis/testdomain/model/interaction/InteractionNpmDemo_biArgEnabled.java b/examples/smoketests/stable/src/main/java/org/apache/isis/testdomain/model/interaction/InteractionNpmDemo_biArgEnabled.java
index 8624a2c..cf88106 100644
--- a/examples/smoketests/stable/src/main/java/org/apache/isis/testdomain/model/interaction/InteractionNpmDemo_biArgEnabled.java
+++ b/examples/smoketests/stable/src/main/java/org/apache/isis/testdomain/model/interaction/InteractionNpmDemo_biArgEnabled.java
@@ -52,15 +52,19 @@ public class InteractionNpmDemo_biArgEnabled {
return a + b;
}
- //TODO[ISIS-2362] parameter supporting methods, to be referenced by param name defaultA(...), choicesB(...) ...
-
+ // -- PARAM 0
+
+ // [ISIS-2362] parameter supporting methods, to be referenced by param name
@Model
- public int default0Act(Parameters params) {
+ public int defaultA(Parameters params) {
return 5;
}
+ // -- PARAM 1
+
+ // [ISIS-2362] parameter supporting methods, to be referenced by param name
@Model
- public int[] choices1Act(Parameters params) {
+ public int[] choicesB(Parameters params) {
return new int[] {1, 2, 3, 4};
}
}
diff --git a/examples/smoketests/stable/src/test/java/org/apache/isis/testdomain/interact/NewParameterModelTest.java b/examples/smoketests/stable/src/test/java/org/apache/isis/testdomain/interact/NewParameterModelTest.java
index e29c945..bfbf846 100644
--- a/examples/smoketests/stable/src/test/java/org/apache/isis/testdomain/interact/NewParameterModelTest.java
+++ b/examples/smoketests/stable/src/test/java/org/apache/isis/testdomain/interact/NewParameterModelTest.java
@@ -18,9 +18,11 @@
*/
package org.apache.isis.testdomain.interact;
+import java.util.Collections;
import java.util.NoSuchElementException;
import java.util.stream.Collectors;
+import org.junit.jupiter.api.Disabled;
import org.junit.jupiter.api.Test;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.test.context.TestPropertySource;
@@ -65,7 +67,16 @@ import lombok.val;
IsisPresets.SilenceProgrammingModel
})
class NewParameterModelTest extends InteractionTestAbstract {
+
+ //InteractionNpmDemo_biArgDisabled#validateAct()
+
+ @Test// @Disabled("bug when processing ")
+ void metamodel_shouldBeValid() {
+ val specLoader = super.objectManager.getMetaModelContext().getSpecificationLoader();
+ assertEquals(Collections.<String>emptyList(), specLoader.getValidationResult().getMessages());
+ }
+
@Test
void paramAnnotations_whenNpm_shouldBeRecognized() {
@@ -171,7 +182,7 @@ class NewParameterModelTest extends InteractionTestAbstract {
assertTrue(param0Choices.getValue().isEmpty());
- val expectedChoices = new InteractionNpmDemo_biArgEnabled(null).choices1Act(null);
+ val expectedChoices = new InteractionNpmDemo_biArgEnabled(null).choicesB(null);
val actualChoices = param1Choices.getValue();
assertComponentWiseUnwrappedEquals(expectedChoices, actualChoices);