DefaultContentHandlerFactory.java: Check in real file missed in last commit.
authorMark Wielaard <mark@klomp.org>
Fri, 23 Jul 2004 14:25:41 +0000 (14:25 +0000)
committerBryce McKinlay <bryce@gcc.gnu.org>
Fri, 23 Jul 2004 14:25:41 +0000 (15:25 +0100)
2004-07-23  Mark Wielaard  <mark@klomp.org>

* gnu/java/net/DefaultContentHandlerFactory.java: Check in real file
missed in last commit.

From-SVN: r85080

libjava/ChangeLog
libjava/gnu/java/net/DefaultContentHandlerFactory.java

index e9dd6797d3463ada4ce953fabf1782ace6db440b..502d3e867c230af6e379264f625bf7e944a47961 100644 (file)
@@ -1,3 +1,8 @@
+2004-07-23  Mark Wielaard  <mark@klomp.org>
+
+       * gnu/java/net/DefaultContentHandlerFactory.java: Check in real file
+       missed in last commit.
+
 2004-07-23  Mark Wielaard  <mark@klomp.org>
 
        * java/lang/System.java (static): Set http.agent system property when
index 49df2bc03a9ad888f03b3c3995b9d5a84d36e7f1..a653cff051bd14768244e8bb45ccb74f6fb476a6 100644 (file)
@@ -1,4 +1,4 @@
-/* DefaultContentHandlerFactory.java -- DUMMY implementation
+/* DefaultContentHandlerFactory.java
    Copyright (C) 2004 Free Software Foundation, Inc.
 
 This file is part of GNU Classpath.
@@ -7,7 +7,7 @@ GNU Classpath is free software; you can redistribute it and/or modify
 it under the terms of the GNU General Public License as published by
 the Free Software Foundation; either version 2, or (at your option)
 any later version.
-
 GNU Classpath is distributed in the hope that it will be useful, but
 WITHOUT ANY WARRANTY; without even the implied warranty of
 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
@@ -35,16 +35,61 @@ this exception to your version of the library, but you are not
 obligated to do so.  If you do not wish to do so, delete this
 exception statement from your version. */
 
+
 package gnu.java.net;
 
+import java.awt.Toolkit;
+import java.io.IOException;
 import java.net.ContentHandler;
 import java.net.ContentHandlerFactory;
+import java.net.URLConnection;
+import java.util.Arrays;
+import java.util.HashSet;
+
+import gnu.java.awt.ClasspathToolkit;
 
-public class DefaultContentHandlerFactory
-  implements ContentHandlerFactory
+/** Content Handler for Image types, using the AWT Toolkit's image decoder. */
+class ImageHandler extends ContentHandler
 {
+  static ImageHandler instance = new ImageHandler();
+  
+  public Object getContent(URLConnection urlc) throws IOException
+  {
+    ClasspathToolkit tk = (ClasspathToolkit) Toolkit.getDefaultToolkit();
+    java.awt.image.ImageProducer ip = tk.createImageProducer(urlc.getURL());
+    return ip;
+  }
+}
+
+/**
+ */
+public class DefaultContentHandlerFactory implements ContentHandlerFactory
+{
+  /** For now, hard code the list of types that we assume should
+   *  be supported by the Toolkit. ClasspathToolkit should perhaps provide
+   *  an API to express what Image MIME types the Toolkit understands.
+   */
+  private static String[] known_image_types =
+    {
+      "image/bmp",
+      "image/gif",
+      "image/jpeg",
+      "image/png",
+      "image/tiff",
+      "image/x-portable-anymap",
+      "image/x-cmu-raster",
+      "image/x-xbitmap",
+      "image/x-xpixmap"
+    };
+   
+  private static HashSet imageTypes
+    = new HashSet(Arrays.asList(known_image_types));
+
   public ContentHandler createContentHandler(String mimeType)
   {
+    if (imageTypes.contains(mimeType))
+      return ImageHandler.instance;
+    // Currently, only image types are handled.
     return null;
   }
 }