in src/main/java/com/univocity/parsers/conversions/ValidatedConversion.java [87:152]
protected void validate(Object value) {
DataValidationException e = null;
String str = null;
if (value == null) {
if (nullable) {
if (noneOf != null && noneOf.contains(null)) {
e = new DataValidationException("Value '{value}' is not allowed.");
} else {
return;
}
} else {
if (oneOf != null && oneOf.contains(null)) {
return;
} else {
e = new DataValidationException("Null values not allowed.");
}
}
} else {
str = String.valueOf(value);
if (str.trim().isEmpty()) {
if (allowBlanks) {
if (noneOf != null && noneOf.contains(str)) {
e = new DataValidationException("Value '{value}' is not allowed.");
} else {
return;
}
} else {
if (oneOf != null && oneOf.contains(str)) {
return;
} else {
e = new DataValidationException("Blanks are not allowed. '{value}' is blank.");
}
}
}
if (matcher != null && e == null) {
boolean match;
synchronized (matcher) {
match = matcher.reset(str).matches();
}
if (!match) {
e = new DataValidationException("Value '{value}' does not match expected pattern: '" + regexToMatch + "'");
}
}
}
if (oneOf != null && !oneOf.contains(str)) {
e = new DataValidationException("Value '{value}' is not allowed. Expecting one of: " + oneOf);
}
if (e == null && noneOf != null && noneOf.contains(str)) {
e = new DataValidationException("Value '{value}' is not allowed.");
}
for (int i = 0; e == null && i < validators.length; i++) {
String error = validators[i].validate(value);
if (error != null && !error.trim().isEmpty()) {
e = new DataValidationException("Value '{value}' didn't pass validation: " + error);
}
}
if (e != null) {
e.setValue(value);
throw e;
}
}