@@ -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
20402040private 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