Skip to content

Commit 284cbb8

Browse files
committed
Refactoring ImageProviders
- Rename AbstractImageProvider to AbstractImageProviderWrapper - Changed equals implemenation (made it shorter) - Added Objects.requireNonNull to constructors in subclasses of AbstractImageProviderWrapper - Changed return type of method createCopy(...) in subclasses
1 parent 48054df commit 284cbb8

File tree

1 file changed

+16
-18
lines changed
  • bundles/org.eclipse.swt/Eclipse SWT/win32/org/eclipse/swt/graphics

1 file changed

+16
-18
lines changed

bundles/org.eclipse.swt/Eclipse SWT/win32/org/eclipse/swt/graphics/Image.java

Lines changed: 16 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -103,7 +103,7 @@ public final class Image extends Resource implements Drawable {
103103
/**
104104
* AbstractImageProvider to avail right ImageProvider (ImageDataProvider or ImageFileNameProvider)
105105
*/
106-
private AbstractImageProvider imageProvider;
106+
private AbstractImageProviderWrapper imageProvider;
107107

108108
/**
109109
* Style flag used to differentiate normal, gray-scale and disabled images based
@@ -2036,7 +2036,7 @@ public static Image win32_new(Device device, int type, long handle) {
20362036
return image;
20372037
}
20382038

2039-
// This class is only used for a workaround and will be removed again
2039+
//This class is only used for a workaround and will be removed again
20402040
private class StaticZoomUpdater implements AutoCloseable {
20412041
private final boolean updateStaticZoom;
20422042
private final int currentNativeDeviceZoom;
@@ -2057,11 +2057,11 @@ public void close() {
20572057
}
20582058
}
20592059

2060-
private abstract class AbstractImageProvider {
2060+
private abstract class AbstractImageProviderWrapper {
20612061
abstract Object getProvider();
20622062
abstract ImageData getImageData(int zoom);
20632063
abstract ImageHandle getImageMetadata(int zoom);
2064-
abstract AbstractImageProvider createCopy(Image image);
2064+
abstract AbstractImageProviderWrapper createCopy(Image image);
20652065

20662066
@Override
20672067
public int hashCode() {
@@ -2070,22 +2070,20 @@ public int hashCode() {
20702070

20712071
@Override
20722072
public boolean equals(Object otherProvider) {
2073-
if(otherProvider != null && otherProvider instanceof AbstractImageProvider) {
2074-
return getProvider().equals (((AbstractImageProvider) otherProvider).getProvider());
2075-
}
2076-
return false;
2073+
return otherProvider instanceof AbstractImageProviderWrapper aip //
2074+
&& getProvider().equals(aip.getProvider());
20772075
}
20782076
}
20792077

2080-
private class ImageFileNameProviderWrapper extends AbstractImageProvider {
2078+
private class ImageFileNameProviderWrapper extends AbstractImageProviderWrapper {
20812079

20822080
/**
20832081
* ImageFileNameProvider to provide file names at various Zoom levels
20842082
*/
2085-
final ImageFileNameProvider provider;
2083+
private final ImageFileNameProvider provider;
20862084

2087-
public ImageFileNameProviderWrapper(ImageFileNameProvider provider) {
2088-
this.provider = provider;
2085+
ImageFileNameProviderWrapper(ImageFileNameProvider provider) {
2086+
this.provider = Objects.requireNonNull(provider);
20892087
}
20902088

20912089
@Override
@@ -2122,20 +2120,20 @@ public int hashCode() {
21222120
}
21232121

21242122
@Override
2125-
AbstractImageProvider createCopy(Image image) {
2123+
ImageFileNameProviderWrapper createCopy(Image image) {
21262124
return image.new ImageFileNameProviderWrapper(provider);
21272125
}
21282126
}
21292127

2130-
private class ImageDataProviderWrapper extends AbstractImageProvider {
2128+
private class ImageDataProviderWrapper extends AbstractImageProviderWrapper {
21312129

21322130
/**
21332131
* ImageDataProvider to provide ImageData at various Zoom levels
21342132
*/
2135-
final ImageDataProvider provider;
2133+
private final ImageDataProvider provider;
21362134

2137-
public ImageDataProviderWrapper(ImageDataProvider provider) {
2138-
this.provider = provider;
2135+
ImageDataProviderWrapper(ImageDataProvider provider) {
2136+
this.provider = Objects.requireNonNull(provider);
21392137
}
21402138

21412139
@Override
@@ -2160,7 +2158,7 @@ Object getProvider() {
21602158
}
21612159

21622160
@Override
2163-
AbstractImageProvider createCopy(Image image) {
2161+
ImageDataProviderWrapper createCopy(Image image) {
21642162
return image.new ImageDataProviderWrapper(provider);
21652163
}
21662164
}

0 commit comments

Comments
 (0)