Author: jdonnerstag
Date: Tue Apr  7 14:04:44 2009
New Revision: 762782

URL: http://svn.apache.org/viewvc?rev=762782&view=rev
Log:
applied WICKET-2186 PatternValidator could allow reverse matches
Issue: WICKET-2186

Modified:
    
wicket/trunk/wicket/src/main/java/org/apache/wicket/validation/validator/PatternValidator.java

Modified: 
wicket/trunk/wicket/src/main/java/org/apache/wicket/validation/validator/PatternValidator.java
URL: 
http://svn.apache.org/viewvc/wicket/trunk/wicket/src/main/java/org/apache/wicket/validation/validator/PatternValidator.java?rev=762782&r1=762781&r2=762782&view=diff
==============================================================================
--- 
wicket/trunk/wicket/src/main/java/org/apache/wicket/validation/validator/PatternValidator.java
 (original)
+++ 
wicket/trunk/wicket/src/main/java/org/apache/wicket/validation/validator/PatternValidator.java
 Tue Apr  7 14:04:44 2009
@@ -51,11 +51,13 @@
  * </li>
  * </ul>
  * 
+ * @see java.util.regex.Pattern
+ * @see org.apache.wicket.util.parse.metapattern.MetaPattern
+ * 
  * @author Jonathan Locke
  * @author Igor Vaynberg (ivaynberg)
+ * 
  * @since 1.2.6
- * @see java.util.regex.Pattern
- * @see org.apache.wicket.util.parse.metapattern.MetaPattern
  */
 public class PatternValidator extends StringValidator
 {
@@ -64,6 +66,9 @@
        /** the <code>java.util.regex.Pattern</code> */
        private final Pattern pattern;
 
+       /** whether to exclude matching input **/
+       private boolean reverse = false;
+
        /**
         * Constructor that accepts a <code>String</code> regular expression 
pattern.
         * 
@@ -111,7 +116,6 @@
                this(pattern.pattern());
        }
 
-
        /**
         * Gets the regexp pattern.
         * 
@@ -123,6 +127,18 @@
        }
 
        /**
+        * If set to true then input that matches the pattern is considered 
invalid.
+        * 
+        * @param reverse
+        * @return itself
+        */
+       public PatternValidator setReverse(boolean reverse)
+       {
+               this.reverse = reverse;
+               return this;
+       }
+
+       /**
         * Checks a value against this <code>PatternValidator</code>'s 
{...@link Pattern}.
         * 
         * @param validatable
@@ -155,11 +171,9 @@
        protected void onValidate(IValidatable<String> validatable)
        {
                // Check value against pattern
-               if (!pattern.matcher(validatable.getValue()).matches())
+               if (pattern.matcher(validatable.getValue()).matches() == 
reverse)
                {
                        error(validatable);
                }
-
        }
-
 }


Reply via email to