Guest User

Untitled

a guest
Jun 23rd, 2018
111
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.78 KB | None | 0 0
  1. public class Main {
  2.  
  3. private final String INVALID_FILE_NAME_LENGTH = "INVALID FILE NAME LENGTH";
  4. private final String INVALID_FILE_EXTENSION = "INVALID FILE EXTENSION";
  5. private final String INVALID_FILE_SIZE = "INVALID FILE SIZE";
  6.  
  7. public static void main(String... args) {
  8. File file = new File("text.pdf");
  9. Main main = new Main();
  10. main.validateFileFunctionally(file);
  11. main.validateFileRegularly(file);
  12. }
  13.  
  14. private void validateFileFunctionally(File file) {
  15. BiPredicate<File, Integer> validateFileName = (f, maxLength) -> f.getName().length() < maxLength;
  16. BiPredicate<File, String> validateExtension = (f, type) -> f.getName().endsWith(type);
  17. BiPredicate<File, Integer> validateSize = (f, maxSize) -> f.length() <= maxSize;
  18.  
  19. BiConsumer<Boolean, String> throwExceptionIfInvalid = (isValid, errorMessage) -> {
  20. if(!isValid) {
  21. throw new InvalidFileException(errorMessage);
  22. }
  23. };
  24.  
  25. throwExceptionIfInvalid.accept(validateFileName.test(file, 20), INVALID_FILE_NAME_LENGTH);
  26. throwExceptionIfInvalid.accept(validateExtension.test(file, ".pdf") || validateExtension.test(file, ".csv"), INVALID_FILE_EXTENSION);
  27. throwExceptionIfInvalid.accept(validateSize.test(file, 20), INVALID_FILE_SIZE);
  28. }
  29.  
  30. private void validateFileRegularly(File file) {
  31. if (file.getName().length() > 20) {
  32. throw new InvalidFileException("INVALID FILE NAME LENGTH");
  33. } else if (!file.getName().endsWith(".pdf") && !file.getName().endsWith(".csv")) {
  34. throw new InvalidFileException("INVALID FILE NAME LENGTH");
  35. } else if (file.length() > 20) {
  36. throw new InvalidFileException("INVALID FILE NAME LENGTH");
  37. }
  38. }
  39.  
  40. class InvalidFileException extends RuntimeException {
  41. public InvalidFileException(String message) {
  42. super(message);
  43. }
  44. }
Add Comment
Please, Sign In to add comment