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 2015/02/19 16:57:36 UTC
isis git commit: ISIS-1024: extend programming model to allow
imperative validation of individual parameters (validateNXxx(...)).
Repository: isis
Updated Branches:
refs/heads/master cd5dfbac2 -> cb26cbe4b
ISIS-1024: extend programming model to allow imperative validation of individual parameters (validateNXxx(...)).
Also:
- invoke per-param validation for all textfield Wicket widgets (previously was done only for the String/text datatypes; but it should be safe for other data types that are rendered in text field, eg numbers).
Project: http://git-wip-us.apache.org/repos/asf/isis/repo
Commit: http://git-wip-us.apache.org/repos/asf/isis/commit/cb26cbe4
Tree: http://git-wip-us.apache.org/repos/asf/isis/tree/cb26cbe4
Diff: http://git-wip-us.apache.org/repos/asf/isis/diff/cb26cbe4
Branch: refs/heads/master
Commit: cb26cbe4bc9f6cfccca4f8b06d4c24694ff8b90b
Parents: cd5dfba
Author: Dan Haywood <da...@haywood-associates.co.uk>
Authored: Thu Feb 19 15:57:17 2015 +0000
Committer: Dan Haywood <da...@haywood-associates.co.uk>
Committed: Thu Feb 19 15:57:17 2015 +0000
----------------------------------------------------------------------
.../viewer/wicket/model/models/ScalarModel.java | 15 ++--
.../scalars/ScalarPanelTextFieldAbstract.java | 30 ++++++-
.../ScalarPanelTextFieldParseableAbstract.java | 21 -----
.../services/i18n/TranslatableString.java | 3 +
.../core/metamodel/facetapi/FeatureType.java | 2 +
.../core/metamodel/facets/FacetFactory.java | 57 +++++++------
.../ActionParameterValidationFacet.java | 45 ++++++++++
.../ActionParameterValidationFacetAbstract.java | 47 +++++++++++
...ActionParameterValidationFacetViaMethod.java | 87 ++++++++++++++++++++
.../ActionValidationFacetViaMethodFactory.java | 44 ++++++++--
.../facetprocessor/FacetProcessor.java | 9 +-
.../specimpl/FacetedMethodsBuilder.java | 2 +-
.../DescribedAsAnnotationFacetFactoryTest.java | 2 +-
.../named/NamedAnnotationFacetFactoryTest.java | 2 +-
...ForParameterLayoutAnnotationFactoryTest.java | 2 +-
...ForParameterLayoutAnnotationFactoryTest.java | 4 +-
...icationFacetFactoryProcessParameterTest.java | 4 +-
...alAnnotationOnParameterFacetFactoryTest.java | 4 +-
.../ParameterAnnotationFacetFactoryTest.java | 20 ++---
...ExAnnotationOnParameterFacetFactoryTest.java | 4 +-
...idationDigitsAnnotationFacetFactoryTest.java | 2 +-
.../MultiLineAnnotationFacetFactoryTest.java | 4 +-
...edAsDayBeforeAnnotationFacetFactoryTest.java | 2 +-
...TypicalLengthAnnotationFacetFactoryTest.java | 2 +-
.../mask/MaskAnnotationFacetFactoryTest.java | 4 +-
25 files changed, 324 insertions(+), 94 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/isis/blob/cb26cbe4/component/viewer/wicket/model/src/main/java/org/apache/isis/viewer/wicket/model/models/ScalarModel.java
----------------------------------------------------------------------
diff --git a/component/viewer/wicket/model/src/main/java/org/apache/isis/viewer/wicket/model/models/ScalarModel.java b/component/viewer/wicket/model/src/main/java/org/apache/isis/viewer/wicket/model/models/ScalarModel.java
index ceef46b..f3d3310 100644
--- a/component/viewer/wicket/model/src/main/java/org/apache/isis/viewer/wicket/model/models/ScalarModel.java
+++ b/component/viewer/wicket/model/src/main/java/org/apache/isis/viewer/wicket/model/models/ScalarModel.java
@@ -277,10 +277,6 @@ public class ScalarModel extends EntityModel implements LinksProvider {
@Override
public String parseAndValidate(final ScalarModel scalarModel, final String proposedPojoAsStr) {
final ObjectActionParameter parameter = scalarModel.getParameterMemento().getActionParameter();
- ParseableFacet parseableFacet = parameter.getFacet(ParseableFacet.class);
- if (parseableFacet == null) {
- parseableFacet = parameter.getSpecification().getFacet(ParseableFacet.class);
- }
try {
final ObjectAdapter parentAdapter = scalarModel.parentObjectAdapterMemento.getObjectAdapter(ConcurrencyChecking.CHECK);
Localization localization = IsisContext.getLocalization();
@@ -293,8 +289,15 @@ public class ScalarModel extends EntityModel implements LinksProvider {
@Override
public String validate(final ScalarModel scalarModel, final ObjectAdapter proposedAdapter) {
- // TODO - not yet supported.
- return null;
+ final ObjectActionParameter parameter = scalarModel.getParameterMemento().getActionParameter();
+ try {
+ final ObjectAdapter parentAdapter = scalarModel.parentObjectAdapterMemento.getObjectAdapter(ConcurrencyChecking.CHECK);
+ Localization localization = IsisContext.getLocalization();
+ final String invalidReasonIfAny = parameter.isValid(parentAdapter, proposedAdapter.getObject(), localization);
+ return invalidReasonIfAny;
+ } catch (final Exception ex) {
+ return ex.getLocalizedMessage();
+ }
}
@Override
http://git-wip-us.apache.org/repos/asf/isis/blob/cb26cbe4/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/ScalarPanelTextFieldAbstract.java
----------------------------------------------------------------------
diff --git a/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/ScalarPanelTextFieldAbstract.java b/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/ScalarPanelTextFieldAbstract.java
index aed4a23..159c537 100644
--- a/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/ScalarPanelTextFieldAbstract.java
+++ b/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/ScalarPanelTextFieldAbstract.java
@@ -33,6 +33,10 @@ import org.apache.wicket.markup.html.form.TextField;
import org.apache.wicket.markup.html.panel.Fragment;
import org.apache.wicket.model.IModel;
import org.apache.wicket.model.Model;
+import org.apache.wicket.validation.IValidatable;
+import org.apache.wicket.validation.IValidator;
+import org.apache.wicket.validation.ValidationError;
+import org.apache.isis.core.metamodel.adapter.ObjectAdapter;
import org.apache.isis.core.metamodel.facets.SingleIntValueFacet;
import org.apache.isis.core.metamodel.facets.all.named.NamedFacet;
import org.apache.isis.core.metamodel.facets.objectvalue.typicallen.TypicalLengthFacet;
@@ -165,8 +169,30 @@ public abstract class ScalarPanelTextFieldAbstract<T extends Serializable> exten
}
protected void addStandardSemantics() {
- textField.setRequired(getModel().isRequired());
- setTextFieldSizeAndMaxLengthIfSpecified(textField);
+ textField.setRequired(getModel().isRequired());
+ setTextFieldSizeAndMaxLengthIfSpecified(textField);
+
+ addValidator();
+ }
+
+ protected void addValidator() {
+ final ScalarModel scalarModel = getModel();
+
+ textField.add(new IValidator<T>() {
+ private static final long serialVersionUID = 1L;
+
+ @Override
+ public void validate(final IValidatable<T> validatable) {
+ final T proposedValue = validatable.getValue();
+ final ObjectAdapter proposedAdapter = getAdapterManager().adapterFor(proposedValue);
+ final String reasonIfAny = scalarModel.validate(proposedAdapter);
+ if (reasonIfAny != null) {
+ final ValidationError error = new ValidationError();
+ error.setMessage(reasonIfAny);
+ validatable.error(error);
+ }
+ }
+ });
}
protected void setTextFieldSizeAndMaxLengthIfSpecified(AbstractTextComponent<T> textField) {
http://git-wip-us.apache.org/repos/asf/isis/blob/cb26cbe4/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/ScalarPanelTextFieldParseableAbstract.java
----------------------------------------------------------------------
diff --git a/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/ScalarPanelTextFieldParseableAbstract.java b/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/ScalarPanelTextFieldParseableAbstract.java
index f621679..cda2568 100644
--- a/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/ScalarPanelTextFieldParseableAbstract.java
+++ b/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/ScalarPanelTextFieldParseableAbstract.java
@@ -73,7 +73,6 @@ public abstract class ScalarPanelTextFieldParseableAbstract extends ScalarPanelT
super.addStandardSemantics();
addMaxLengthValidator();
- addObjectAdapterValidator();
}
private void addMaxLengthValidator() {
@@ -88,24 +87,4 @@ public abstract class ScalarPanelTextFieldParseableAbstract extends ScalarPanelT
}
}
- private void addObjectAdapterValidator() {
- final ScalarModel scalarModel = getModel();
- final AbstractTextComponent<String> textField = getTextField();
-
- textField.add(new IValidator<String>() {
- private static final long serialVersionUID = 1L;
-
- @Override
- public void validate(final IValidatable<String> validatable) {
- final String proposedValue = validatable.getValue();
- final String reasonIfAny = scalarModel.parseAndValidate(proposedValue);
- if (reasonIfAny != null) {
- final ValidationError error = new ValidationError();
- error.setMessage(reasonIfAny);
- validatable.error(error);
- }
- }
- });
- }
-
}
http://git-wip-us.apache.org/repos/asf/isis/blob/cb26cbe4/core/applib/src/main/java/org/apache/isis/applib/services/i18n/TranslatableString.java
----------------------------------------------------------------------
diff --git a/core/applib/src/main/java/org/apache/isis/applib/services/i18n/TranslatableString.java b/core/applib/src/main/java/org/apache/isis/applib/services/i18n/TranslatableString.java
index 47af1bc..ec328dd 100644
--- a/core/applib/src/main/java/org/apache/isis/applib/services/i18n/TranslatableString.java
+++ b/core/applib/src/main/java/org/apache/isis/applib/services/i18n/TranslatableString.java
@@ -38,6 +38,9 @@ public final class TranslatableString {
public static TranslatableString tr(
final String pattern,
final Object... paramArgs) {
+ if(pattern == null) {
+ return null;
+ }
return new TranslatableString(Type.TR, pattern, null, 1, asMap(paramArgs));
}
http://git-wip-us.apache.org/repos/asf/isis/blob/cb26cbe4/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facetapi/FeatureType.java
----------------------------------------------------------------------
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facetapi/FeatureType.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facetapi/FeatureType.java
index 825760e..8f50ccd 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facetapi/FeatureType.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facetapi/FeatureType.java
@@ -111,6 +111,8 @@ public enum FeatureType {
public final static List<FeatureType> OBJECTS_PROPERTIES_AND_COLLECTIONS = ImmutableList.of(OBJECT, PROPERTY, COLLECTION);
public final static List<FeatureType> OBJECTS_POST_PROCESSING_ONLY = ImmutableList.of(OBJECT_POST_PROCESSING);
+ public static final List<FeatureType> ACTIONS_AND_PARAMETERS = ImmutableList.of(ACTION, ACTION_PARAMETER);
+
/**
* Use of this is discouraged; instead use multiple {@link FacetFactory}s
* for different features.
http://git-wip-us.apache.org/repos/asf/isis/blob/cb26cbe4/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/FacetFactory.java
----------------------------------------------------------------------
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/FacetFactory.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/FacetFactory.java
index 1a81f63..fbd03f5 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/FacetFactory.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/FacetFactory.java
@@ -64,13 +64,15 @@ public interface FacetFactory {
}
}
- static class AbstractProcessWithMethodContext<T extends FacetHolder> extends AbstractProcessWithClsContext<T>{
+ static class AbstractProcessWithMethodContext<T extends FacetHolder> extends AbstractProcessWithClsContext<T> implements MethodRemover{
private final Method method;
+ protected final MethodRemover methodRemover;
- AbstractProcessWithMethodContext(final Class<?> cls, final Method method, final T facetHolder) {
+ AbstractProcessWithMethodContext(final Class<?> cls, final Method method, final MethodRemover methodRemover, final T facetHolder) {
super(cls, facetHolder);
this.method = method;
+ this.methodRemover = methodRemover;
}
/**
@@ -88,6 +90,27 @@ public interface FacetFactory {
return method;
}
+
+ @Override
+ public List<Method> removeMethods(final MethodScope methodScope, final String prefix, final Class<?> returnType, final boolean canBeVoid, final int paramCount) {
+ return methodRemover.removeMethods(methodScope, prefix, returnType, canBeVoid, paramCount);
+ }
+
+ @Override
+ public void removeMethod(final MethodScope methodScope, final String methodName, final Class<?> returnType, final Class<?>[] parameterTypes) {
+ methodRemover.removeMethod(methodScope, methodName, returnType, parameterTypes);
+ }
+
+ @Override
+ public void removeMethod(final Method method) {
+ methodRemover.removeMethod(method);
+ }
+
+ @Override
+ public void removeMethods(final List<Method> methods) {
+ methodRemover.removeMethods(methods);
+ }
+
}
public interface ProcessContextWithMetadataProperties<T extends FacetHolder> {
@@ -172,10 +195,10 @@ public interface FacetFactory {
// //////////////////////////////////////
- public static class ProcessMethodContext extends AbstractProcessWithMethodContext<FacetedMethod> implements MethodRemover, ProcessContextWithMetadataProperties<FacetedMethod> {
+ public static class ProcessMethodContext extends AbstractProcessWithMethodContext<FacetedMethod> implements ProcessContextWithMetadataProperties<FacetedMethod> {
private final FeatureType featureType;
private final Properties metadataProperties;
- private final MethodRemover methodRemover;
+
public ProcessMethodContext(
final Class<?> cls,
@@ -184,36 +207,15 @@ public interface FacetFactory {
final Method method,
final MethodRemover methodRemover,
final FacetedMethod facetedMethod) {
- super(cls, method, facetedMethod);
+ super(cls, method, methodRemover, facetedMethod);
this.featureType = featureType;
this.metadataProperties = metadataProperties;
- this.methodRemover = methodRemover;
}
public FeatureType getFeatureType() {
return featureType;
}
- @Override
- public List<Method> removeMethods(final MethodScope methodScope, final String prefix, final Class<?> returnType, final boolean canBeVoid, final int paramCount) {
- return methodRemover.removeMethods(methodScope, prefix, returnType, canBeVoid, paramCount);
- }
-
- @Override
- public void removeMethod(final MethodScope methodScope, final String methodName, final Class<?> returnType, final Class<?>[] parameterTypes) {
- methodRemover.removeMethod(methodScope, methodName, returnType, parameterTypes);
- }
-
- @Override
- public void removeMethod(final Method method) {
- methodRemover.removeMethod(method);
- }
-
- @Override
- public void removeMethods(final List<Method> methods) {
- methodRemover.removeMethods(methods);
- }
-
public Properties metadataProperties(final String subKey) {
if(metadataProperties == null) {
@@ -267,8 +269,9 @@ public interface FacetFactory {
final Class<?> cls,
final Method method,
final int paramNum,
+ final MethodRemover methodRemover,
final FacetedMethodParameter facetedMethodParameter) {
- super(cls, method, facetedMethodParameter);
+ super(cls, method, methodRemover, facetedMethodParameter);
this.paramNum = paramNum;
}
http://git-wip-us.apache.org/repos/asf/isis/blob/cb26cbe4/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/actions/validate/ActionParameterValidationFacet.java
----------------------------------------------------------------------
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/actions/validate/ActionParameterValidationFacet.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/actions/validate/ActionParameterValidationFacet.java
new file mode 100644
index 0000000..c6f4644
--- /dev/null
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/actions/validate/ActionParameterValidationFacet.java
@@ -0,0 +1,45 @@
+/*
+ * 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.actions.validate;
+
+import org.apache.isis.core.metamodel.adapter.ObjectAdapter;
+import org.apache.isis.core.metamodel.facetapi.Facet;
+import org.apache.isis.core.metamodel.interactions.ValidatingInteractionAdvisor;
+
+/**
+ * The mechanism by which a single parameter of the action can be validated
+ * before the action itself is invoked.
+ *
+ * <p>
+ * In the standard Apache Isis Programming Model, corresponds to invoking the
+ * <tt>validateNXxx</tt> support method for an action.
+ *
+ * <p>
+ * Note that the parameter may be validated independently first (eg a range check on a numeric parameter).
+ *
+ * @see org.apache.isis.core.metamodel.facets.actions.action.invocation.ActionInvocationFacet
+ */
+public interface ActionParameterValidationFacet extends Facet, ValidatingInteractionAdvisor {
+
+ /**
+ * Reason why the validation has failed, or <tt>null</tt> if okay.
+ */
+ public String invalidReason(ObjectAdapter target, ObjectAdapter arguments);
+}
http://git-wip-us.apache.org/repos/asf/isis/blob/cb26cbe4/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/actions/validate/ActionParameterValidationFacetAbstract.java
----------------------------------------------------------------------
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/actions/validate/ActionParameterValidationFacetAbstract.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/actions/validate/ActionParameterValidationFacetAbstract.java
new file mode 100644
index 0000000..cafbc39
--- /dev/null
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/actions/validate/ActionParameterValidationFacetAbstract.java
@@ -0,0 +1,47 @@
+/*
+ * 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.actions.validate;
+
+import org.apache.isis.applib.events.ValidityEvent;
+import org.apache.isis.core.metamodel.facetapi.Facet;
+import org.apache.isis.core.metamodel.facetapi.FacetAbstract;
+import org.apache.isis.core.metamodel.facetapi.FacetHolder;
+import org.apache.isis.core.metamodel.interactions.ActionArgumentContext;
+import org.apache.isis.core.metamodel.interactions.ValidityContext;
+
+public abstract class ActionParameterValidationFacetAbstract extends FacetAbstract implements ActionParameterValidationFacet {
+
+ public static Class<? extends Facet> type() {
+ return ActionParameterValidationFacet.class;
+ }
+
+ public ActionParameterValidationFacetAbstract(final FacetHolder holder) {
+ super(type(), holder, Derivation.NOT_DERIVED);
+ }
+
+ @Override
+ public String invalidates(final ValidityContext<? extends ValidityEvent> context) {
+ if (!(context instanceof ActionArgumentContext)) {
+ return null;
+ }
+ final ActionArgumentContext actionArgumentContext = (ActionArgumentContext) context;
+ return invalidReason(actionArgumentContext.getTarget(), actionArgumentContext.getProposed());
+ }
+}
http://git-wip-us.apache.org/repos/asf/isis/blob/cb26cbe4/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/actions/validate/method/ActionParameterValidationFacetViaMethod.java
----------------------------------------------------------------------
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/actions/validate/method/ActionParameterValidationFacetViaMethod.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/actions/validate/method/ActionParameterValidationFacetViaMethod.java
new file mode 100644
index 0000000..e073c34
--- /dev/null
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/actions/validate/method/ActionParameterValidationFacetViaMethod.java
@@ -0,0 +1,87 @@
+/*
+ * 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.actions.validate.method;
+
+import java.lang.reflect.Method;
+import java.util.Collections;
+import java.util.List;
+import org.apache.isis.applib.services.i18n.TranslatableString;
+import org.apache.isis.applib.services.i18n.TranslationService;
+import org.apache.isis.core.metamodel.adapter.ObjectAdapter;
+import org.apache.isis.core.metamodel.facetapi.FacetHolder;
+import org.apache.isis.core.metamodel.facets.ImperativeFacet;
+import org.apache.isis.core.metamodel.facets.actions.validate.ActionParameterValidationFacetAbstract;
+
+public class ActionParameterValidationFacetViaMethod extends ActionParameterValidationFacetAbstract implements ImperativeFacet {
+
+ private final Method method;
+ private final TranslationService translationService;
+ private final String translationContext;
+
+ public ActionParameterValidationFacetViaMethod(final Method method, final TranslationService translationService, final String translationContext, final FacetHolder holder) {
+ super(holder);
+ this.method = method;
+ this.translationService = translationService;
+ this.translationContext = translationContext;
+ }
+
+ /**
+ * Returns a singleton list of the {@link java.lang.reflect.Method} provided in the
+ * constructor.
+ */
+ @Override
+ public List<Method> getMethods() {
+ return Collections.singletonList(method);
+ }
+
+ @Override
+ public Intent getIntent(final Method method) {
+ return Intent.CHECK_IF_VALID;
+ }
+
+ @Override
+ public boolean impliesResolve() {
+ return true;
+ }
+
+ @Override
+ public boolean impliesObjectChanged() {
+ return false;
+ }
+
+ @Override
+ public String invalidReason(final ObjectAdapter owningAdapter, final ObjectAdapter proposedArgumentAdapter) {
+ final Object returnValue = ObjectAdapter.InvokeUtils.invoke(method, owningAdapter, proposedArgumentAdapter);
+ if(returnValue instanceof String) {
+ return (String) returnValue;
+ }
+ if(returnValue instanceof TranslatableString) {
+ final TranslatableString ts = (TranslatableString) returnValue;
+ return ts.translate(translationService, translationContext);
+ }
+ return null;
+ }
+
+ @Override
+ protected String toStringValues() {
+ return "method=" + method;
+ }
+
+}
http://git-wip-us.apache.org/repos/asf/isis/blob/cb26cbe4/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/actions/validate/method/ActionValidationFacetViaMethodFactory.java
----------------------------------------------------------------------
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 93d53b7..9f8681f 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
@@ -47,7 +47,7 @@ public class ActionValidationFacetViaMethodFactory extends MethodPrefixBasedFace
* noa-architecture (where they exist)
*/
public ActionValidationFacetViaMethodFactory() {
- super(FeatureType.ACTIONS_ONLY, OrphanValidation.VALIDATE, PREFIXES);
+ super(FeatureType.ACTIONS_AND_PARAMETERS, OrphanValidation.VALIDATE, PREFIXES);
}
// ///////////////////////////////////////////////////////
@@ -56,13 +56,14 @@ public class ActionValidationFacetViaMethodFactory extends MethodPrefixBasedFace
@Override
public void process(final ProcessMethodContext processMethodContext) {
- attachValidatingAdvisorFacetForValidateMethodIfFound(processMethodContext);
+ handleValidateAllArgsMethod(processMethodContext);
}
- private void attachValidatingAdvisorFacetForValidateMethodIfFound(final ProcessMethodContext processMethodContext) {
+ private void handleValidateAllArgsMethod(final ProcessMethodContext processMethodContext) {
final Class<?> cls = processMethodContext.getCls();
final Method actionMethod = processMethodContext.getMethod();
+ final IdentifiedHolder facetHolder = processMethodContext.getFacetHolder();
final String capitalizedName = StringExtensions.asCapitalizedName(actionMethod.getName());
final Class<?>[] paramTypes = actionMethod.getParameterTypes();
@@ -78,14 +79,45 @@ public class ActionValidationFacetViaMethodFactory extends MethodPrefixBasedFace
}
processMethodContext.removeMethod(validateMethod);
- final IdentifiedHolder facetedMethod = processMethodContext.getFacetHolder();
final TranslationService translationService = servicesInjector.lookupService(TranslationService.class);
// sadness: same as in TranslationFactory
- final String translationContext = facetedMethod.getIdentifier().toClassAndNameIdentityString();
- final ActionValidationFacetViaMethod facet = new ActionValidationFacetViaMethod(validateMethod, translationService, translationContext, facetedMethod);
+ final String translationContext = facetHolder.getIdentifier().toClassAndNameIdentityString();
+ final ActionValidationFacetViaMethod facet = new ActionValidationFacetViaMethod(validateMethod, translationService, translationContext, facetHolder);
FacetUtil.addFacet(facet);
}
+ @Override
+ public void processParams(final ProcessParameterContext processParameterContext) {
+
+ final Class<?> cls = processParameterContext.getCls();
+ final Method actionMethod = processParameterContext.getMethod();
+ final int param = processParameterContext.getParamNum();
+ final IdentifiedHolder facetHolder = processParameterContext.getFacetHolder();
+
+ final String capitalizedName = StringExtensions.asCapitalizedName(actionMethod.getName());
+ final Class<?>[] paramTypes = actionMethod.getParameterTypes();
+ final MethodScope onClass = MethodScope.scopeFor(actionMethod);
+
+ final String validateName = MethodPrefixConstants.VALIDATE_PREFIX + param + capitalizedName;
+ final Method validateMethod = MethodFinderUtils.findMethod(
+ cls, onClass,
+ validateName,
+ new Class<?>[]{String.class, TranslatableString.class},
+ new Class<?>[]{paramTypes[param]});
+ if (validateMethod == null) {
+ return;
+ }
+
+ processParameterContext.removeMethod(validateMethod);
+
+ final TranslationService translationService = servicesInjector.lookupService(TranslationService.class);
+ // sadness: same as in TranslationFactory
+ final String translationContext = facetHolder.getIdentifier().toFullIdentityString();
+ final Facet facet = new ActionParameterValidationFacetViaMethod(validateMethod, translationService, translationContext, facetHolder);
+ FacetUtil.addFacet(facet);
+ }
+
+
// //////////////////////////////////////
private ServicesInjector servicesInjector;
http://git-wip-us.apache.org/repos/asf/isis/blob/cb26cbe4/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/facetprocessor/FacetProcessor.java
----------------------------------------------------------------------
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/facetprocessor/FacetProcessor.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/facetprocessor/FacetProcessor.java
index d77fb72..c70a066 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/facetprocessor/FacetProcessor.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/facetprocessor/FacetProcessor.java
@@ -347,21 +347,24 @@ public class FacetProcessor implements RuntimeContextAware {
* for each appropriate factory.
*
* @see FacetFactory#processParams(ProcessParameterContext)
- *@param introspectedClass
+ *
+ * @param introspectedClass
* @param method
* - action method to process
* @param paramNum
- * - 0-based
+* - 0-based
+ * @param methodRemover
* @param facetedMethodParameter
*/
public void processParams(
final Class<?> introspectedClass,
final Method method,
final int paramNum,
+ final MethodRemover methodRemover,
final FacetedMethodParameter facetedMethodParameter) {
final List<FacetFactory> factoryList = getFactoryListByFeatureType(FeatureType.ACTION_PARAMETER);
final ProcessParameterContext processParameterContext =
- new ProcessParameterContext(introspectedClass, method, paramNum, facetedMethodParameter);
+ new ProcessParameterContext(introspectedClass, method, paramNum, methodRemover, facetedMethodParameter);
for (final FacetFactory facetFactory : factoryList) {
facetFactory.processParams(processParameterContext);
}
http://git-wip-us.apache.org/repos/asf/isis/blob/cb26cbe4/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/specimpl/FacetedMethodsBuilder.java
----------------------------------------------------------------------
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/specimpl/FacetedMethodsBuilder.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/specimpl/FacetedMethodsBuilder.java
index c0e386c..80fa2db 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/specimpl/FacetedMethodsBuilder.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/specimpl/FacetedMethodsBuilder.java
@@ -423,7 +423,7 @@ public class FacetedMethodsBuilder {
final List<FacetedMethodParameter> actionParams = action.getParameters();
for (int j = 0; j < actionParams.size(); j++) {
- getFacetProcessor().processParams(introspectedClass, actionMethod, j, actionParams.get(j));
+ getFacetProcessor().processParams(introspectedClass, actionMethod, j, methodRemover, actionParams.get(j));
}
return action;
http://git-wip-us.apache.org/repos/asf/isis/blob/cb26cbe4/core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/naming/describedas/DescribedAsAnnotationFacetFactoryTest.java
----------------------------------------------------------------------
diff --git a/core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/naming/describedas/DescribedAsAnnotationFacetFactoryTest.java b/core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/naming/describedas/DescribedAsAnnotationFacetFactoryTest.java
index 6289d94..d89e0c4 100644
--- a/core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/naming/describedas/DescribedAsAnnotationFacetFactoryTest.java
+++ b/core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/naming/describedas/DescribedAsAnnotationFacetFactoryTest.java
@@ -132,7 +132,7 @@ public class DescribedAsAnnotationFacetFactoryTest extends AbstractFacetFactoryT
}
final Method actionMethod = findMethod(Customer.class, "someAction", new Class[] { int.class });
- facetFactory.processParams(new ProcessParameterContext(Customer.class, actionMethod, 0, facetedMethodParameter));
+ facetFactory.processParams(new ProcessParameterContext(Customer.class, actionMethod, 0, null, facetedMethodParameter));
final Facet facet = facetedMethodParameter.getFacet(DescribedAsFacet.class);
assertNotNull(facet);
http://git-wip-us.apache.org/repos/asf/isis/blob/cb26cbe4/core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/naming/named/NamedAnnotationFacetFactoryTest.java
----------------------------------------------------------------------
diff --git a/core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/naming/named/NamedAnnotationFacetFactoryTest.java b/core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/naming/named/NamedAnnotationFacetFactoryTest.java
index 5a30041..b2f332b 100644
--- a/core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/naming/named/NamedAnnotationFacetFactoryTest.java
+++ b/core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/naming/named/NamedAnnotationFacetFactoryTest.java
@@ -150,7 +150,7 @@ public class NamedAnnotationFacetFactoryTest extends AbstractFacetFactoryJUnit4T
expectNoMethodsRemoved();
- facetFactory.processParams(new ProcessParameterContext(Customer.class, actionMethod, 0, facetedMethodParameter));
+ facetFactory.processParams(new ProcessParameterContext(Customer.class, actionMethod, 0, null, facetedMethodParameter));
final Facet facet = facetedMethodParameter.getFacet(NamedFacet.class);
assertThat(facet, is(not(nullValue())));
http://git-wip-us.apache.org/repos/asf/isis/blob/cb26cbe4/core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/param/layout/annotation/LabelAtFacetForParameterLayoutAnnotationFactoryTest.java
----------------------------------------------------------------------
diff --git a/core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/param/layout/annotation/LabelAtFacetForParameterLayoutAnnotationFactoryTest.java b/core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/param/layout/annotation/LabelAtFacetForParameterLayoutAnnotationFactoryTest.java
index 5357343..cfa06fb 100644
--- a/core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/param/layout/annotation/LabelAtFacetForParameterLayoutAnnotationFactoryTest.java
+++ b/core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/param/layout/annotation/LabelAtFacetForParameterLayoutAnnotationFactoryTest.java
@@ -46,7 +46,7 @@ public class LabelAtFacetForParameterLayoutAnnotationFactoryTest extends Abstrac
}
final Method method = findMethod(Customer.class, "someAction", new Class[] { String.class });
- facetFactory.processParams(new FacetFactory.ProcessParameterContext(Customer.class, method, 0, facetedMethodParameter));
+ facetFactory.processParams(new FacetFactory.ProcessParameterContext(Customer.class, method, 0, null, facetedMethodParameter));
final Facet facet = facetedMethodParameter.getFacet(LabelAtFacet.class);
assertThat(facet, is(notNullValue()));
http://git-wip-us.apache.org/repos/asf/isis/blob/cb26cbe4/core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/param/layout/annotation/NamedFacetForParameterLayoutAnnotationFactoryTest.java
----------------------------------------------------------------------
diff --git a/core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/param/layout/annotation/NamedFacetForParameterLayoutAnnotationFactoryTest.java b/core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/param/layout/annotation/NamedFacetForParameterLayoutAnnotationFactoryTest.java
index b786814..b73cdfb 100644
--- a/core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/param/layout/annotation/NamedFacetForParameterLayoutAnnotationFactoryTest.java
+++ b/core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/param/layout/annotation/NamedFacetForParameterLayoutAnnotationFactoryTest.java
@@ -47,7 +47,7 @@ public class NamedFacetForParameterLayoutAnnotationFactoryTest extends AbstractF
}
final Method method = findMethod(Customer.class, "someAction", new Class[]{String.class});
- facetFactory.processParams(new FacetFactory.ProcessParameterContext(Customer.class, method, 0, facetedMethodParameter));
+ facetFactory.processParams(new FacetFactory.ProcessParameterContext(Customer.class, method, 0, null, facetedMethodParameter));
final NamedFacet facet = facetedMethodParameter.getFacet(NamedFacet.class);
assertThat(facet, is(notNullValue()));
@@ -66,7 +66,7 @@ public class NamedFacetForParameterLayoutAnnotationFactoryTest extends AbstractF
}
final Method method = findMethod(Customer.class, "someAction", new Class[]{String.class});
- facetFactory.processParams(new FacetFactory.ProcessParameterContext(Customer.class, method, 0, facetedMethodParameter));
+ facetFactory.processParams(new FacetFactory.ProcessParameterContext(Customer.class, method, 0, null, facetedMethodParameter));
final NamedFacet facet = facetedMethodParameter.getFacet(NamedFacet.class);
assertThat(facet, is(notNullValue()));
http://git-wip-us.apache.org/repos/asf/isis/blob/cb26cbe4/core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/param/parameter/MustSatisfySpecificationFacetFactoryProcessParameterTest.java
----------------------------------------------------------------------
diff --git a/core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/param/parameter/MustSatisfySpecificationFacetFactoryProcessParameterTest.java b/core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/param/parameter/MustSatisfySpecificationFacetFactoryProcessParameterTest.java
index 9d29eb9..796775d 100644
--- a/core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/param/parameter/MustSatisfySpecificationFacetFactoryProcessParameterTest.java
+++ b/core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/param/parameter/MustSatisfySpecificationFacetFactoryProcessParameterTest.java
@@ -77,7 +77,7 @@ public class MustSatisfySpecificationFacetFactoryProcessParameterTest {
oneOf(mockFacetedMethodParameter).addFacet(with(anInstanceOf(MustSatisfySpecificationFacetForMustSatisfyAnnotationOnParameter.class)));
}
});
- facetFactory.processParamsMustSatisfy(new ProcessParameterContext(Customer.class, changeLastNameMethodWith, 0, mockFacetedMethodParameter));
+ facetFactory.processParamsMustSatisfy(new ProcessParameterContext(Customer.class, changeLastNameMethodWith, 0, null, mockFacetedMethodParameter));
}
@Test
@@ -88,7 +88,7 @@ public class MustSatisfySpecificationFacetFactoryProcessParameterTest {
never(mockFacetedMethodParameter).addFacet(with(anInstanceOf(MustSatisfySpecificationFacetForMustSatisfyAnnotationOnParameter.class)));
}
});
- facetFactory.processParamsMustSatisfy(new ProcessParameterContext(Customer.class, changeLastNameMethodWithout, 0, mockFacetedMethodParameter));
+ facetFactory.processParamsMustSatisfy(new ProcessParameterContext(Customer.class, changeLastNameMethodWithout, 0, null, mockFacetedMethodParameter));
}
}
http://git-wip-us.apache.org/repos/asf/isis/blob/cb26cbe4/core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/param/parameter/OptionalAnnotationOnParameterFacetFactoryTest.java
----------------------------------------------------------------------
diff --git a/core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/param/parameter/OptionalAnnotationOnParameterFacetFactoryTest.java b/core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/param/parameter/OptionalAnnotationOnParameterFacetFactoryTest.java
index 507c76f..c83d358 100644
--- a/core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/param/parameter/OptionalAnnotationOnParameterFacetFactoryTest.java
+++ b/core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/param/parameter/OptionalAnnotationOnParameterFacetFactoryTest.java
@@ -44,7 +44,7 @@ public class OptionalAnnotationOnParameterFacetFactoryTest extends AbstractFacet
}
final Method method = findMethod(Customer.class, "someAction", new Class[] { String.class });
- facetFactory.processParamsOptional(new ProcessParameterContext(Customer.class, method, 0, facetedMethodParameter));
+ facetFactory.processParamsOptional(new ProcessParameterContext(Customer.class, method, 0, null, facetedMethodParameter));
final Facet facet = facetedMethodParameter.getFacet(MandatoryFacet.class);
assertNotNull(facet);
@@ -60,7 +60,7 @@ public class OptionalAnnotationOnParameterFacetFactoryTest extends AbstractFacet
}
final Method method = findMethod(Customer.class, "someAction", new Class[] { int.class });
- facetFactory.processParamsOptional(new ProcessParameterContext(Customer.class, method, 0, facetedMethodParameter));
+ facetFactory.processParamsOptional(new ProcessParameterContext(Customer.class, method, 0, null, facetedMethodParameter));
assertNull(facetedMethod.getFacet(MandatoryFacet.class));
}
http://git-wip-us.apache.org/repos/asf/isis/blob/cb26cbe4/core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/param/parameter/ParameterAnnotationFacetFactoryTest.java
----------------------------------------------------------------------
diff --git a/core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/param/parameter/ParameterAnnotationFacetFactoryTest.java b/core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/param/parameter/ParameterAnnotationFacetFactoryTest.java
index 3b8d54e..09706b9 100644
--- a/core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/param/parameter/ParameterAnnotationFacetFactoryTest.java
+++ b/core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/param/parameter/ParameterAnnotationFacetFactoryTest.java
@@ -84,7 +84,7 @@ public class ParameterAnnotationFacetFactoryTest extends AbstractFacetFactoryJUn
actionMethod = findMethod(Customer.class, "someAction", new Class[]{String.class} );
// when
- final FacetFactory.ProcessParameterContext processParameterContext = new FacetFactory.ProcessParameterContext(Customer.class, actionMethod, 0, facetedMethodParameter);
+ final FacetFactory.ProcessParameterContext processParameterContext = new FacetFactory.ProcessParameterContext(Customer.class, actionMethod, 0, null, facetedMethodParameter);
facetFactory.processParams(processParameterContext);
// then
@@ -129,7 +129,7 @@ public class ParameterAnnotationFacetFactoryTest extends AbstractFacetFactoryJUn
actionMethod = findMethod(Customer.class, "someAction", new Class[]{String.class} );
// when
- final FacetFactory.ProcessParameterContext processParameterContext = new FacetFactory.ProcessParameterContext(Customer.class, actionMethod, 0, facetedMethodParameter);
+ final FacetFactory.ProcessParameterContext processParameterContext = new FacetFactory.ProcessParameterContext(Customer.class, actionMethod, 0, null, facetedMethodParameter);
facetFactory.processParams(processParameterContext);
// then
@@ -165,7 +165,7 @@ public class ParameterAnnotationFacetFactoryTest extends AbstractFacetFactoryJUn
actionMethod = findMethod(Customer.class, "someAction", new Class[]{String.class} );
// when
- final FacetFactory.ProcessParameterContext processParameterContext = new FacetFactory.ProcessParameterContext(Customer.class, actionMethod, 0, facetedMethodParameter);
+ final FacetFactory.ProcessParameterContext processParameterContext = new FacetFactory.ProcessParameterContext(Customer.class, actionMethod, 0, null, facetedMethodParameter);
facetFactory.processParams(processParameterContext);
// then
@@ -191,7 +191,7 @@ public class ParameterAnnotationFacetFactoryTest extends AbstractFacetFactoryJUn
actionMethod = findMethod(Customer.class, "someAction", new Class[]{String.class} );
// when
- final FacetFactory.ProcessParameterContext processParameterContext = new FacetFactory.ProcessParameterContext(Customer.class, actionMethod, 0, facetedMethodParameter);
+ final FacetFactory.ProcessParameterContext processParameterContext = new FacetFactory.ProcessParameterContext(Customer.class, actionMethod, 0, null, facetedMethodParameter);
facetFactory.processParams(processParameterContext);
// then
@@ -217,7 +217,7 @@ public class ParameterAnnotationFacetFactoryTest extends AbstractFacetFactoryJUn
actionMethod = findMethod(Customer.class, "someAction", new Class[]{String.class} );
// when
- final FacetFactory.ProcessParameterContext processParameterContext = new FacetFactory.ProcessParameterContext(Customer.class, actionMethod, 0, facetedMethodParameter);
+ final FacetFactory.ProcessParameterContext processParameterContext = new FacetFactory.ProcessParameterContext(Customer.class, actionMethod, 0, null, facetedMethodParameter);
facetFactory.processParams(processParameterContext);
// then
@@ -239,7 +239,7 @@ public class ParameterAnnotationFacetFactoryTest extends AbstractFacetFactoryJUn
actionMethod = findMethod(Customer.class, "someAction", new Class[]{String.class} );
// when
- final FacetFactory.ProcessParameterContext processParameterContext = new FacetFactory.ProcessParameterContext(Customer.class, actionMethod, 0, facetedMethodParameter);
+ final FacetFactory.ProcessParameterContext processParameterContext = new FacetFactory.ProcessParameterContext(Customer.class, actionMethod, 0, null, facetedMethodParameter);
facetFactory.processParams(processParameterContext);
@@ -270,7 +270,7 @@ public class ParameterAnnotationFacetFactoryTest extends AbstractFacetFactoryJUn
actionMethod = findMethod(Customer.class, "someAction", new Class[]{String.class} );
// when
- final FacetFactory.ProcessParameterContext processParameterContext = new FacetFactory.ProcessParameterContext(Customer.class, actionMethod, 0, facetedMethodParameter);
+ final FacetFactory.ProcessParameterContext processParameterContext = new FacetFactory.ProcessParameterContext(Customer.class, actionMethod, 0, null, facetedMethodParameter);
facetFactory.processParams(processParameterContext);
@@ -298,7 +298,7 @@ public class ParameterAnnotationFacetFactoryTest extends AbstractFacetFactoryJUn
actionMethod = findMethod(Customer.class, "someAction", new Class[]{String.class} );
// when
- final FacetFactory.ProcessParameterContext processParameterContext = new FacetFactory.ProcessParameterContext(Customer.class, actionMethod, 0, facetedMethodParameter);
+ final FacetFactory.ProcessParameterContext processParameterContext = new FacetFactory.ProcessParameterContext(Customer.class, actionMethod, 0, null, facetedMethodParameter);
facetFactory.processParams(processParameterContext);
// then
@@ -323,7 +323,7 @@ public class ParameterAnnotationFacetFactoryTest extends AbstractFacetFactoryJUn
actionMethod = findMethod(Customer.class, "someAction", new Class[]{String.class} );
// when
- final FacetFactory.ProcessParameterContext processParameterContext = new FacetFactory.ProcessParameterContext(Customer.class, actionMethod, 0, facetedMethodParameter);
+ final FacetFactory.ProcessParameterContext processParameterContext = new FacetFactory.ProcessParameterContext(Customer.class, actionMethod, 0, null, facetedMethodParameter);
facetFactory.processParams(processParameterContext);
@@ -349,7 +349,7 @@ public class ParameterAnnotationFacetFactoryTest extends AbstractFacetFactoryJUn
actionMethod = findMethod(Customer.class, "someAction", new Class[]{int.class} );
// when
- final FacetFactory.ProcessParameterContext processParameterContext = new FacetFactory.ProcessParameterContext(Customer.class, actionMethod, 0, facetedMethodParameter);
+ final FacetFactory.ProcessParameterContext processParameterContext = new FacetFactory.ProcessParameterContext(Customer.class, actionMethod, 0, null, facetedMethodParameter);
facetFactory.processParams(processParameterContext);
http://git-wip-us.apache.org/repos/asf/isis/blob/cb26cbe4/core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/param/parameter/RegExAnnotationOnParameterFacetFactoryTest.java
----------------------------------------------------------------------
diff --git a/core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/param/parameter/RegExAnnotationOnParameterFacetFactoryTest.java b/core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/param/parameter/RegExAnnotationOnParameterFacetFactoryTest.java
index 31018e8..b77b3b2 100644
--- a/core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/param/parameter/RegExAnnotationOnParameterFacetFactoryTest.java
+++ b/core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/param/parameter/RegExAnnotationOnParameterFacetFactoryTest.java
@@ -47,7 +47,7 @@ public class RegExAnnotationOnParameterFacetFactoryTest extends AbstractFacetFac
}
final Method method = findMethod(Customer.class, "someAction", new Class[] { String.class });
- facetFactory.processParams(new ProcessParameterContext(Customer.class, method, 0, facetedMethodParameter));
+ facetFactory.processParams(new ProcessParameterContext(Customer.class, method, 0, null, facetedMethodParameter));
final Facet facet = facetedMethodParameter.getFacet(RegExFacet.class);
assertNotNull(facet);
@@ -66,7 +66,7 @@ public class RegExAnnotationOnParameterFacetFactoryTest extends AbstractFacetFac
}
final Method method = findMethod(Customer.class, "someAction", new Class[] { int.class });
- facetFactory.processParams(new ProcessParameterContext(Customer.class, method, 0, facetedMethodParameter));
+ facetFactory.processParams(new ProcessParameterContext(Customer.class, method, 0, null, facetedMethodParameter));
assertNull(facetedMethod.getFacet(RegExFacet.class));
}
http://git-wip-us.apache.org/repos/asf/isis/blob/cb26cbe4/core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/propparam/decimal/JavaxValidationDigitsAnnotationFacetFactoryTest.java
----------------------------------------------------------------------
diff --git a/core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/propparam/decimal/JavaxValidationDigitsAnnotationFacetFactoryTest.java b/core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/propparam/decimal/JavaxValidationDigitsAnnotationFacetFactoryTest.java
index a3ee1ca..d482d64 100644
--- a/core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/propparam/decimal/JavaxValidationDigitsAnnotationFacetFactoryTest.java
+++ b/core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/propparam/decimal/JavaxValidationDigitsAnnotationFacetFactoryTest.java
@@ -68,7 +68,7 @@ public class JavaxValidationDigitsAnnotationFacetFactoryTest extends AbstractFac
}
final Method method = findMethod(Order.class, "updateCost", new Class[] { BigDecimal.class });
- facetFactory.processParams(new ProcessParameterContext(Customer.class, method, 0, facetedMethodParameter));
+ facetFactory.processParams(new ProcessParameterContext(Customer.class, method, 0, null, facetedMethodParameter));
final Facet facet = facetedMethodParameter.getFacet(BigDecimalValueFacet.class);
assertNotNull(facet);
http://git-wip-us.apache.org/repos/asf/isis/blob/cb26cbe4/core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/propparam/multiline/MultiLineAnnotationFacetFactoryTest.java
----------------------------------------------------------------------
diff --git a/core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/propparam/multiline/MultiLineAnnotationFacetFactoryTest.java b/core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/propparam/multiline/MultiLineAnnotationFacetFactoryTest.java
index 09b6791..c3d5ac9 100644
--- a/core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/propparam/multiline/MultiLineAnnotationFacetFactoryTest.java
+++ b/core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/propparam/multiline/MultiLineAnnotationFacetFactoryTest.java
@@ -86,7 +86,7 @@ public class MultiLineAnnotationFacetFactoryTest extends AbstractFacetFactoryTes
}
final Method method = findMethod(Customer.class, "someAction", new Class[] { String.class });
- facetFactory.processParams(new ProcessParameterContext(Customer.class, method, 0, facetedMethodParameter));
+ facetFactory.processParams(new ProcessParameterContext(Customer.class, method, 0, null, facetedMethodParameter));
final Facet facet = facetedMethodParameter.getFacet(MultiLineFacet.class);
assertNotNull(facet);
@@ -139,7 +139,7 @@ public class MultiLineAnnotationFacetFactoryTest extends AbstractFacetFactoryTes
}
final Method method = findMethod(Customer.class, "someAction", new Class[] { int.class });
- facetFactory.processParams(new ProcessParameterContext(Customer.class, method, 0, facetedMethodParameter));
+ facetFactory.processParams(new ProcessParameterContext(Customer.class, method, 0, null, facetedMethodParameter));
assertNull(facetedMethod.getFacet(MultiLineFacet.class));
}
http://git-wip-us.apache.org/repos/asf/isis/blob/cb26cbe4/core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/propparam/renderedasdaybefore/RenderedAsDayBeforeAnnotationFacetFactoryTest.java
----------------------------------------------------------------------
diff --git a/core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/propparam/renderedasdaybefore/RenderedAsDayBeforeAnnotationFacetFactoryTest.java b/core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/propparam/renderedasdaybefore/RenderedAsDayBeforeAnnotationFacetFactoryTest.java
index 8fed7cf..f5b1ac8 100644
--- a/core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/propparam/renderedasdaybefore/RenderedAsDayBeforeAnnotationFacetFactoryTest.java
+++ b/core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/propparam/renderedasdaybefore/RenderedAsDayBeforeAnnotationFacetFactoryTest.java
@@ -67,7 +67,7 @@ public class RenderedAsDayBeforeAnnotationFacetFactoryTest extends AbstractFacet
}
final Method method = findMethod(Customer.class, "someAction", new Class[] { LocalDate.class });
- facetFactory.processParams(new ProcessParameterContext(Customer.class, method, 0, facetedMethodParameter));
+ facetFactory.processParams(new ProcessParameterContext(Customer.class, method, 0, null, facetedMethodParameter));
final Facet facet = facetedMethodParameter.getFacet(RenderedAdjustedFacet.class);
assertNotNull(facet);
http://git-wip-us.apache.org/repos/asf/isis/blob/cb26cbe4/core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/propparam/typicallength/TypicalLengthAnnotationFacetFactoryTest.java
----------------------------------------------------------------------
diff --git a/core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/propparam/typicallength/TypicalLengthAnnotationFacetFactoryTest.java b/core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/propparam/typicallength/TypicalLengthAnnotationFacetFactoryTest.java
index 79a28ab..58021ba 100644
--- a/core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/propparam/typicallength/TypicalLengthAnnotationFacetFactoryTest.java
+++ b/core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/propparam/typicallength/TypicalLengthAnnotationFacetFactoryTest.java
@@ -65,7 +65,7 @@ public class TypicalLengthAnnotationFacetFactoryTest extends AbstractFacetFactor
}
final Method method = findMethod(Customer.class, "someAction", new Class[] { int.class });
- facetFactory.processParams(new ProcessParameterContext(Customer.class, method, 0, facetedMethodParameter));
+ facetFactory.processParams(new ProcessParameterContext(Customer.class, method, 0, null, facetedMethodParameter));
final Facet facet = facetedMethodParameter.getFacet(TypicalLengthFacet.class);
assertNotNull(facet);
http://git-wip-us.apache.org/repos/asf/isis/blob/cb26cbe4/core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/propparam/validate/mask/MaskAnnotationFacetFactoryTest.java
----------------------------------------------------------------------
diff --git a/core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/propparam/validate/mask/MaskAnnotationFacetFactoryTest.java b/core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/propparam/validate/mask/MaskAnnotationFacetFactoryTest.java
index 6440779..0897ce0 100644
--- a/core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/propparam/validate/mask/MaskAnnotationFacetFactoryTest.java
+++ b/core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/propparam/validate/mask/MaskAnnotationFacetFactoryTest.java
@@ -97,7 +97,7 @@ public class MaskAnnotationFacetFactoryTest extends AbstractFacetFactoryTest {
}
final Method method = findMethod(Customer.class, "someAction", new Class[] { String.class });
- facetFactory.processParams(new ProcessParameterContext(Customer.class, method, 0, facetedMethodParameter));
+ facetFactory.processParams(new ProcessParameterContext(Customer.class, method, 0, null, facetedMethodParameter));
final Facet facet = facetedMethodParameter.getFacet(MaskFacet.class);
assertNotNull(facet);
@@ -135,7 +135,7 @@ public class MaskAnnotationFacetFactoryTest extends AbstractFacetFactoryTest {
}
final Method method = findMethod(Customer.class, "someAction", new Class[] { int.class });
- facetFactory.processParams(new ProcessParameterContext(Customer.class, method, 0, facetedMethodParameter));
+ facetFactory.processParams(new ProcessParameterContext(Customer.class, method, 0, null, facetedMethodParameter));
assertNotNull(facetedMethodParameter.getFacet(MaskFacet.class));
}