From 0ccfc56e980fb2b0d76e630a930b8a45818f85d4 Mon Sep 17 00:00:00 2001 From: Hammy Date: Wed, 4 Aug 2021 22:41:29 +0100 Subject: [PATCH] Restructure classes to ensure classes are not unnecessarily public --- .../java/me/goudham/ClipboardListener.java | 60 +++++++++++++++++++ src/main/java/me/goudham/ClipboardUtils.java | 8 +-- .../me/goudham/{domain => }/Contents.java | 8 +-- .../java/me/goudham/MacClipboardListener.java | 10 +--- .../{domain => }/MyClipboardContent.java | 6 +- .../me/goudham/{domain => }/OldImage.java | 6 +- .../WindowsOrUnixClipboardListener.java | 8 +-- .../goudham/domain/TransferableFileList.java | 36 ----------- .../me/goudham/domain/TransferableImage.java | 35 ----------- 9 files changed, 79 insertions(+), 98 deletions(-) rename src/main/java/me/goudham/{domain => }/Contents.java (85%) rename src/main/java/me/goudham/{domain => }/MyClipboardContent.java (86%) rename src/main/java/me/goudham/{domain => }/OldImage.java (89%) delete mode 100644 src/main/java/me/goudham/domain/TransferableFileList.java delete mode 100644 src/main/java/me/goudham/domain/TransferableImage.java diff --git a/src/main/java/me/goudham/ClipboardListener.java b/src/main/java/me/goudham/ClipboardListener.java index fca0a0d..3fc0bfd 100644 --- a/src/main/java/me/goudham/ClipboardListener.java +++ b/src/main/java/me/goudham/ClipboardListener.java @@ -3,8 +3,12 @@ package me.goudham; import java.awt.Image; import java.awt.Toolkit; import java.awt.datatransfer.Clipboard; +import java.awt.datatransfer.DataFlavor; +import java.awt.datatransfer.Transferable; +import java.awt.datatransfer.UnsupportedFlavorException; import java.io.File; import java.util.List; +import org.jetbrains.annotations.NotNull; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -102,4 +106,60 @@ abstract class ClipboardListener { void setEventManager(EventManager eventManager) { this.eventManager = eventManager; } + + static class TransferableFileList implements Transferable { + + private final List fileList; + + public TransferableFileList(@NotNull List fileList) { + this.fileList = fileList; + } + + @Override + public Object getTransferData(DataFlavor flavor) throws UnsupportedFlavorException { + if (flavor.equals(DataFlavor.javaFileListFlavor)) { + return fileList; + } else { + throw new UnsupportedFlavorException(flavor); + } + } + + @Override + public DataFlavor[] getTransferDataFlavors() { + return new DataFlavor[] { DataFlavor.javaFileListFlavor }; + } + + @Override + public boolean isDataFlavorSupported(DataFlavor flavor) { + return flavor == DataFlavor.javaFileListFlavor; + } + } + + static class TransferableImage implements Transferable { + + private final Image image; + + public TransferableImage(@NotNull Image image) { + this.image = image; + } + + @Override + public Object getTransferData(DataFlavor flavor) throws UnsupportedFlavorException { + if (flavor.equals(DataFlavor.imageFlavor)) { + return image; + } else { + throw new UnsupportedFlavorException(flavor); + } + } + + @Override + public DataFlavor[] getTransferDataFlavors() { + return new DataFlavor[] { DataFlavor.imageFlavor }; + } + + @Override + public boolean isDataFlavorSupported(DataFlavor flavor) { + return flavor == DataFlavor.imageFlavor; + } + } } diff --git a/src/main/java/me/goudham/ClipboardUtils.java b/src/main/java/me/goudham/ClipboardUtils.java index 6d1bcf3..40983d1 100644 --- a/src/main/java/me/goudham/ClipboardUtils.java +++ b/src/main/java/me/goudham/ClipboardUtils.java @@ -10,15 +10,13 @@ import java.awt.image.BufferedImage; import java.io.File; import java.io.IOException; import java.util.List; -import me.goudham.domain.MyClipboardContent; import me.goudham.domain.OldClipboardContent; -import me.goudham.domain.OldImage; import org.slf4j.Logger; import org.slf4j.LoggerFactory; -import static me.goudham.domain.Contents.FILELIST; -import static me.goudham.domain.Contents.IMAGE; -import static me.goudham.domain.Contents.TEXT; +import static me.goudham.Contents.FILELIST; +import static me.goudham.Contents.IMAGE; +import static me.goudham.Contents.TEXT; class ClipboardUtils { protected static Logger logger = LoggerFactory.getLogger(ClipboardUtils.class); diff --git a/src/main/java/me/goudham/domain/Contents.java b/src/main/java/me/goudham/Contents.java similarity index 85% rename from src/main/java/me/goudham/domain/Contents.java rename to src/main/java/me/goudham/Contents.java index d12cf73..a101f1e 100644 --- a/src/main/java/me/goudham/domain/Contents.java +++ b/src/main/java/me/goudham/Contents.java @@ -1,9 +1,9 @@ -package me.goudham.domain; +package me.goudham; import java.awt.datatransfer.Clipboard; import java.awt.datatransfer.DataFlavor; -public enum Contents { +enum Contents { TEXT(DataFlavor.stringFlavor) { @Override public boolean isAvailable(Clipboard clipboard) { @@ -29,9 +29,9 @@ public enum Contents { this.dataFlavor = dataFlavor; } - public DataFlavor getDataFlavor() { + DataFlavor getDataFlavor() { return dataFlavor; } - public abstract boolean isAvailable(Clipboard clipboard); + abstract boolean isAvailable(Clipboard clipboard); } diff --git a/src/main/java/me/goudham/MacClipboardListener.java b/src/main/java/me/goudham/MacClipboardListener.java index 0467f94..ca0197c 100644 --- a/src/main/java/me/goudham/MacClipboardListener.java +++ b/src/main/java/me/goudham/MacClipboardListener.java @@ -10,19 +10,15 @@ import java.util.List; import java.util.concurrent.Executors; import java.util.concurrent.ScheduledExecutorService; import java.util.concurrent.TimeUnit; -import me.goudham.domain.MyClipboardContent; import me.goudham.domain.OldClipboardContent; -import me.goudham.domain.OldImage; -import me.goudham.domain.TransferableFileList; -import me.goudham.domain.TransferableImage; import static java.lang.Thread.sleep; import static me.goudham.ClipboardUtils.getFileContent; import static me.goudham.ClipboardUtils.getImageContent; import static me.goudham.ClipboardUtils.getStringContent; -import static me.goudham.domain.Contents.FILELIST; -import static me.goudham.domain.Contents.IMAGE; -import static me.goudham.domain.Contents.TEXT; +import static me.goudham.Contents.FILELIST; +import static me.goudham.Contents.IMAGE; +import static me.goudham.Contents.TEXT; class MacClipboardListener extends ClipboardListener implements Runnable { ScheduledExecutorService scheduledExecutorService = Executors.newSingleThreadScheduledExecutor(); diff --git a/src/main/java/me/goudham/domain/MyClipboardContent.java b/src/main/java/me/goudham/MyClipboardContent.java similarity index 86% rename from src/main/java/me/goudham/domain/MyClipboardContent.java rename to src/main/java/me/goudham/MyClipboardContent.java index 2af89a0..e7a7109 100644 --- a/src/main/java/me/goudham/domain/MyClipboardContent.java +++ b/src/main/java/me/goudham/MyClipboardContent.java @@ -1,11 +1,11 @@ -package me.goudham.domain; +package me.goudham; import java.util.Objects; -public class MyClipboardContent { +class MyClipboardContent { private T oldContent; - public MyClipboardContent() { + MyClipboardContent() { } public void setOldContent(Object oldContent) { diff --git a/src/main/java/me/goudham/domain/OldImage.java b/src/main/java/me/goudham/OldImage.java similarity index 89% rename from src/main/java/me/goudham/domain/OldImage.java rename to src/main/java/me/goudham/OldImage.java index 1f72f82..597b575 100644 --- a/src/main/java/me/goudham/domain/OldImage.java +++ b/src/main/java/me/goudham/OldImage.java @@ -1,14 +1,14 @@ -package me.goudham.domain; +package me.goudham; import java.awt.Dimension; import java.awt.image.BufferedImage; import java.util.Objects; -public class OldImage { +class OldImage { private BufferedImage oldBufferedImage; private Dimension oldDimension; - public OldImage(BufferedImage oldBufferedImage, Dimension oldDimension) { + OldImage(BufferedImage oldBufferedImage, Dimension oldDimension) { this.oldBufferedImage = oldBufferedImage; this.oldDimension = oldDimension; } diff --git a/src/main/java/me/goudham/WindowsOrUnixClipboardListener.java b/src/main/java/me/goudham/WindowsOrUnixClipboardListener.java index 091c2ac..213c9a6 100644 --- a/src/main/java/me/goudham/WindowsOrUnixClipboardListener.java +++ b/src/main/java/me/goudham/WindowsOrUnixClipboardListener.java @@ -12,17 +12,15 @@ import java.util.List; import java.util.concurrent.ExecutorService; import java.util.concurrent.Executors; import me.goudham.domain.OldClipboardContent; -import me.goudham.domain.TransferableFileList; -import me.goudham.domain.TransferableImage; import static java.lang.Thread.currentThread; import static java.lang.Thread.sleep; import static me.goudham.ClipboardUtils.getFileContent; import static me.goudham.ClipboardUtils.getImageContent; import static me.goudham.ClipboardUtils.getStringContent; -import static me.goudham.domain.Contents.FILELIST; -import static me.goudham.domain.Contents.IMAGE; -import static me.goudham.domain.Contents.TEXT; +import static me.goudham.Contents.FILELIST; +import static me.goudham.Contents.IMAGE; +import static me.goudham.Contents.TEXT; class WindowsOrUnixClipboardListener extends ClipboardListener implements Runnable, ClipboardOwner { private ExecutorService executorService = Executors.newSingleThreadExecutor(); diff --git a/src/main/java/me/goudham/domain/TransferableFileList.java b/src/main/java/me/goudham/domain/TransferableFileList.java deleted file mode 100644 index 78855d2..0000000 --- a/src/main/java/me/goudham/domain/TransferableFileList.java +++ /dev/null @@ -1,36 +0,0 @@ -package me.goudham.domain; - -import java.awt.datatransfer.DataFlavor; -import java.awt.datatransfer.Transferable; -import java.awt.datatransfer.UnsupportedFlavorException; -import java.io.File; -import java.util.List; -import org.jetbrains.annotations.NotNull; - -public class TransferableFileList implements Transferable { - - private final List fileList; - - public TransferableFileList(@NotNull List fileList) { - this.fileList = fileList; - } - - @Override - public Object getTransferData(DataFlavor flavor) throws UnsupportedFlavorException { - if (flavor.equals(DataFlavor.javaFileListFlavor)) { - return fileList; - } else { - throw new UnsupportedFlavorException(flavor); - } - } - - @Override - public DataFlavor[] getTransferDataFlavors() { - return new DataFlavor[] { DataFlavor.javaFileListFlavor }; - } - - @Override - public boolean isDataFlavorSupported(DataFlavor flavor) { - return flavor == DataFlavor.javaFileListFlavor; - } -} diff --git a/src/main/java/me/goudham/domain/TransferableImage.java b/src/main/java/me/goudham/domain/TransferableImage.java deleted file mode 100644 index 7ba437f..0000000 --- a/src/main/java/me/goudham/domain/TransferableImage.java +++ /dev/null @@ -1,35 +0,0 @@ -package me.goudham.domain; - -import java.awt.Image; -import java.awt.datatransfer.DataFlavor; -import java.awt.datatransfer.Transferable; -import java.awt.datatransfer.UnsupportedFlavorException; -import org.jetbrains.annotations.NotNull; - -public class TransferableImage implements Transferable { - - private final Image image; - - public TransferableImage(@NotNull Image image) { - this.image = image; - } - - @Override - public Object getTransferData(DataFlavor flavor) throws UnsupportedFlavorException { - if (flavor.equals(DataFlavor.imageFlavor)) { - return image; - } else { - throw new UnsupportedFlavorException(flavor); - } - } - - @Override - public DataFlavor[] getTransferDataFlavors() { - return new DataFlavor[] { DataFlavor.imageFlavor }; - } - - @Override - public boolean isDataFlavorSupported(DataFlavor flavor) { - return flavor == DataFlavor.imageFlavor; - } -}