public class MustMatchRegexExpression extends 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 a CsvValidationException
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 and Description |
---|
MustMatchRegexExpression()
Default constructor.
|
Modifier and Type | Method and Description |
---|---|
boolean |
isValid(String value)
Performs the validation check on the string and returns the result.
|
void |
setParameterString(String value)
This allows the validator extending
StringValidator to be used
by multiple fields by allowing you to pass in data for the validator to
be used. |
void |
validate(String value,
BeanField field)
Performs the validation check on the string and throws an exception if
invalid.
|
public boolean isValid(String value)
StringValidator
isValid
in interface StringValidator
value
- String to be validatedtrue
if the value is valid, false
otherwisepublic void validate(String value, BeanField field) throws CsvValidationException
StringValidator
validate
in interface StringValidator
value
- String to be validatedfield
- Name of the field in the bean. This will be used in
the CsvValidationException
if the value is not
valid.CsvValidationException
- If the input is invalid. Should contain a
message describing the error.public void setParameterString(String value)
StringValidator
StringValidator
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.
setParameterString
in interface StringValidator
value
- Information used by the validator to validate the stringCopyright © 2005–2023. All rights reserved.