Removed an unchecked cast.

This commit is contained in:
Harald Kuhr 2017-11-05 09:58:27 +01:00
parent c2dd99286c
commit 6b966a2d4f
11 changed files with 15 additions and 18 deletions

View File

@ -29,7 +29,6 @@
package com.twelvemonkeys.imageio.plugins.bmp; package com.twelvemonkeys.imageio.plugins.bmp;
import com.twelvemonkeys.imageio.spi.ImageReaderSpiBase; import com.twelvemonkeys.imageio.spi.ImageReaderSpiBase;
import com.twelvemonkeys.imageio.util.IIOUtil;
import javax.imageio.ImageReader; import javax.imageio.ImageReader;
import javax.imageio.spi.ImageReaderSpi; import javax.imageio.spi.ImageReaderSpi;
@ -56,7 +55,7 @@ public final class BMPImageReaderSpi extends ImageReaderSpiBase {
@SuppressWarnings("unchecked") @SuppressWarnings("unchecked")
@Override @Override
public void onRegistration(final ServiceRegistry registry, final Class<?> category) { public void onRegistration(final ServiceRegistry registry, final Class<?> category) {
ImageReaderSpi defaultProvider = lookupProviderByName(registry, "com.sun.imageio.plugins.bmp.BMPImageReaderSpi"); ImageReaderSpi defaultProvider = lookupProviderByName(registry, "com.sun.imageio.plugins.bmp.BMPImageReaderSpi", ImageReaderSpi.class);
if (defaultProvider != null) { if (defaultProvider != null) {
// Order before com.sun provider, to aid ImageIO in selecting our reader // Order before com.sun provider, to aid ImageIO in selecting our reader

View File

@ -170,12 +170,13 @@ public final class IIOUtil {
* *
* @param registry the registry to lookup from. * @param registry the registry to lookup from.
* @param providerClassName name of the provider class. * @param providerClassName name of the provider class.
* @param category provider category
* *
* @return the provider instance, or {@code null}. * @return the provider instance, or {@code null}.
*/ */
public static <T> T lookupProviderByName(final ServiceRegistry registry, final String providerClassName) { public static <T> T lookupProviderByName(final ServiceRegistry registry, final String providerClassName, Class<T> category) {
try { try {
return (T) registry.getServiceProviderByClass(Class.forName(providerClassName)); return category.cast(registry.getServiceProviderByClass(Class.forName(providerClassName)));
} }
catch (ClassNotFoundException ignore) { catch (ClassNotFoundException ignore) {
return null; return null;

View File

@ -38,7 +38,6 @@ import javax.imageio.metadata.IIOMetadataFormat;
import javax.imageio.spi.ImageReaderSpi; import javax.imageio.spi.ImageReaderSpi;
import javax.imageio.spi.ServiceRegistry; import javax.imageio.spi.ServiceRegistry;
import java.io.IOException; import java.io.IOException;
import java.util.Iterator;
import java.util.Locale; import java.util.Locale;
import static com.twelvemonkeys.imageio.util.IIOUtil.lookupProviderByName; import static com.twelvemonkeys.imageio.util.IIOUtil.lookupProviderByName;
@ -81,7 +80,7 @@ public final class JPEGImageReaderSpi extends ImageReaderSpiBase {
public void onRegistration(final ServiceRegistry registry, final Class<?> category) { public void onRegistration(final ServiceRegistry registry, final Class<?> category) {
if (delegateProvider == null) { if (delegateProvider == null) {
// Install delegate now // Install delegate now
delegateProvider = lookupProviderByName(registry, "com.sun.imageio.plugins.jpeg.JPEGImageReaderSpi"); delegateProvider = lookupProviderByName(registry, "com.sun.imageio.plugins.jpeg.JPEGImageReaderSpi", ImageReaderSpi.class);
} }
if (delegateProvider != null) { if (delegateProvider != null) {

View File

@ -29,7 +29,6 @@
package com.twelvemonkeys.imageio.plugins.jpeg; package com.twelvemonkeys.imageio.plugins.jpeg;
import com.twelvemonkeys.imageio.spi.ImageWriterSpiBase; import com.twelvemonkeys.imageio.spi.ImageWriterSpiBase;
import com.twelvemonkeys.imageio.util.IIOUtil;
import com.twelvemonkeys.lang.Validate; import com.twelvemonkeys.lang.Validate;
import javax.imageio.ImageTypeSpecifier; import javax.imageio.ImageTypeSpecifier;
@ -39,10 +38,10 @@ import javax.imageio.spi.ImageWriterSpi;
import javax.imageio.spi.ServiceRegistry; import javax.imageio.spi.ServiceRegistry;
import java.awt.image.RenderedImage; import java.awt.image.RenderedImage;
import java.io.IOException; import java.io.IOException;
import java.util.Iterator;
import java.util.Locale; import java.util.Locale;
import static com.twelvemonkeys.imageio.util.IIOUtil.*; import static com.twelvemonkeys.imageio.util.IIOUtil.deregisterProvider;
import static com.twelvemonkeys.imageio.util.IIOUtil.lookupProviderByName;
/** /**
* JPEGImageWriterSpi * JPEGImageWriterSpi
@ -78,7 +77,7 @@ public class JPEGImageWriterSpi extends ImageWriterSpiBase {
public void onRegistration(final ServiceRegistry registry, final Class<?> category) { public void onRegistration(final ServiceRegistry registry, final Class<?> category) {
if (delegateProvider == null) { if (delegateProvider == null) {
// Install delegate now // Install delegate now
delegateProvider = lookupProviderByName(registry, "com.sun.imageio.plugins.jpeg.JPEGImageWriterSpi"); delegateProvider = lookupProviderByName(registry, "com.sun.imageio.plugins.jpeg.JPEGImageWriterSpi", ImageWriterSpi.class);
} }
if (delegateProvider != null) { if (delegateProvider != null) {

View File

@ -36,7 +36,7 @@ public class JPEGImage10MetadataCleanerTest {
private static final JPEGImageReaderSpi SPI = new JPEGImageReaderSpi(lookupDelegateProvider()); private static final JPEGImageReaderSpi SPI = new JPEGImageReaderSpi(lookupDelegateProvider());
private static ImageReaderSpi lookupDelegateProvider() { private static ImageReaderSpi lookupDelegateProvider() {
return lookupProviderByName(IIORegistry.getDefaultInstance(), "com.sun.imageio.plugins.jpeg.JPEGImageReaderSpi"); return lookupProviderByName(IIORegistry.getDefaultInstance(), "com.sun.imageio.plugins.jpeg.JPEGImageReaderSpi", ImageReaderSpi.class);
} }
// Unit/regression test for #276 // Unit/regression test for #276

View File

@ -78,7 +78,7 @@ public class JPEGImageReaderTest extends ImageReaderAbstractTest<JPEGImageReader
private static final JPEGImageReaderSpi SPI = new JPEGImageReaderSpi(lookupDelegateProvider()); private static final JPEGImageReaderSpi SPI = new JPEGImageReaderSpi(lookupDelegateProvider());
private static ImageReaderSpi lookupDelegateProvider() { private static ImageReaderSpi lookupDelegateProvider() {
return lookupProviderByName(IIORegistry.getDefaultInstance(), "com.sun.imageio.plugins.jpeg.JPEGImageReaderSpi"); return lookupProviderByName(IIORegistry.getDefaultInstance(), "com.sun.imageio.plugins.jpeg.JPEGImageReaderSpi", ImageReaderSpi.class);
} }
@Override @Override

View File

@ -52,7 +52,7 @@ public class JPEGImageWriterTest extends ImageWriterAbstractTestCase {
private static final JPEGImageWriterSpi SPI = new JPEGImageWriterSpi(lookupDelegateProvider()); private static final JPEGImageWriterSpi SPI = new JPEGImageWriterSpi(lookupDelegateProvider());
private static ImageWriterSpi lookupDelegateProvider() { private static ImageWriterSpi lookupDelegateProvider() {
return IIOUtil.lookupProviderByName(IIORegistry.getDefaultInstance(), "com.sun.imageio.plugins.jpeg.JPEGImageWriterSpi"); return IIOUtil.lookupProviderByName(IIORegistry.getDefaultInstance(), "com.sun.imageio.plugins.jpeg.JPEGImageWriterSpi", ImageWriterSpi.class);
} }
@Override @Override

View File

@ -28,7 +28,7 @@ import static org.junit.Assume.assumeNoException;
public class JPEGImageReaderTest extends ImageReaderAbstractTest { public class JPEGImageReaderTest extends ImageReaderAbstractTest {
private static final boolean IS_JAVA_6_OR_LATER = SystemUtil.isClassAvailable("java.util.Deque"); private static final boolean IS_JAVA_6_OR_LATER = SystemUtil.isClassAvailable("java.util.Deque");
private final ImageReaderSpi provider = lookupProviderByName(IIORegistry.getDefaultInstance(), "com.sun.imageio.plugins.jpeg.JPEGImageReaderSpi"); private final ImageReaderSpi provider = lookupProviderByName(IIORegistry.getDefaultInstance(), "com.sun.imageio.plugins.jpeg.JPEGImageReaderSpi", ImageReaderSpi.class);
@Override @Override
protected List<TestData> getTestData() { protected List<TestData> getTestData() {

View File

@ -24,7 +24,7 @@ import static org.junit.Assume.assumeNoException;
* @version $Id: PNGImageReaderTest.java,v 1.0 Oct 9, 2009 3:37:25 PM haraldk Exp$ * @version $Id: PNGImageReaderTest.java,v 1.0 Oct 9, 2009 3:37:25 PM haraldk Exp$
*/ */
public class PNGImageReaderTest extends ImageReaderAbstractTest { public class PNGImageReaderTest extends ImageReaderAbstractTest {
private final ImageReaderSpi provider = IIOUtil.lookupProviderByName(IIORegistry.getDefaultInstance(), "com.sun.imageio.plugins.png.PNGImageReaderSpi"); private final ImageReaderSpi provider = IIOUtil.lookupProviderByName(IIORegistry.getDefaultInstance(), "com.sun.imageio.plugins.png.PNGImageReaderSpi", ImageReaderSpi.class);
@Override @Override
protected List<TestData> getTestData() { protected List<TestData> getTestData() {

View File

@ -29,7 +29,6 @@
package com.twelvemonkeys.imageio.plugins.thumbsdb; package com.twelvemonkeys.imageio.plugins.thumbsdb;
import com.twelvemonkeys.imageio.spi.ImageReaderSpiBase; import com.twelvemonkeys.imageio.spi.ImageReaderSpiBase;
import com.twelvemonkeys.imageio.util.IIOUtil;
import com.twelvemonkeys.io.ole2.CompoundDocument; import com.twelvemonkeys.io.ole2.CompoundDocument;
import javax.imageio.ImageReader; import javax.imageio.ImageReader;
@ -80,7 +79,7 @@ public final class ThumbsDBImageReaderSpi extends ImageReaderSpiBase {
// and the lookup below will produce a NPE.. // and the lookup below will produce a NPE..
if (jpegProvider == null) { if (jpegProvider == null) {
// Prefer the one we know // Prefer the one we know
ImageReaderSpi provider = lookupProviderByName(IIORegistry.getDefaultInstance(), "com.sun.imageio.plugins.jpeg.JPEGImageReaderSpi"); ImageReaderSpi provider = lookupProviderByName(IIORegistry.getDefaultInstance(), "com.sun.imageio.plugins.jpeg.JPEGImageReaderSpi", ImageReaderSpi.class);
if (provider == null) { if (provider == null) {
try { try {

View File

@ -2440,7 +2440,7 @@ public final class TIFFImageReader extends ImageReaderBase {
private static void deregisterOSXTIFFImageReaderSpi() { private static void deregisterOSXTIFFImageReaderSpi() {
IIORegistry registry = IIORegistry.getDefaultInstance(); IIORegistry registry = IIORegistry.getDefaultInstance();
ImageReaderSpi provider = lookupProviderByName(registry, "com.sun.imageio.plugins.tiff.TIFFImageReaderSpi"); ImageReaderSpi provider = lookupProviderByName(registry, "com.sun.imageio.plugins.tiff.TIFFImageReaderSpi", ImageReaderSpi.class);
if (provider != null) { if (provider != null) {
registry.deregisterServiceProvider(provider); registry.deregisterServiceProvider(provider);