Class CodeValidator

  • All Implemented Interfaces:
    java.io.Serializable

    public final class CodeValidator
    extends java.lang.Object
    implements java.io.Serializable
    Generic Code Validation providing format, minimum/maximum length and CheckDigit validations.

    Performs the following validations on a code:

    • if the code is null, return null/false as appropriate
    • trim the input. If the resulting code is empty, return null/false as appropriate
    • Check the format of the code using a regular expression. (if specified)
    • Check the minimum and maximum length (if specified) of the parsed code (i.e. parsed by the regular expression).
    • Performs CheckDigit validation on the parsed code (if specified).
    • The validate(String) method returns the trimmed, parsed input (or null if validation failed)

    Note The isValid(String) method will return true if the input passes validation. Since this includes trimming as well as potentially dropping parts of the input, it is possible for a String to pass validation but fail the checkdigit test if passed directly to it (the check digit routines generally don't trim input nor do they generally check the format/length). To be sure that you are passing valid input to a method use validate(String) as follows:

     Object valid = validator.validate(input); 
     if (valid != null) {
        some_method(valid.toString());
     }
     

    Configure the validator with the appropriate regular expression, minimum/maximum length and CheckDigit validator and then call one of the two validation methods provided:

    • boolean isValid(code)
    • String validate(code)

    Codes often include format characters - such as hyphens - to make them more easily human readable. These can be removed prior to length and check digit validation by specifying them as a non-capturing group in the regular expression (i.e. use the (?: ) notation).
    Or just avoid using parentheses except for the parts you want to capture

    Since:
    Validator 1.4
    Version:
    $Revision: 1713388 $
    See Also:
    Serialized Form
    • Field Detail

      • minLength

        private final int minLength
      • maxLength

        private final int maxLength
    • Constructor Detail

      • CodeValidator

        public CodeValidator​(java.lang.String regex,
                             CheckDigit checkdigit)
        Construct a code validator with a specified regular expression and CheckDigit. The RegexValidator validator is created to be case-sensitive
        Parameters:
        regex - The format regular expression
        checkdigit - The check digit validation routine
      • CodeValidator

        public CodeValidator​(java.lang.String regex,
                             int length,
                             CheckDigit checkdigit)
        Construct a code validator with a specified regular expression, length and CheckDigit. The RegexValidator validator is created to be case-sensitive
        Parameters:
        regex - The format regular expression.
        length - The length of the code (sets the mimimum/maximum to the same)
        checkdigit - The check digit validation routine
      • CodeValidator

        public CodeValidator​(java.lang.String regex,
                             int minLength,
                             int maxLength,
                             CheckDigit checkdigit)
        Construct a code validator with a specified regular expression, minimum/maximum length and CheckDigit validation. The RegexValidator validator is created to be case-sensitive
        Parameters:
        regex - The regular expression
        minLength - The minimum length of the code
        maxLength - The maximum length of the code
        checkdigit - The check digit validation routine
      • CodeValidator

        public CodeValidator​(RegexValidator regexValidator,
                             CheckDigit checkdigit)
        Construct a code validator with a specified regular expression, validator and CheckDigit validation.
        Parameters:
        regexValidator - The format regular expression validator
        checkdigit - The check digit validation routine.
      • CodeValidator

        public CodeValidator​(RegexValidator regexValidator,
                             int length,
                             CheckDigit checkdigit)
        Construct a code validator with a specified regular expression, validator, length and CheckDigit validation.
        Parameters:
        regexValidator - The format regular expression validator
        length - The length of the code (sets the mimimum/maximum to the same value)
        checkdigit - The check digit validation routine
      • CodeValidator

        public CodeValidator​(RegexValidator regexValidator,
                             int minLength,
                             int maxLength,
                             CheckDigit checkdigit)
        Construct a code validator with a specified regular expression validator, minimum/maximum length and CheckDigit validation.
        Parameters:
        regexValidator - The format regular expression validator
        minLength - The minimum length of the code
        maxLength - The maximum length of the code
        checkdigit - The check digit validation routine
    • Method Detail

      • getCheckDigit

        public CheckDigit getCheckDigit()
        Return the check digit validation routine.

        N.B. Optional, if not set no Check Digit validation will be performed on the code.

        Returns:
        The check digit validation routine
      • getMinLength

        public int getMinLength()
        Return the minimum length of the code.

        N.B. Optional, if less than zero the minimum length will not be checked.

        Returns:
        The minimum length of the code or -1 if the code has no minimum length
      • getMaxLength

        public int getMaxLength()
        Return the maximum length of the code.

        N.B. Optional, if less than zero the maximum length will not be checked.

        Returns:
        The maximum length of the code or -1 if the code has no maximum length
      • getRegexValidator

        public RegexValidator getRegexValidator()
        Return the regular expression validator.

        N.B. Optional, if not set no regular expression validation will be performed on the code.

        Returns:
        The regular expression validator
      • isValid

        public boolean isValid​(java.lang.String input)
        Validate the code returning either true or false.
        Parameters:
        input - The code to validate
        Returns:
        true if valid, otherwise false
      • validate

        public java.lang.Object validate​(java.lang.String input)
        Validate the code returning either the valid code or null if invalid.
        Parameters:
        input - The code to validate
        Returns:
        The code if valid, otherwise null if invalid