org.kiwiproject.validation.FilePathValidator Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of kiwi Show documentation
Show all versions of kiwi Show documentation
Kiwi is a utility library. We really like Google's Guava, and also use Apache Commons.
But if they don't have something we need, and we think it is useful, this is where we put it.
package org.kiwiproject.validation;
import static java.util.Objects.isNull;
import lombok.extern.slf4j.Slf4j;
import javax.validation.ConstraintValidator;
import javax.validation.ConstraintValidatorContext;
import java.nio.file.Path;
/**
* Validates that a string value is a valid path, exists, and is a regular file (not a directory).
*/
@Slf4j
public class FilePathValidator implements ConstraintValidator {
private FilePath filePath;
@Override
public void initialize(FilePath constraintAnnotation) {
this.filePath = constraintAnnotation;
}
@Override
public boolean isValid(String value, ConstraintValidatorContext context) {
if (isNull(value)) {
return filePath.allowNull();
}
try {
var file = Path.of(value).toFile();
return file.exists() && file.isFile();
} catch (Exception e) {
LOG.warn("Exception thrown validating path [{}]", value, e);
return false;
}
}
}
© 2015 - 2024 Weber Informatics LLC | Privacy Policy