You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@isis.apache.org by da...@apache.org on 2022/08/30 07:35:10 UTC
[isis] 02/02: ISIS-3193: moves @Action(dependentDefaultsPolicy=...) to @Parameter(dependentDefaultsPolicy=...)
This is an automated email from the ASF dual-hosted git repository.
danhaywood pushed a commit to branch ISIS-3193
in repository https://gitbox.apache.org/repos/asf/isis.git
commit cf9c2715f6b308fd9e28d256b7ddbe5f087a0f64
Author: Dan Haywood <da...@haywood-associates.co.uk>
AuthorDate: Tue Aug 30 08:34:55 2022 +0100
ISIS-3193: moves @Action(dependentDefaultsPolicy=...) to @Parameter(dependentDefaultsPolicy=...)
---
.../applib/annotation/DependentDefaultsPolicy.java | 6 +++--
.../apache/isis/applib/annotation/Parameter.java | 12 +++++++++
.../apache/isis/core/config/IsisConfiguration.java | 31 +++++++++++++---------
.../config/metamodel/facets/ParameterPolicies.java | 2 +-
.../action/ActionAnnotationFacetFactory.java | 13 +--------
.../parameter/ParameterAnnotationFacetFactory.java | 27 ++++++++++++++++---
...ctionFacetForActionAnnotationAsConfigured.java} | 8 +++---
.../depdef/ParameterDependentDefaultsFacet.java} | 23 ++++++++--------
.../ParameterDependentDefaultsFacetAbstract.java} | 10 +++----
...endentDefaultsFacetForParameterAnnotation.java} | 8 +++---
...erDependentDefaultsFacetFromConfiguration.java} | 8 +++---
.../spec/feature/ObjectActionParameter.java | 2 +-
.../apache/isis/core/metamodel/util/Facets.java | 9 ++++---
13 files changed, 94 insertions(+), 65 deletions(-)
diff --git a/api/applib/src/main/java/org/apache/isis/applib/annotation/DependentDefaultsPolicy.java b/api/applib/src/main/java/org/apache/isis/applib/annotation/DependentDefaultsPolicy.java
index 3af2cf38d7..25983c4214 100644
--- a/api/applib/src/main/java/org/apache/isis/applib/annotation/DependentDefaultsPolicy.java
+++ b/api/applib/src/main/java/org/apache/isis/applib/annotation/DependentDefaultsPolicy.java
@@ -35,12 +35,14 @@ public enum DependentDefaultsPolicy {
AS_CONFIGURED,
/**
- * If an end-user has changed a parameter value, then do not overwrite the value.
+ * If an end-user has changed this parameter's value, then do not overwrite the value when an earlier parameter changes.
*/
PRESERVE_CHANGES,
/**
- * If the parameter declares a default that is dependent on the value of a previous parameter, and that previous parameter changes its value, then update the dependent, <i>even if</i> the end-user had changed the value of that dependent default.
+ * If this parameter declares a default that is dependent on the value of a previous parameter, and that previous
+ * parameter has been changed by the end-user, then update this dependent parameter with its computed default,
+ * <i>even if</i> the end-user has changed the value of this parameter previously.
*/
UPDATE_DEPENDENT,
diff --git a/api/applib/src/main/java/org/apache/isis/applib/annotation/Parameter.java b/api/applib/src/main/java/org/apache/isis/applib/annotation/Parameter.java
index d2e634784f..5c34f86929 100644
--- a/api/applib/src/main/java/org/apache/isis/applib/annotation/Parameter.java
+++ b/api/applib/src/main/java/org/apache/isis/applib/annotation/Parameter.java
@@ -134,5 +134,17 @@ public @interface Parameter {
String regexPatternReplacement()
default "Doesn't match pattern";
+ /**
+ * Whether dependent parameters should be reset to their default if an earlier parameter changes its
+ * value, or whether instead a parameter value, once changed by the end-user, should never be
+ * overwritten even if the end-user changes an earlier parameter value.
+ */
+ /**
+ * Whether this parameter should be reset to its default if an earlier parameter changes its
+ * value, or whether instead the parameter's value, once changed by the end-user, should never be
+ * overwritten even if the end-user changes an earlier parameter value.
+ */
+ DependentDefaultsPolicy dependentDefaultsPolicy()
+ default DependentDefaultsPolicy.AS_CONFIGURED;
}
diff --git a/core/config/src/main/java/org/apache/isis/core/config/IsisConfiguration.java b/core/config/src/main/java/org/apache/isis/core/config/IsisConfiguration.java
index b62f1649cf..fc578dbed0 100644
--- a/core/config/src/main/java/org/apache/isis/core/config/IsisConfiguration.java
+++ b/core/config/src/main/java/org/apache/isis/core/config/IsisConfiguration.java
@@ -810,19 +810,6 @@ public class IsisConfiguration {
}
- /**
- * Whether dependent parameters should be reset to their default if an earlier parameter changes its
- * value, or whether instead a parameter value, once changed by the end-user, should never be
- * overwritten even if the end-user changes an earlier parameter value.
- *
- * <p>
- * This setting can be overridden on a case-by-case basis using
- * {@link org.apache.isis.applib.annotation.Action#dependentDefaultsPolicy() Action#dependentDefaultsPolicy()}.
- * </p>
- */
- private ParameterPolicies.DependentDefaultsPolicy dependentDefaultsPolicy = ParameterPolicies.DependentDefaultsPolicy.UPDATE_DEPENDENT;
-
-
}
private final ActionLayout actionLayout = new ActionLayout();
@@ -1282,6 +1269,24 @@ public class IsisConfiguration {
}
}
+ private final Parameter parameter = new Parameter();
+ @Data
+ public static class Parameter {
+
+ /**
+ * Whether dependent parameters should be reset to their default if an earlier parameter changes its
+ * value, or whether instead a parameter value, once changed by the end-user, should never be
+ * overwritten even if the end-user changes an earlier parameter value.
+ *
+ * <p>
+ * This setting can be overridden on a case-by-case basis using
+ * {@link org.apache.isis.applib.annotation.Parameter#dependentDefaultsPolicy() Parameter#dependentDefaultsPolicy()}.
+ * </p>
+ */
+ private ParameterPolicies.DependentDefaultsPolicy dependentDefaultsPolicy = ParameterPolicies.DependentDefaultsPolicy.UPDATE_DEPENDENT;
+
+ }
+
private final ParameterLayout parameterLayout = new ParameterLayout();
@Data
public static class ParameterLayout implements Applib.Annotation.ConfigPropsForPropertyOrParameterLayout {
diff --git a/core/config/src/main/java/org/apache/isis/core/config/metamodel/facets/ParameterPolicies.java b/core/config/src/main/java/org/apache/isis/core/config/metamodel/facets/ParameterPolicies.java
index 60b4e7bef3..2e2d6c6f1e 100644
--- a/core/config/src/main/java/org/apache/isis/core/config/metamodel/facets/ParameterPolicies.java
+++ b/core/config/src/main/java/org/apache/isis/core/config/metamodel/facets/ParameterPolicies.java
@@ -48,7 +48,7 @@ public final class ParameterPolicies {
public static DependentDefaultsPolicy dependentDefaultsPolicy(
final @NonNull IsisConfiguration configuration) {
- return configuration.getApplib().getAnnotation().getAction().getDependentDefaultsPolicy();
+ return configuration.getApplib().getAnnotation().getParameter().getDependentDefaultsPolicy();
}
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/actions/action/ActionAnnotationFacetFactory.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/actions/action/ActionAnnotationFacetFactory.java
index a661345280..b9dd84b3a7 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/actions/action/ActionAnnotationFacetFactory.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/actions/action/ActionAnnotationFacetFactory.java
@@ -31,7 +31,6 @@ import org.apache.isis.core.metamodel.facetapi.FeatureType;
import org.apache.isis.core.metamodel.facets.FacetFactoryAbstract;
import org.apache.isis.core.metamodel.facets.actcoll.typeof.TypeOfFacet;
import org.apache.isis.core.metamodel.facets.actions.action.choicesfrom.ChoicesFromFacetForActionAnnotation;
-import org.apache.isis.core.metamodel.facets.actions.action.depdef.DependentDefaultsFacet;
import org.apache.isis.core.metamodel.facets.actions.action.explicit.ActionExplicitFacetForActionAnnotation;
import org.apache.isis.core.metamodel.facets.actions.action.hidden.HiddenFacetForActionAnnotation;
import org.apache.isis.core.metamodel.facets.actions.action.invocation.ActionDomainEventFacetAbstract;
@@ -75,7 +74,7 @@ extends FacetFactoryAbstract {
processHidden(processMethodContext, actionIfAny);
processRestrictTo(processMethodContext, actionIfAny);
processSemantics(processMethodContext, actionIfAny);
- processDependentDefaultsPolicy(processMethodContext, actionIfAny);
+
// must come after processing semantics
processCommandPublishing(processMethodContext, actionIfAny);
@@ -198,16 +197,6 @@ extends FacetFactoryAbstract {
.create(actionIfAny, facetedMethod));
}
- // check for @Action(dependentDefaultsPolicy=...)
- void processDependentDefaultsPolicy(
- final ProcessMethodContext processMethodContext,
- final Optional<Action> actionIfAny) {
- val facetedMethod = processMethodContext.getFacetHolder();
- addFacetIfPresent(
- DependentDefaultsFacet
- .create(actionIfAny, getConfiguration(), facetedMethod));
- }
-
void processCommandPublishing(
final ProcessMethodContext processMethodContext,
final Optional<Action> actionIfAny) {
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/param/parameter/ParameterAnnotationFacetFactory.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/param/parameter/ParameterAnnotationFacetFactory.java
index 05db0f4105..16817c024a 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/param/parameter/ParameterAnnotationFacetFactory.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/param/parameter/ParameterAnnotationFacetFactory.java
@@ -18,16 +18,20 @@
*/
package org.apache.isis.core.metamodel.facets.param.parameter;
+import java.util.Optional;
+
import javax.inject.Inject;
import javax.validation.constraints.Pattern;
import org.springframework.core.MethodParameter;
+import org.apache.isis.applib.annotation.Action;
import org.apache.isis.applib.annotation.Parameter;
import org.apache.isis.commons.internal.base._NullSafe;
import org.apache.isis.core.metamodel.context.MetaModelContext;
import org.apache.isis.core.metamodel.facetapi.FeatureType;
import org.apache.isis.core.metamodel.facets.FacetFactoryAbstract;
+import org.apache.isis.core.metamodel.facets.param.parameter.depdef.ParameterDependentDefaultsFacet;
import org.apache.isis.core.metamodel.facets.param.parameter.fileaccept.FileAcceptFacetForParameterAnnotation;
import org.apache.isis.core.metamodel.facets.param.parameter.mandatory.MandatoryFacetForParameterAnnotation;
import org.apache.isis.core.metamodel.facets.param.parameter.mandatory.MandatoryFacetInvertedByNullableAnnotationOnParameter;
@@ -49,6 +53,7 @@ extends FacetFactoryAbstract {
@Override
public void processParams(final ProcessParameterContext processParameterContext) {
+ processParamsDependentDefaultsPolicy(processParameterContext);
processParamsMaxLength(processParameterContext);
processParamsMustSatisfy(processParameterContext);
processParamsRegEx(processParameterContext);
@@ -56,6 +61,18 @@ extends FacetFactoryAbstract {
processParamsFileAccept(processParameterContext);
}
+ // check for @Parameter(dependentDefaultsPolicy=...)
+ void processParamsDependentDefaultsPolicy(final ProcessParameterContext processParameterContext) {
+
+ val holder = processParameterContext.getFacetHolder();
+ val parameterIfAny = processParameterContext.synthesizeOnParameter(Parameter.class);
+
+ addFacetIfPresent(
+ ParameterDependentDefaultsFacet
+ .create(parameterIfAny, getConfiguration(), holder));
+ }
+
+
void processParamsMaxLength(final ProcessParameterContext processParameterContext) {
val holder = processParameterContext.getFacetHolder();
@@ -79,6 +96,8 @@ extends FacetFactoryAbstract {
void processParamsRegEx(final ProcessParameterContext processParameterContext) {
val holder = processParameterContext.getFacetHolder();
+ val parameterIfAny = processParameterContext.synthesizeOnParameter(Parameter.class);
+
val parameterType = processParameterContext.getParameterType();
val patternIfAny = processParameterContext.synthesizeOnParameter(Pattern.class);
@@ -86,7 +105,6 @@ extends FacetFactoryAbstract {
RegExFacetForPatternAnnotationOnParameter
.create(patternIfAny, parameterType, holder));
- val parameterIfAny = processParameterContext.synthesizeOnParameter(Parameter.class);
addFacetIfPresent(
RegExFacetForParameterAnnotation
.create(parameterIfAny, parameterType, holder));
@@ -95,13 +113,14 @@ extends FacetFactoryAbstract {
void processParamsOptional(final ProcessParameterContext processParameterContext) {
val holder = processParameterContext.getFacetHolder();
+ val parameterIfAny = processParameterContext.synthesizeOnParameter(Parameter.class);
+
val parameterAnnotations = MethodParameter
.forExecutable(processParameterContext.getMethod(), processParameterContext.getParamNum())
.getParameterAnnotations();
val parameterType = processParameterContext.getParameterType();
- val parameterIfAny = processParameterContext.synthesizeOnParameter(Parameter.class);
-
- val hasNullable =
+
+ val hasNullable =
_NullSafe.stream(parameterAnnotations)
.map(annot->annot.annotationType().getSimpleName())
.anyMatch(name->name.equals("Nullable"));
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/actions/action/depdef/DependentDefaultsActionFacetForActionAnnotationAsConfigured.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/param/parameter/depdef/ParameterDependentDefaultsActionFacetForActionAnnotationAsConfigured.java
similarity index 79%
rename from core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/actions/action/depdef/DependentDefaultsActionFacetForActionAnnotationAsConfigured.java
rename to core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/param/parameter/depdef/ParameterDependentDefaultsActionFacetForActionAnnotationAsConfigured.java
index 8cbd1ec4fd..facf4fe3c5 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/actions/action/depdef/DependentDefaultsActionFacetForActionAnnotationAsConfigured.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/param/parameter/depdef/ParameterDependentDefaultsActionFacetForActionAnnotationAsConfigured.java
@@ -17,15 +17,15 @@
* under the License.
*
*/
-package org.apache.isis.core.metamodel.facets.actions.action.depdef;
+package org.apache.isis.core.metamodel.facets.param.parameter.depdef;
import org.apache.isis.core.config.metamodel.facets.ParameterPolicies;
import org.apache.isis.core.metamodel.facetapi.FacetHolder;
-public class DependentDefaultsActionFacetForActionAnnotationAsConfigured
-extends DependentDefaultsActionFacetForActionAnnotation {
+public class ParameterDependentDefaultsActionFacetForActionAnnotationAsConfigured
+extends ParameterDependentDefaultsFacetForParameterAnnotation {
- DependentDefaultsActionFacetForActionAnnotationAsConfigured(
+ ParameterDependentDefaultsActionFacetForActionAnnotationAsConfigured(
final ParameterPolicies.DependentDefaultsPolicy value, final FacetHolder holder) {
super(value, holder);
}
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/actions/action/depdef/DependentDefaultsFacet.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/param/parameter/depdef/ParameterDependentDefaultsFacet.java
similarity index 74%
rename from core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/actions/action/depdef/DependentDefaultsFacet.java
rename to core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/param/parameter/depdef/ParameterDependentDefaultsFacet.java
index 86c56f4eba..0f7df285fc 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/actions/action/depdef/DependentDefaultsFacet.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/param/parameter/depdef/ParameterDependentDefaultsFacet.java
@@ -17,11 +17,12 @@
* under the License.
*
*/
-package org.apache.isis.core.metamodel.facets.actions.action.depdef;
+package org.apache.isis.core.metamodel.facets.param.parameter.depdef;
import java.util.Optional;
import org.apache.isis.applib.annotation.Action;
+import org.apache.isis.applib.annotation.Parameter;
import org.apache.isis.commons.internal.base._Optionals;
import org.apache.isis.core.config.IsisConfiguration;
import org.apache.isis.core.config.metamodel.facets.ParameterPolicies;
@@ -36,11 +37,11 @@ import org.apache.isis.core.metamodel.facets.SingleValueFacet;
*
* @since 2.0
*/
-public interface DependentDefaultsFacet
+public interface ParameterDependentDefaultsFacet
extends SingleValueFacet<ParameterPolicies.DependentDefaultsPolicy> {
- static Optional<DependentDefaultsFacet> create(
- final Optional<Action> actionsIfAny,
+ static Optional<ParameterDependentDefaultsFacet> create(
+ final Optional<Parameter> parameterIfAny,
final IsisConfiguration configuration,
final FacetHolder holder) {
@@ -49,24 +50,24 @@ extends SingleValueFacet<ParameterPolicies.DependentDefaultsPolicy> {
return _Optionals.orNullable(
- actionsIfAny
- .map(Action::dependentDefaultsPolicy)
- .<DependentDefaultsFacet>map(policy -> {
+ parameterIfAny
+ .map(Parameter::dependentDefaultsPolicy)
+ .<ParameterDependentDefaultsFacet>map(policy -> {
switch (policy) {
case PRESERVE_CHANGES:
- return new DependentDefaultsActionFacetForActionAnnotation(
+ return new ParameterDependentDefaultsFacetForParameterAnnotation(
ParameterPolicies.DependentDefaultsPolicy.PRESERVE_CHANGES, holder);
case UPDATE_DEPENDENT:
- return new DependentDefaultsActionFacetForActionAnnotation(
+ return new ParameterDependentDefaultsFacetForParameterAnnotation(
ParameterPolicies.DependentDefaultsPolicy.UPDATE_DEPENDENT, holder);
case NOT_SPECIFIED:
case AS_CONFIGURED:
- return new DependentDefaultsActionFacetForActionAnnotation(defaultPolicyFromConfig, holder);
+ return new ParameterDependentDefaultsFacetForParameterAnnotation(defaultPolicyFromConfig, holder);
default:
}
throw new IllegalStateException("dependentDefaultsPolicy '" + policy + "' not recognised");
})
,
- () -> new DependentDefaultsActionFacetFromConfiguration(defaultPolicyFromConfig, holder));
+ () -> new ParameterDependentDefaultsFacetFromConfiguration(defaultPolicyFromConfig, holder));
}
}
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/actions/action/depdef/DependentDefaultsFacetAbstract.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/param/parameter/depdef/ParameterDependentDefaultsFacetAbstract.java
similarity index 83%
rename from core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/actions/action/depdef/DependentDefaultsFacetAbstract.java
rename to core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/param/parameter/depdef/ParameterDependentDefaultsFacetAbstract.java
index c2955c1eed..aa184e2f2f 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/actions/action/depdef/DependentDefaultsFacetAbstract.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/param/parameter/depdef/ParameterDependentDefaultsFacetAbstract.java
@@ -17,22 +17,22 @@
* under the License.
*
*/
-package org.apache.isis.core.metamodel.facets.actions.action.depdef;
+package org.apache.isis.core.metamodel.facets.param.parameter.depdef;
import org.apache.isis.core.config.metamodel.facets.ParameterPolicies;
import org.apache.isis.core.metamodel.facetapi.Facet;
import org.apache.isis.core.metamodel.facetapi.FacetHolder;
import org.apache.isis.core.metamodel.facets.SingleValueFacetAbstract;
-abstract class DependentDefaultsFacetAbstract
+abstract class ParameterDependentDefaultsFacetAbstract
extends SingleValueFacetAbstract<ParameterPolicies.DependentDefaultsPolicy>
-implements DependentDefaultsFacet {
+implements ParameterDependentDefaultsFacet {
private static final Class<? extends Facet> type() {
- return DependentDefaultsFacet.class;
+ return ParameterDependentDefaultsFacet.class;
}
- protected DependentDefaultsFacetAbstract(
+ protected ParameterDependentDefaultsFacetAbstract(
final ParameterPolicies.DependentDefaultsPolicy value, final FacetHolder holder) {
super(type(), value, holder);
}
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/actions/action/depdef/DependentDefaultsActionFacetForActionAnnotation.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/param/parameter/depdef/ParameterDependentDefaultsFacetForParameterAnnotation.java
similarity index 81%
rename from core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/actions/action/depdef/DependentDefaultsActionFacetForActionAnnotation.java
rename to core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/param/parameter/depdef/ParameterDependentDefaultsFacetForParameterAnnotation.java
index 1f19633c12..e36364da56 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/actions/action/depdef/DependentDefaultsActionFacetForActionAnnotation.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/param/parameter/depdef/ParameterDependentDefaultsFacetForParameterAnnotation.java
@@ -17,15 +17,15 @@
* under the License.
*
*/
-package org.apache.isis.core.metamodel.facets.actions.action.depdef;
+package org.apache.isis.core.metamodel.facets.param.parameter.depdef;
import org.apache.isis.core.config.metamodel.facets.ParameterPolicies;
import org.apache.isis.core.metamodel.facetapi.FacetHolder;
-public class DependentDefaultsActionFacetForActionAnnotation
-extends DependentDefaultsFacetAbstract {
+public class ParameterDependentDefaultsFacetForParameterAnnotation
+extends ParameterDependentDefaultsFacetAbstract {
- DependentDefaultsActionFacetForActionAnnotation(
+ ParameterDependentDefaultsFacetForParameterAnnotation(
final ParameterPolicies.DependentDefaultsPolicy value, final FacetHolder holder) {
super(value, holder);
}
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/actions/action/depdef/DependentDefaultsActionFacetFromConfiguration.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/param/parameter/depdef/ParameterDependentDefaultsFacetFromConfiguration.java
similarity index 82%
rename from core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/actions/action/depdef/DependentDefaultsActionFacetFromConfiguration.java
rename to core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/param/parameter/depdef/ParameterDependentDefaultsFacetFromConfiguration.java
index 0fe0962433..c0bb59a50c 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/actions/action/depdef/DependentDefaultsActionFacetFromConfiguration.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/param/parameter/depdef/ParameterDependentDefaultsFacetFromConfiguration.java
@@ -17,15 +17,15 @@
* under the License.
*
*/
-package org.apache.isis.core.metamodel.facets.actions.action.depdef;
+package org.apache.isis.core.metamodel.facets.param.parameter.depdef;
import org.apache.isis.core.config.metamodel.facets.ParameterPolicies;
import org.apache.isis.core.metamodel.facetapi.FacetHolder;
-public class DependentDefaultsActionFacetFromConfiguration
-extends DependentDefaultsFacetAbstract {
+public class ParameterDependentDefaultsFacetFromConfiguration
+extends ParameterDependentDefaultsFacetAbstract {
- DependentDefaultsActionFacetFromConfiguration(
+ ParameterDependentDefaultsFacetFromConfiguration(
final ParameterPolicies.DependentDefaultsPolicy value, final FacetHolder holder) {
super(value, holder);
}
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/spec/feature/ObjectActionParameter.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/spec/feature/ObjectActionParameter.java
index a4c28db5b1..7a44ee35ef 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/spec/feature/ObjectActionParameter.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/spec/feature/ObjectActionParameter.java
@@ -151,7 +151,7 @@ extends ObjectFeature, CurrentHolder {
default void reassessDefault(final ParameterNegotiationModel pendingArgs) {
val paramIndex = getParameterIndex();
val bindableParamDirtyFlag = pendingArgs.getBindableParamValueDirtyFlag(paramIndex);
- if(Facets.dependentDefaultsPolicy(getAction()).isUpdateDependent()
+ if(Facets.dependentDefaultsPolicy(this).isUpdateDependent()
// always allow when not dirtied by the user (UI)
|| ! bindableParamDirtyFlag.getValue().booleanValue() ) {
// reassess defaults honoring defaults semantics
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/util/Facets.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/util/Facets.java
index fdf346a7a5..3b2a7e4a3a 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/util/Facets.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/util/Facets.java
@@ -42,7 +42,6 @@ import org.apache.isis.core.metamodel.consent.InteractionInitiatedBy;
import org.apache.isis.core.metamodel.facetapi.Facet;
import org.apache.isis.core.metamodel.facetapi.FacetHolder;
import org.apache.isis.core.metamodel.facets.actcoll.typeof.TypeOfFacet;
-import org.apache.isis.core.metamodel.facets.actions.action.depdef.DependentDefaultsFacet;
import org.apache.isis.core.metamodel.facets.all.hide.HiddenFacet;
import org.apache.isis.core.metamodel.facets.collections.CollectionFacet;
import org.apache.isis.core.metamodel.facets.collections.collection.defaultview.DefaultViewFacet;
@@ -67,11 +66,13 @@ import org.apache.isis.core.metamodel.facets.objectvalue.labelat.LabelAtFacet;
import org.apache.isis.core.metamodel.facets.objectvalue.maxlen.MaxLengthFacet;
import org.apache.isis.core.metamodel.facets.objectvalue.multiline.MultiLineFacet;
import org.apache.isis.core.metamodel.facets.objectvalue.typicallen.TypicalLengthFacet;
+import org.apache.isis.core.metamodel.facets.param.parameter.depdef.ParameterDependentDefaultsFacet;
import org.apache.isis.core.metamodel.interactions.managed.ManagedProperty;
import org.apache.isis.core.metamodel.interactions.managed.ParameterNegotiationModel;
import org.apache.isis.core.metamodel.object.ManagedObject;
import org.apache.isis.core.metamodel.spec.ObjectSpecification;
import org.apache.isis.core.metamodel.spec.feature.ObjectAction;
+import org.apache.isis.core.metamodel.spec.feature.ObjectActionParameter;
import org.apache.isis.core.metamodel.spec.feature.ObjectFeature;
import lombok.val;
@@ -171,9 +172,9 @@ public final class Facets {
}
public static ParameterPolicies.DependentDefaultsPolicy dependentDefaultsPolicy(
- final ObjectAction action) {
- return action.lookupFacet(DependentDefaultsFacet.class)
- .map(DependentDefaultsFacet::value)
+ final ObjectActionParameter parameter) {
+ return parameter.lookupFacet(ParameterDependentDefaultsFacet.class)
+ .map(ParameterDependentDefaultsFacet::value)
.orElseGet(ParameterPolicies.DependentDefaultsPolicy::defaultsIfNotSpecifiedOtherwise);
}