in src/main/java/org/apache/nifi/processor/util/StandardValidators.java [816:842]
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();
}
if (input == null) {
return new ValidationResult.Builder().subject(subject).input(input).valid(false).explanation("Time Period cannot be null").build();
}
final String lowerCase = input.toLowerCase();
final boolean validSyntax = pattern.matcher(lowerCase).matches();
final ValidationResult.Builder builder = new ValidationResult.Builder();
if (validSyntax) {
final long nanos = DurationFormat.getTimeDuration(lowerCase, TimeUnit.NANOSECONDS);
if (nanos < minNanos || nanos > maxNanos) {
builder.subject(subject).input(input).valid(false)
.explanation("Must be in the range of " + minValueEnglish + " to " + maxValueEnglish);
} else {
builder.subject(subject).input(input).valid(true);
}
} else {
builder.subject(subject).input(input).valid(false)
.explanation("Must be of format <duration> <TimeUnit> where <duration> is a non-negative "
+ "integer and TimeUnit is a supported Time Unit, such as: nanos, millis, secs, mins, hrs, days");
}
return builder.build();
}