You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@wicket.apache.org by jd...@apache.org on 2009/04/07 16:04:44 UTC

svn commit: r762782 - /wicket/trunk/wicket/src/main/java/org/apache/wicket/validation/validator/PatternValidator.java

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