in src/main/java/org/apache/nifi/processor/util/StandardValidators.java [766:792]
public static Validator createNonNegativeFloatingPointValidator(final double maximum) {
return new Validator() {
@Override
public ValidationResult validate(final String subject, final String input, final ValidationContext context) {
if (context.isExpressionLanguageSupported(subject) && context.isExpressionLanguagePresent(input)) {
return new ValidationResult.Builder().subject(subject).input(input).explanation("Expression Language Present").valid(true).build();
}
String reason = null;
try {
final double doubleValue = Double.parseDouble(input);
if (doubleValue < 0) {
reason = "Value must be non-negative but was " + doubleValue;
}
final double maxPlusDelta = maximum + 0.00001D;
if (doubleValue < 0 || doubleValue > maxPlusDelta) {
reason = "Value must be between 0 and " + maximum + " but was " + doubleValue;
}
} catch (final NumberFormatException e) {
reason = "not a valid integer";
}
return new ValidationResult.Builder().subject(subject).input(input).explanation(reason).valid(reason == null).build();
}
};
}