Class CodeValidator
- java.lang.Object
-
- org.apache.commons.validator.routines.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 andCheckDigit
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 usevalidate(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: 1781789 $
- See Also:
- Serialized Form
-
-
Constructor Summary
Constructors Constructor Description CodeValidator(java.lang.String regex, int minLength, int maxLength, CheckDigit checkdigit)
Construct a code validator with a specified regular expression, minimum/maximum length andCheckDigit
validation.CodeValidator(java.lang.String regex, int length, CheckDigit checkdigit)
Construct a code validator with a specified regular expression, length andCheckDigit
.CodeValidator(java.lang.String regex, CheckDigit checkdigit)
Construct a code validator with a specified regular expression andCheckDigit
.CodeValidator(RegexValidator regexValidator, int minLength, int maxLength, CheckDigit checkdigit)
Construct a code validator with a specified regular expression validator, minimum/maximum length andCheckDigit
validation.CodeValidator(RegexValidator regexValidator, int length, CheckDigit checkdigit)
Construct a code validator with a specified regular expression, validator, length andCheckDigit
validation.CodeValidator(RegexValidator regexValidator, CheckDigit checkdigit)
Construct a code validator with a specified regular expression, validator andCheckDigit
validation.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description CheckDigit
getCheckDigit()
Return the check digit validation routine.int
getMaxLength()
Return the maximum length of the code.int
getMinLength()
Return the minimum length of the code.RegexValidator
getRegexValidator()
Return the regular expression validator.boolean
isValid(java.lang.String input)
Validate the code returning eithertrue
orfalse
.java.lang.Object
validate(java.lang.String input)
Validate the code returning either the valid code ornull
if invalid.
-
-
-
Constructor Detail
-
CodeValidator
public CodeValidator(java.lang.String regex, CheckDigit checkdigit)
Construct a code validator with a specified regular expression andCheckDigit
. The RegexValidator validator is created to be case-sensitive- Parameters:
regex
- The format regular expressioncheckdigit
- 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 andCheckDigit
. 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 andCheckDigit
validation. The RegexValidator validator is created to be case-sensitive- Parameters:
regex
- The regular expressionminLength
- The minimum length of the codemaxLength
- The maximum length of the codecheckdigit
- The check digit validation routine
-
CodeValidator
public CodeValidator(RegexValidator regexValidator, CheckDigit checkdigit)
Construct a code validator with a specified regular expression, validator andCheckDigit
validation.- Parameters:
regexValidator
- The format regular expression validatorcheckdigit
- 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 andCheckDigit
validation.- Parameters:
regexValidator
- The format regular expression validatorlength
- 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 andCheckDigit
validation.- Parameters:
regexValidator
- The format regular expression validatorminLength
- The minimum length of the codemaxLength
- The maximum length of the codecheckdigit
- 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 eithertrue
orfalse
.This calls
validate(String)
and returns false if the return value is null, true otherwise.Note that
validate(String)
trims the input and if there is aRegexValidator
it may also change the input as part of the validation.- Parameters:
input
- The code to validate- Returns:
true
if valid, otherwisefalse
-
validate
public java.lang.Object validate(java.lang.String input)
Validate the code returning either the valid code ornull
if invalid.Note that this method trims the input and if there is a
RegexValidator
it may also change the input as part of the validation.- Parameters:
input
- The code to validate- Returns:
- The code if valid, otherwise
null
if invalid
-
-