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