WICKET-5174 Validators' #decorate() methods should work with IValidationError
Project: http://git-wip-us.apache.org/repos/asf/wicket/repo Commit: http://git-wip-us.apache.org/repos/asf/wicket/commit/a76a4789 Tree: http://git-wip-us.apache.org/repos/asf/wicket/tree/a76a4789 Diff: http://git-wip-us.apache.org/repos/asf/wicket/diff/a76a4789 Branch: refs/heads/wicket-4774 Commit: a76a478911fc213d9ec979f0e719bd80a936a420 Parents: 2ddf76f Author: Martin Tzvetanov Grigorov <[email protected]> Authored: Thu May 2 21:09:52 2013 +0200 Committer: Martin Tzvetanov Grigorov <[email protected]> Committed: Thu May 2 21:09:52 2013 +0200 ---------------------------------------------------------------------- .../validator/AbstractRangeValidator.java | 3 +- .../validation/validator/CreditCardValidator.java | 3 +- .../wicket/validation/validator/DateValidator.java | 31 ++++++++------ .../validation/validator/PatternValidator.java | 2 +- .../validation/validator/RangeValidator.java | 22 +++++++---- .../validation/validator/StringValidator.java | 12 ++++- .../wicket/validation/validator/UrlValidator.java | 3 +- .../RfcCompliantEmailAddressValidator.java | 3 +- 8 files changed, 50 insertions(+), 29 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/wicket/blob/a76a4789/wicket-core/src/main/java/org/apache/wicket/validation/validator/AbstractRangeValidator.java ---------------------------------------------------------------------- diff --git a/wicket-core/src/main/java/org/apache/wicket/validation/validator/AbstractRangeValidator.java b/wicket-core/src/main/java/org/apache/wicket/validation/validator/AbstractRangeValidator.java index f6ba851..73b0819 100644 --- a/wicket-core/src/main/java/org/apache/wicket/validation/validator/AbstractRangeValidator.java +++ b/wicket-core/src/main/java/org/apache/wicket/validation/validator/AbstractRangeValidator.java @@ -20,6 +20,7 @@ import java.io.Serializable; import org.apache.wicket.behavior.Behavior; import org.apache.wicket.validation.IValidatable; +import org.apache.wicket.validation.IValidationError; import org.apache.wicket.validation.IValidator; import org.apache.wicket.validation.ValidationError; @@ -162,7 +163,7 @@ public abstract class AbstractRangeValidator<R extends Comparable<R> & Serializa * @param validatable * @return decorated error */ - protected ValidationError decorate(ValidationError error, IValidatable<V> validatable) + protected IValidationError decorate(IValidationError error, IValidatable<V> validatable) { return error; } http://git-wip-us.apache.org/repos/asf/wicket/blob/a76a4789/wicket-core/src/main/java/org/apache/wicket/validation/validator/CreditCardValidator.java ---------------------------------------------------------------------- diff --git a/wicket-core/src/main/java/org/apache/wicket/validation/validator/CreditCardValidator.java b/wicket-core/src/main/java/org/apache/wicket/validation/validator/CreditCardValidator.java index 97e66f2..28225c2 100644 --- a/wicket-core/src/main/java/org/apache/wicket/validation/validator/CreditCardValidator.java +++ b/wicket-core/src/main/java/org/apache/wicket/validation/validator/CreditCardValidator.java @@ -17,6 +17,7 @@ package org.apache.wicket.validation.validator; import org.apache.wicket.validation.IValidatable; +import org.apache.wicket.validation.IValidationError; import org.apache.wicket.validation.IValidator; import org.apache.wicket.validation.ValidationError; @@ -146,7 +147,7 @@ public class CreditCardValidator implements IValidator<String> * @param validatable * @return decorated error */ - protected ValidationError decorate(ValidationError error, IValidatable<String> validatable) + protected IValidationError decorate(IValidationError error, IValidatable<String> validatable) { return error; } http://git-wip-us.apache.org/repos/asf/wicket/blob/a76a4789/wicket-core/src/main/java/org/apache/wicket/validation/validator/DateValidator.java ---------------------------------------------------------------------- diff --git a/wicket-core/src/main/java/org/apache/wicket/validation/validator/DateValidator.java b/wicket-core/src/main/java/org/apache/wicket/validation/validator/DateValidator.java index ddeb1cc..b215114 100644 --- a/wicket-core/src/main/java/org/apache/wicket/validation/validator/DateValidator.java +++ b/wicket-core/src/main/java/org/apache/wicket/validation/validator/DateValidator.java @@ -20,6 +20,7 @@ import java.text.SimpleDateFormat; import java.util.Date; import org.apache.wicket.validation.IValidatable; +import org.apache.wicket.validation.IValidationError; import org.apache.wicket.validation.ValidationError; /** @@ -173,25 +174,29 @@ public class DateValidator extends RangeValidator<Date> } @Override - protected ValidationError decorate(ValidationError error, IValidatable<Date> validatable) + protected IValidationError decorate(IValidationError error, IValidatable<Date> validatable) { error = super.decorate(error, validatable); - error.setVariable("inputdate", validatable.getValue()); - - // format variables if format has been specified - if (format != null) + if (error instanceof ValidationError) { - SimpleDateFormat sdf = new SimpleDateFormat(format); - if (getMinimum() != null) - { - error.setVariable("minimum", sdf.format(getMinimum())); - } - if (getMaximum() != null) + ValidationError ve = (ValidationError) error; + ve.setVariable("inputdate", validatable.getValue()); + + // format variables if format has been specified + if (format != null) { - error.setVariable("maximum", sdf.format(getMaximum())); + SimpleDateFormat sdf = new SimpleDateFormat(format); + if (getMinimum() != null) + { + ve.setVariable("minimum", sdf.format(getMinimum())); + } + if (getMaximum() != null) + { + ve.setVariable("maximum", sdf.format(getMaximum())); + } + ve.setVariable("inputdate", sdf.format(validatable.getValue())); } - error.setVariable("inputdate", sdf.format(validatable.getValue())); } return error; http://git-wip-us.apache.org/repos/asf/wicket/blob/a76a4789/wicket-core/src/main/java/org/apache/wicket/validation/validator/PatternValidator.java ---------------------------------------------------------------------- diff --git a/wicket-core/src/main/java/org/apache/wicket/validation/validator/PatternValidator.java b/wicket-core/src/main/java/org/apache/wicket/validation/validator/PatternValidator.java index c093317..aac7888 100644 --- a/wicket-core/src/main/java/org/apache/wicket/validation/validator/PatternValidator.java +++ b/wicket-core/src/main/java/org/apache/wicket/validation/validator/PatternValidator.java @@ -162,7 +162,7 @@ public class PatternValidator implements IValidator<String> * @param validatable * @return decorated error */ - protected ValidationError decorate(ValidationError error, IValidatable<String> validatable) + protected IValidationError decorate(IValidationError error, IValidatable<String> validatable) { return error; } http://git-wip-us.apache.org/repos/asf/wicket/blob/a76a4789/wicket-core/src/main/java/org/apache/wicket/validation/validator/RangeValidator.java ---------------------------------------------------------------------- diff --git a/wicket-core/src/main/java/org/apache/wicket/validation/validator/RangeValidator.java b/wicket-core/src/main/java/org/apache/wicket/validation/validator/RangeValidator.java index fcf4c64..5ef9547 100644 --- a/wicket-core/src/main/java/org/apache/wicket/validation/validator/RangeValidator.java +++ b/wicket-core/src/main/java/org/apache/wicket/validation/validator/RangeValidator.java @@ -19,6 +19,7 @@ package org.apache.wicket.validation.validator; import java.io.Serializable; import org.apache.wicket.validation.IValidatable; +import org.apache.wicket.validation.IValidationError; import org.apache.wicket.validation.ValidationError; /** @@ -115,18 +116,23 @@ public class RangeValidator<Z extends Comparable<Z> & Serializable> extends } @Override - protected ValidationError decorate(ValidationError error, IValidatable<Z> validatable) + protected IValidationError decorate(IValidationError error, IValidatable<Z> validatable) { // TODO wicket 7: remove deprecated keys error = super.decorate(error, validatable); - switch (getMode()) + + if (error instanceof ValidationError) { - case MINIMUM : - error.addKey("MinimumValidator"); - break; - case MAXIMUM : - error.addKey("MaximumValidator"); - break; + ValidationError ve = (ValidationError) error; + switch (getMode()) + { + case MINIMUM : + ve.addKey("MinimumValidator"); + break; + case MAXIMUM : + ve.addKey("MaximumValidator"); + break; + } } return error; } http://git-wip-us.apache.org/repos/asf/wicket/blob/a76a4789/wicket-core/src/main/java/org/apache/wicket/validation/validator/StringValidator.java ---------------------------------------------------------------------- diff --git a/wicket-core/src/main/java/org/apache/wicket/validation/validator/StringValidator.java b/wicket-core/src/main/java/org/apache/wicket/validation/validator/StringValidator.java index 57bae1b..273b112 100644 --- a/wicket-core/src/main/java/org/apache/wicket/validation/validator/StringValidator.java +++ b/wicket-core/src/main/java/org/apache/wicket/validation/validator/StringValidator.java @@ -16,9 +16,12 @@ */ package org.apache.wicket.validation.validator; +import java.util.Locale; + import org.apache.wicket.Component; import org.apache.wicket.markup.ComponentTag; import org.apache.wicket.validation.IValidatable; +import org.apache.wicket.validation.IValidationError; import org.apache.wicket.validation.ValidationError; /** @@ -88,10 +91,13 @@ public class StringValidator extends AbstractRangeValidator<Integer, String> } @Override - protected ValidationError decorate(ValidationError error, IValidatable<String> validatable) + protected IValidationError decorate(IValidationError error, IValidatable<String> validatable) { error = super.decorate(error, validatable); - error.setVariable("length", validatable.getValue().length()); + if (error instanceof ValidationError) + { + ((ValidationError)error).setVariable("length", validatable.getValue().length()); + } return error; } @@ -99,7 +105,7 @@ public class StringValidator extends AbstractRangeValidator<Integer, String> public void onComponentTag(Component component, ComponentTag tag) { super.onComponentTag(component, tag); - if (getMaximum() != null && "input".equalsIgnoreCase(tag.getName())) + if (getMaximum() != null && "input".equalsIgnoreCase(tag.getName().toLowerCase(Locale.ENGLISH))) { tag.put("maxlength", getMaximum()); } http://git-wip-us.apache.org/repos/asf/wicket/blob/a76a4789/wicket-core/src/main/java/org/apache/wicket/validation/validator/UrlValidator.java ---------------------------------------------------------------------- diff --git a/wicket-core/src/main/java/org/apache/wicket/validation/validator/UrlValidator.java b/wicket-core/src/main/java/org/apache/wicket/validation/validator/UrlValidator.java index b7eee15..37b8ebc 100644 --- a/wicket-core/src/main/java/org/apache/wicket/validation/validator/UrlValidator.java +++ b/wicket-core/src/main/java/org/apache/wicket/validation/validator/UrlValidator.java @@ -23,6 +23,7 @@ import java.util.regex.Matcher; import java.util.regex.Pattern; import org.apache.wicket.validation.IValidatable; +import org.apache.wicket.validation.IValidationError; import org.apache.wicket.validation.IValidator; import org.apache.wicket.validation.ValidationError; @@ -236,7 +237,7 @@ public class UrlValidator implements IValidator<String> * @param error * @return decorated error */ - protected ValidationError decorate(ValidationError error, IValidatable<String> validatable) + protected IValidationError decorate(IValidationError error, IValidatable<String> validatable) { return error; } http://git-wip-us.apache.org/repos/asf/wicket/blob/a76a4789/wicket-extensions/src/main/java/org/apache/wicket/extensions/validation/validator/RfcCompliantEmailAddressValidator.java ---------------------------------------------------------------------- diff --git a/wicket-extensions/src/main/java/org/apache/wicket/extensions/validation/validator/RfcCompliantEmailAddressValidator.java b/wicket-extensions/src/main/java/org/apache/wicket/extensions/validation/validator/RfcCompliantEmailAddressValidator.java index b2536a6..c9cca1e 100644 --- a/wicket-extensions/src/main/java/org/apache/wicket/extensions/validation/validator/RfcCompliantEmailAddressValidator.java +++ b/wicket-extensions/src/main/java/org/apache/wicket/extensions/validation/validator/RfcCompliantEmailAddressValidator.java @@ -19,6 +19,7 @@ package org.apache.wicket.extensions.validation.validator; import java.util.regex.Pattern; import org.apache.wicket.validation.IValidatable; +import org.apache.wicket.validation.IValidationError; import org.apache.wicket.validation.IValidator; import org.apache.wicket.validation.ValidationError; import org.apache.wicket.validation.validator.EmailAddressValidator; @@ -161,7 +162,7 @@ public class RfcCompliantEmailAddressValidator implements IValidator<String> * @param validatable * @return decorated error */ - protected ValidationError decorate(ValidationError error, IValidatable<String> validatable) + protected IValidationError decorate(IValidationError error, IValidatable<String> validatable) { return error; }
