Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- public class Main {
- private final String INVALID_FILE_NAME_LENGTH = "INVALID FILE NAME LENGTH";
- private final String INVALID_FILE_EXTENSION = "INVALID FILE EXTENSION";
- private final String INVALID_FILE_SIZE = "INVALID FILE SIZE";
- public static void main(String... args) {
- File file = new File("text.pdf");
- Main main = new Main();
- main.validateFileFunctionally(file);
- main.validateFileRegularly(file);
- }
- private void validateFileFunctionally(File file) {
- BiPredicate<File, Integer> validateFileName = (f, maxLength) -> f.getName().length() < maxLength;
- BiPredicate<File, String> validateExtension = (f, type) -> f.getName().endsWith(type);
- BiPredicate<File, Integer> validateSize = (f, maxSize) -> f.length() <= maxSize;
- BiConsumer<Boolean, String> throwExceptionIfInvalid = (isValid, errorMessage) -> {
- if(!isValid) {
- throw new InvalidFileException(errorMessage);
- }
- };
- throwExceptionIfInvalid.accept(validateFileName.test(file, 20), INVALID_FILE_NAME_LENGTH);
- throwExceptionIfInvalid.accept(validateExtension.test(file, ".pdf") || validateExtension.test(file, ".csv"), INVALID_FILE_EXTENSION);
- throwExceptionIfInvalid.accept(validateSize.test(file, 20), INVALID_FILE_SIZE);
- }
- private void validateFileRegularly(File file) {
- if (file.getName().length() > 20) {
- throw new InvalidFileException("INVALID FILE NAME LENGTH");
- } else if (!file.getName().endsWith(".pdf") && !file.getName().endsWith(".csv")) {
- throw new InvalidFileException("INVALID FILE NAME LENGTH");
- } else if (file.length() > 20) {
- throw new InvalidFileException("INVALID FILE NAME LENGTH");
- }
- }
- class InvalidFileException extends RuntimeException {
- public InvalidFileException(String message) {
- super(message);
- }
- }
Add Comment
Please, Sign In to add comment