From 7583274fff8009b54fdf4e54e1932e429a8ef195 Mon Sep 17 00:00:00 2001 From: Theophyl Hoguet Date: Mon, 13 Mar 2023 22:52:22 +0100 Subject: [PATCH] exception --- .../src/main/java/pdl/backend/ImageDao.java | 112 +++++++++--------- .../ImageResourceMissingException.java | 9 ++ 2 files changed, 66 insertions(+), 55 deletions(-) create mode 100644 backend/src/main/java/pdl/backend/ImageResourceMissingException.java diff --git a/backend/src/main/java/pdl/backend/ImageDao.java b/backend/src/main/java/pdl/backend/ImageDao.java index e825245..6f068b3 100644 --- a/backend/src/main/java/pdl/backend/ImageDao.java +++ b/backend/src/main/java/pdl/backend/ImageDao.java @@ -16,68 +16,70 @@ import org.springframework.stereotype.Repository; @Repository public class ImageDao implements Dao { - private final Map images = new HashMap<>(); + private final Map images = new HashMap<>(); - public ImageDao() { - try { - final var folderPath = new ClassPathResource("images"); - final var folder = folderPath.getFile(); - getAllImages(folder); - } catch (final Exception e) { - e.printStackTrace(); - } - } + public ImageDao() { + try { + final var folderPath = new ClassPathResource("images"); + if (folderPath.exists()) + throw new ImageResourceMissingException("folderPath is null"); + final var folder = folderPath.getFile(); + getAllImages(folder); + } catch (final Exception e) { + e.printStackTrace(); + } + } - public void getAllImages(final File folder) { - for (final File file : folder.listFiles()) { - if (file.isDirectory()) { - getAllImages(file); - } else { - String extension = ""; + public void getAllImages(final File folder) { + for (final File file : folder.listFiles()) { + if (file.isDirectory()) { + getAllImages(file); + } else { + String extension = ""; - int i = file.getName().lastIndexOf('.'); - if (i > 0) { - extension = file.getName().substring(i + 1); - } - if (!extension.equals("jpg") && !extension.equals("png")) { - continue; - } - byte[] fileContent; - try { - fileContent = Files.readAllBytes(file.toPath()); - Image img = new Image(file.getName(), fileContent); - images.put(img.getId(), img); - } catch (final IOException e) { - e.printStackTrace(); - } - } - } - } + int i = file.getName().lastIndexOf('.'); + if (i > 0) { + extension = file.getName().substring(i + 1); + } + if (!extension.equals("jpg") && !extension.equals("png")) { + continue; + } + byte[] fileContent; + try { + fileContent = Files.readAllBytes(file.toPath()); + Image img = new Image(file.getName(), fileContent); + images.put(img.getId(), img); + } catch (final IOException e) { + e.printStackTrace(); + } + } + } + } - @Override - public Optional retrieve(final long id) { - return Optional.ofNullable(images.get(id)); - } + @Override + public Optional retrieve(final long id) { + return Optional.ofNullable(images.get(id)); + } - @Override - public List retrieveAll() { - return new ArrayList(images.values()); - } + @Override + public List retrieveAll() { + return new ArrayList(images.values()); + } - @Override - public void create(final Image img) { - images.put(img.getId(), img); - } + @Override + public void create(final Image img) { + images.put(img.getId(), img); + } - @Override - public void update(final Image img, final String[] params) { - img.setName(Objects.requireNonNull(params[0], "Name cannot be null")); + @Override + public void update(final Image img, final String[] params) { + img.setName(Objects.requireNonNull(params[0], "Name cannot be null")); - images.put(img.getId(), img); - } + images.put(img.getId(), img); + } - @Override - public void delete(final Image img) { - images.remove(img.getId()); - } + @Override + public void delete(final Image img) { + images.remove(img.getId()); + } } diff --git a/backend/src/main/java/pdl/backend/ImageResourceMissingException.java b/backend/src/main/java/pdl/backend/ImageResourceMissingException.java new file mode 100644 index 0000000..fe78b22 --- /dev/null +++ b/backend/src/main/java/pdl/backend/ImageResourceMissingException.java @@ -0,0 +1,9 @@ +package pdl.backend; + +import java.io.FileNotFoundException; + +public class ImageResourceMissingException extends FileNotFoundException { + public ImageResourceMissingException(String message) { + super(message); + } +}