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;
        }

Reply via email to