From e03988d8a53aec3b8de4b94330cd6be8940d2cc1 Mon Sep 17 00:00:00 2001 From: Sergey Lukichev Date: Mon, 29 Jun 2020 19:36:50 +0200 Subject: [PATCH] new names --- src/main/java/de/telran/ImageProcessor.java | 17 ++++--- .../de/telran/entity/ActionableImage.java | 50 +++++++++++++++++++ .../de/telran/entity/DownloadedImage.java | 27 ---------- .../de/telran/service/DownloadService.java | 20 ++++---- .../java/de/telran/service/FileService.java | 6 ++- .../java/de/telran/service/ImageService.java | 9 ++-- src/test/java/ImageProcessorTest.java | 11 ++-- 7 files changed, 83 insertions(+), 57 deletions(-) create mode 100644 src/main/java/de/telran/entity/ActionableImage.java delete mode 100644 src/main/java/de/telran/entity/DownloadedImage.java diff --git a/src/main/java/de/telran/ImageProcessor.java b/src/main/java/de/telran/ImageProcessor.java index db2d921..8aa6719 100644 --- a/src/main/java/de/telran/ImageProcessor.java +++ b/src/main/java/de/telran/ImageProcessor.java @@ -1,6 +1,6 @@ package de.telran; -import de.telran.entity.DownloadedImage; +import de.telran.entity.ActionableImage; import de.telran.entity.ImageDescriptor; import de.telran.factory.ImageActionFactory; import de.telran.service.DownloadService; @@ -32,15 +32,20 @@ public void doProcessing(String fileName) { List imageDescriptors = imageDescriptorService.getImageDescriptors(fileName); - List downloadedImages = downloadService.downloadImages(imageDescriptors); + List actionableImages = imageDescriptors + .stream() + .map(i -> new ActionableImage(null, false, i.getImageUrlName(), i.getActionName())) + .collect(Collectors.toList()); + + List downloadedImages = downloadService.downloadImages(actionableImages); - List successfullyDownloadedImages = downloadedImages.stream() - .filter(DownloadedImage::isSuccessfull) + List successfullyDownloadedImages = downloadedImages.stream() + .filter(ActionableImage::isSuccessfull) .collect(Collectors.toList()); - List processedImages = successfullyDownloadedImages + List processedImages = successfullyDownloadedImages .stream() - .map(i -> imageService.processImage(i.getImage(), i.getImageDescriptor().getActionName())) + .map(i -> imageService.processImage(i)) .collect(Collectors.toList()); processedImages.forEach(i -> fileService.saveImageAsFile(i)); diff --git a/src/main/java/de/telran/entity/ActionableImage.java b/src/main/java/de/telran/entity/ActionableImage.java new file mode 100644 index 0000000..1aa4d57 --- /dev/null +++ b/src/main/java/de/telran/entity/ActionableImage.java @@ -0,0 +1,50 @@ +package de.telran.entity; + +import java.awt.image.BufferedImage; + +public class ActionableImage { + private BufferedImage image; + private boolean isSuccessfull; + private String sourceUrl; + private String actionName; + + public ActionableImage(BufferedImage image, boolean status, String sourceUrl, String actionName) { + this.image = image; + this.isSuccessfull = status; + this.sourceUrl = sourceUrl; + this.actionName = actionName; + + } + + public BufferedImage getImage() { + return image; + } + + public boolean isSuccessfull() { + return isSuccessfull; + } + + public String getSourceUrl() { + return sourceUrl; + } + + public String getActionName() { + return actionName; + } + + public void setImage(BufferedImage image) { + this.image = image; + } + + public void setSuccessfull(boolean successfull) { + isSuccessfull = successfull; + } + + public void setSourceUrl(String sourceUrl) { + this.sourceUrl = sourceUrl; + } + + public void setActionName(String actionName) { + this.actionName = actionName; + } +} diff --git a/src/main/java/de/telran/entity/DownloadedImage.java b/src/main/java/de/telran/entity/DownloadedImage.java deleted file mode 100644 index 230bea6..0000000 --- a/src/main/java/de/telran/entity/DownloadedImage.java +++ /dev/null @@ -1,27 +0,0 @@ -package de.telran.entity; - -import java.awt.image.BufferedImage; - -public class DownloadedImage { - private BufferedImage image; - private boolean isSuccessfull; - private ImageDescriptor imageDescriptor; - - public DownloadedImage(BufferedImage image, boolean status, ImageDescriptor imageDescriptor) { - this.image = image; - this.isSuccessfull = status; - this.imageDescriptor = imageDescriptor; - } - - public BufferedImage getImage() { - return image; - } - - public boolean isSuccessfull() { - return isSuccessfull; - } - - public ImageDescriptor getImageDescriptor() { - return imageDescriptor; - } -} diff --git a/src/main/java/de/telran/service/DownloadService.java b/src/main/java/de/telran/service/DownloadService.java index f3df570..c82e79e 100644 --- a/src/main/java/de/telran/service/DownloadService.java +++ b/src/main/java/de/telran/service/DownloadService.java @@ -1,28 +1,26 @@ package de.telran.service; -import de.telran.entity.DownloadedImage; -import de.telran.entity.ImageDescriptor; +import de.telran.entity.ActionableImage; import javax.imageio.ImageIO; import java.awt.image.BufferedImage; -import java.io.IOException; import java.net.URL; import java.util.ArrayList; import java.util.List; -import java.util.stream.Collectors; public class DownloadService { - public List downloadImages(List imageDescriptors) { - List imageList = new ArrayList<>(); - for(ImageDescriptor descriptor:imageDescriptors) { + public List downloadImages(List images) { + List imageList = new ArrayList<>(images); + for(ActionableImage actionableImage:images) { try { - URL url = new URL(descriptor.getImageUrlName()); + URL url = new URL(actionableImage.getSourceUrl()); BufferedImage image = ImageIO.read(url); - imageList.add(new DownloadedImage(image, true, descriptor)); + actionableImage.setImage(image); + actionableImage.setSuccessfull(true); } catch (Exception ex) { - System.err.println(descriptor.getImageUrlName()); + System.err.println(actionableImage.getSourceUrl()); System.err.println(ex.getMessage()); - imageList.add(new DownloadedImage(null, false, descriptor)); + actionableImage.setSuccessfull(false); } } return imageList; diff --git a/src/main/java/de/telran/service/FileService.java b/src/main/java/de/telran/service/FileService.java index e5497fc..f5ac952 100644 --- a/src/main/java/de/telran/service/FileService.java +++ b/src/main/java/de/telran/service/FileService.java @@ -1,5 +1,7 @@ package de.telran.service; +import de.telran.entity.ActionableImage; + import javax.imageio.ImageIO; import java.awt.image.BufferedImage; import java.io.File; @@ -20,10 +22,10 @@ public List loadStringsFromFile(String fileName) { } } - public void saveImageAsFile(BufferedImage image) { + public void saveImageAsFile(ActionableImage image) { try { - ImageIO.write(image, "jpg",new File("/Users/slukichev/Downloads/images/img_"+image.hashCode()+".jpg")); + ImageIO.write(image.getImage(), "jpg",new File("/Users/slukichev/Downloads/images/img_"+image.hashCode()+".jpg")); } catch (Exception ex) { ex.printStackTrace(); } diff --git a/src/main/java/de/telran/service/ImageService.java b/src/main/java/de/telran/service/ImageService.java index 5d63017..782ec5f 100644 --- a/src/main/java/de/telran/service/ImageService.java +++ b/src/main/java/de/telran/service/ImageService.java @@ -1,6 +1,7 @@ package de.telran.service; import de.telran.action.ImageAction; +import de.telran.entity.ActionableImage; import de.telran.factory.ImageActionFactory; import java.awt.image.BufferedImage; @@ -13,12 +14,12 @@ public ImageService(ImageActionFactory imageActionFactory) { this.imageActionFactory = imageActionFactory; } - public BufferedImage processImage(BufferedImage image, String actionName) { - ImageAction imageAction = imageActionFactory.getImageAction(actionName); + public ActionableImage processImage(ActionableImage image) { + ImageAction imageAction = imageActionFactory.getImageAction(image.getActionName()); try { - return imageAction.doAction(image); + image.setImage(imageAction.doAction(image.getImage()));//better use copying constructor } catch (Exception ex) { - System.out.println("Could not process image with action "+actionName+": "+ex.getMessage()); + System.out.println("Could not process image with action "+image.getActionName()+": "+ex.getMessage()); } return image; } diff --git a/src/test/java/ImageProcessorTest.java b/src/test/java/ImageProcessorTest.java index 9d4b342..b2c0edd 100644 --- a/src/test/java/ImageProcessorTest.java +++ b/src/test/java/ImageProcessorTest.java @@ -1,5 +1,5 @@ import de.telran.ImageProcessor; -import de.telran.entity.DownloadedImage; +import de.telran.entity.ActionableImage; import de.telran.entity.ImageDescriptor; import de.telran.service.DownloadService; import de.telran.service.FileService; @@ -8,11 +8,8 @@ import org.junit.Before; import org.junit.Test; -import java.awt.image.BufferedImage; -import java.awt.image.IndexColorModel; import java.util.Arrays; import java.util.List; -import java.util.stream.Collectors; import static org.mockito.ArgumentMatchers.any; import static org.mockito.Mockito.*; @@ -49,10 +46,10 @@ public void testDoProcessing() { } - private static List createDownloadedImage() { + private static List createDownloadedImage() { return Arrays.asList( - new DownloadedImage(null, true, new ImageDescriptor("http://server.com/image1.jpg", "PREVIEW")), - new DownloadedImage(null, true, new ImageDescriptor("http://server.com/image2.jpg", "THUMBNAIL")) + new ActionableImage(null, true, new ImageDescriptor("http://server.com/image1.jpg", "PREVIEW")), + new ActionableImage(null, true, new ImageDescriptor("http://server.com/image2.jpg", "THUMBNAIL")) ); }