You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@harmony.apache.org by te...@apache.org on 2010/03/26 14:22:02 UTC

svn commit: r927838 - in /harmony/enhanced/trunk/classlib/modules/imageio/src/main/java: javax/imageio/ImageIO.java javax/imageio/spi/ImageReaderSpi.java org/apache/harmony/x/imageio/internal/nls/messages.properties

Author: tellison
Date: Fri Mar 26 13:22:02 2010
New Revision: 927838

URL: http://svn.apache.org/viewvc?rev=927838&view=rev
Log:
Apply modified patch for HARMONY-6482 (Implementation of getImageWriter, getImageReader)

Modified:
    harmony/enhanced/trunk/classlib/modules/imageio/src/main/java/javax/imageio/ImageIO.java
    harmony/enhanced/trunk/classlib/modules/imageio/src/main/java/javax/imageio/spi/ImageReaderSpi.java
    harmony/enhanced/trunk/classlib/modules/imageio/src/main/java/org/apache/harmony/x/imageio/internal/nls/messages.properties

Modified: harmony/enhanced/trunk/classlib/modules/imageio/src/main/java/javax/imageio/ImageIO.java
URL: http://svn.apache.org/viewvc/harmony/enhanced/trunk/classlib/modules/imageio/src/main/java/javax/imageio/ImageIO.java?rev=927838&r1=927837&r2=927838&view=diff
==============================================================================
--- harmony/enhanced/trunk/classlib/modules/imageio/src/main/java/javax/imageio/ImageIO.java (original)
+++ harmony/enhanced/trunk/classlib/modules/imageio/src/main/java/javax/imageio/ImageIO.java Fri Mar 26 13:22:02 2010
@@ -217,14 +217,63 @@ public final class ImageIO {
                 new MIMETypeFilter(MIMEType), true));
     }
 
-    public static ImageWriter getImageWriter(ImageReader reader) throws NotImplementedException {
-        // TODO: implement
-        throw new NotImplementedException();
+    public static ImageWriter getImageWriter(ImageReader reader) {
+        if (reader == null) {
+            // imageio.97=Reader cannot be null
+            throw new IllegalArgumentException(Messages.getString("imageio.97")); //$NON-NLS-1$
+        }
+
+        ImageReaderSpi readerSpi = reader.getOriginatingProvider();
+        if (readerSpi.getImageWriterSpiNames() == null) {
+            return null;
+        }
+
+        String writerSpiName = readerSpi.getImageWriterSpiNames()[0];
+
+        Iterator<ImageWriterSpi> writerSpis;
+        writerSpis = registry.getServiceProviders(ImageWriterSpi.class, true);
+
+        try {
+            while (writerSpis.hasNext()) {
+                ImageWriterSpi writerSpi = writerSpis.next();
+                if (writerSpi.getClass().getName().equals(writerSpiName)) {
+                    return writerSpi.createWriterInstance();
+                }
+            }
+        } catch (IOException e) {
+            // Ignored
+        }
+
+        return null;
     }
 
-    public static ImageReader getImageReader(ImageWriter writer) throws NotImplementedException {
-        // TODO: implement
-        throw new NotImplementedException();
+    public static ImageReader getImageReader(ImageWriter writer) {
+        if (writer == null) {
+            // imageio.96=Writer cannot be null
+            throw new IllegalArgumentException(Messages.getString("imageio.96")); //$NON-NLS-1$
+        }
+        ImageWriterSpi writerSpi = writer.getOriginatingProvider();
+        if (writerSpi.getImageReaderSpiNames() == null) {
+            return null;
+        }
+
+        String readerSpiName = writerSpi.getImageReaderSpiNames()[0];
+
+        Iterator<ImageReaderSpi> readerSpis;
+        readerSpis = registry.getServiceProviders(ImageReaderSpi.class, true);
+
+        try {
+            while (readerSpis.hasNext()) {
+                ImageReaderSpi readerSpi = readerSpis.next();
+                if (readerSpi.getClass().getName().equals(readerSpiName)) {
+                    return readerSpi.createReaderInstance();
+                }
+            }
+        } catch (IOException e) {
+            // Ignored
+        }
+
+        return null;
     }
 
     public static Iterator<ImageWriter> getImageWriters(ImageTypeSpecifier type,

Modified: harmony/enhanced/trunk/classlib/modules/imageio/src/main/java/javax/imageio/spi/ImageReaderSpi.java
URL: http://svn.apache.org/viewvc/harmony/enhanced/trunk/classlib/modules/imageio/src/main/java/javax/imageio/spi/ImageReaderSpi.java?rev=927838&r1=927837&r2=927838&view=diff
==============================================================================
--- harmony/enhanced/trunk/classlib/modules/imageio/src/main/java/javax/imageio/spi/ImageReaderSpi.java (original)
+++ harmony/enhanced/trunk/classlib/modules/imageio/src/main/java/javax/imageio/spi/ImageReaderSpi.java Fri Mar 26 13:22:02 2010
@@ -83,8 +83,7 @@ public abstract class ImageReaderSpi ext
         throw new NotImplementedException();
     }
 
-    public String[] getImageWriterSpiNames() throws NotImplementedException {
-        // TODO: implement
-        throw new NotImplementedException();
+    public String[] getImageWriterSpiNames() {
+        return writerSpiNames;
     }
 }

Modified: harmony/enhanced/trunk/classlib/modules/imageio/src/main/java/org/apache/harmony/x/imageio/internal/nls/messages.properties
URL: http://svn.apache.org/viewvc/harmony/enhanced/trunk/classlib/modules/imageio/src/main/java/org/apache/harmony/x/imageio/internal/nls/messages.properties?rev=927838&r1=927837&r2=927838&view=diff
==============================================================================
--- harmony/enhanced/trunk/classlib/modules/imageio/src/main/java/org/apache/harmony/x/imageio/internal/nls/messages.properties (original)
+++ harmony/enhanced/trunk/classlib/modules/imageio/src/main/java/org/apache/harmony/x/imageio/internal/nls/messages.properties Fri Mar 26 13:22:02 2010
@@ -164,3 +164,6 @@ imageio.92=Unknown category: {0}
 imageio.93=Illegal table size: {0}
 imageio.94=Output {0} is not supported
 imageio.95=Input is not an instance of java.io.RandomAccessFile
+imageio.96=Writer cannot be null
+imageio.97=Reader cannot be null
+