in src/main/java/org/apache/nifi/processor/util/StandardValidators.java [928:967]
public ValidationResult validate(final String subject, final String value, final ValidationContext context) {
if (context.isExpressionLanguageSupported(subject) && context.isExpressionLanguagePresent(value)) {
return new ValidationResult.Builder().subject(subject).input(value).explanation("Expression Language Present").valid(true).build();
}
final String substituted;
if (allowEL) {
try {
substituted = context.newPropertyValue(value).evaluateAttributeExpressions().getValue();
} catch (final Exception e) {
return new ValidationResult.Builder().subject(subject).input(value).valid(false)
.explanation("Not a valid Expression Language value: " + e.getMessage()).build();
}
if (substituted.trim().isEmpty() && !value.trim().isEmpty()) {
// User specified an Expression and nothing more... assume valid.
return new ValidationResult.Builder().subject(subject).input(value).valid(true).build();
}
} else {
substituted = value;
}
String reason = null;
try {
final File file = new File(substituted);
if (!file.exists()) {
if (!create) {
reason = "Directory does not exist";
} else if (!file.mkdirs()) {
reason = "Directory does not exist and could not be created";
}
} else if (!file.isDirectory()) {
reason = "Path does not point to a directory";
}
} catch (final Exception e) {
reason = "Value is not a valid directory name";
}
return new ValidationResult.Builder().subject(subject).input(value).explanation(reason).valid(reason == null).build();
}