Class PatternValidator

  • All Implemented Interfaces:
    java.io.Serializable, org.apache.wicket.util.io.IClusterable, IValidator<java.lang.String>
    Direct Known Subclasses:
    EmailAddressValidator

    public class PatternValidator
    extends java.lang.Object
    implements IValidator<java.lang.String>
    Validates an IValidatable by matching the value against a regular expression pattern. A PatternValidator can be constructed with either a Java regular expression (compiled or not) or a MetaPattern. If the pattern matches against the value then it is considered valid. If the pattern does not match, the an IValidationError will be reported on the IValidatable.

    For example, to restrict a field to only digits, you might add a PatternValidator constructed with the pattern "\d+". Another way to do the same thing would be to construct the PatternValidator passing in MetaPattern.DIGITS. The advantages of using MetaPattern over straight Java regular expressions are that the patterns are easier to construct and easier to combine into complex patterns. They are also more readable and more reusable. See MetaPattern for details.

    The error message will be generated with the key "PatternValidator" and one additional message key ${pattern} for the pattern which failed to match. See FormComponent for a list of further messages keys.

    Since:
    1.2.6
    Author:
    Jonathan Locke, Igor Vaynberg (ivaynberg)
    See Also:
    Pattern, Serialized Form
    • Constructor Summary

      Constructors 
      Constructor Description
      PatternValidator​(java.lang.String pattern)
      Constructor that accepts a String regular expression pattern.
      PatternValidator​(java.lang.String pattern, int flags)
      Constructor that accepts a String pattern and Java regex compile flags as arguments.
      PatternValidator​(java.util.regex.Pattern pattern)
      Constructor that accepts a compiled pattern.
      PatternValidator​(org.apache.wicket.util.parse.metapattern.MetaPattern pattern)
      Constructor that accepts a MetaPattern argument.
    • Constructor Detail

      • PatternValidator

        public PatternValidator​(java.lang.String pattern)
        Constructor that accepts a String regular expression pattern.
        Parameters:
        pattern - a regular expression pattern
      • PatternValidator

        public PatternValidator​(java.lang.String pattern,
                                int flags)
        Constructor that accepts a String pattern and Java regex compile flags as arguments.
        Parameters:
        pattern - a regular expression pattern
        flags - compile flags for java.util.regex.Pattern
      • PatternValidator

        public PatternValidator​(java.util.regex.Pattern pattern)
        Constructor that accepts a compiled pattern.
        Parameters:
        pattern - a compiled pattern
      • PatternValidator

        public PatternValidator​(org.apache.wicket.util.parse.metapattern.MetaPattern pattern)
        Constructor that accepts a MetaPattern argument.
        Parameters:
        pattern - a MetaPattern
    • Method Detail

      • getPattern

        public final java.util.regex.Pattern getPattern()
        Gets the regexp pattern.
        Returns:
        the regexp pattern
      • setReverse

        public PatternValidator setReverse​(boolean reverse)
        If set to true then input that matches the pattern is considered invalid.
        Parameters:
        reverse -
        Returns:
        itself
      • toString

        public java.lang.String toString()
        Overrides:
        toString in class java.lang.Object
        See Also:
        Object.toString()
      • validate

        public void validate​(IValidatable<java.lang.String> validatable)
        Checks a value against this PatternValidator's Pattern.
        Specified by:
        validate in interface IValidator<java.lang.String>
        Parameters:
        validatable - the IValidatable to check
      • decorate

        protected IValidationError decorate​(IValidationError error,
                                            IValidatable<java.lang.String> validatable)
        Allows subclasses to decorate reported errors
        Parameters:
        error -
        validatable -
        Returns:
        decorated error