Class MustMatchRegexExpression
- java.lang.Object
-
- com.opencsv.bean.validators.MustMatchRegexExpression
-
- All Implemented Interfaces:
StringValidator
public class MustMatchRegexExpression extends java.lang.Object implements StringValidator
This is a validator that, due to the addition of the parameter, allows the validation of multiple different types of input. The paramString must be a valid regular expression. The MustMatchRegularExpression validator will the
String.matches(String)
method on the string to be converted and the regular expression string and if the two do not match then aCsvValidationException
will be thrown.Because this is validating the string before it is parsed/converted, the capture settings of the string must be taken into account.
Examples:
// The String that becomes id must be a number with three to six digits. @PreAssignmentValidator(validator = MustMatchRegexExpression.class, paramString = "^[0-9]{3,6}$") @CsvBindByName(column = "id") private int beanId; // The String that becomes bigNumber must be a number with seven to ten digits. // The String for this field is after the word "value: " in the field. @PreAssignmentValidator(validator = MustMatchRegexExpression.class, paramString = "^[A-Za-z ]*value: [0-9]{7,10}$") @CsvBindByName(column = "big number", capture = "^[A-Za-z ]*value: (.*)$", format = "value: %s") private long bigNumber;
-
-
Constructor Summary
Constructors Constructor Description MustMatchRegexExpression()
Default constructor.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description boolean
isValid(java.lang.String value)
Performs the validation check on the string and returns the result.void
setParameterString(java.lang.String value)
This allows the validator extendingStringValidator
to be used by multiple fields by allowing you to pass in data for the validator to be used.void
validate(java.lang.String value, BeanField field)
Performs the validation check on the string and throws an exception if invalid.
-
-
-
Method Detail
-
isValid
public boolean isValid(java.lang.String value)
Description copied from interface:StringValidator
Performs the validation check on the string and returns the result.- Specified by:
isValid
in interfaceStringValidator
- Parameters:
value
- String to be validated- Returns:
true
if the value is valid,false
otherwise
-
validate
public void validate(java.lang.String value, BeanField field) throws CsvValidationException
Description copied from interface:StringValidator
Performs the validation check on the string and throws an exception if invalid.- Specified by:
validate
in interfaceStringValidator
- Parameters:
value
- String to be validatedfield
- Name of the field in the bean. This will be used in theCsvValidationException
if the value is not valid.- Throws:
CsvValidationException
- If the input is invalid. Should contain a message describing the error.
-
setParameterString
public void setParameterString(java.lang.String value)
Description copied from interface:StringValidator
This allows the validator extendingStringValidator
to be used by multiple fields by allowing you to pass in data for the validator to be used.Those data might be forbidden characters or regular expressions, to name two possibilities.
If the validator needs multiple parameters, then you will need to combine them into a single string using some sort of delimiter, say a comma, and parse them out using some library that allows you to parse such strings 😁.
If the validator does not need a value then just create an empty method like the MustStartWithACapitalLetter validator used by the BeanFieldValidatorTest.
- Specified by:
setParameterString
in interfaceStringValidator
- Parameters:
value
- Information used by the validator to validate the string
-
-