diff options
Diffstat (limited to 'libjava/javax/imageio/ImageReader.java')
-rw-r--r-- | libjava/javax/imageio/ImageReader.java | 39 |
1 files changed, 38 insertions, 1 deletions
diff --git a/libjava/javax/imageio/ImageReader.java b/libjava/javax/imageio/ImageReader.java index 91cb53cd8b4..6e5a1b2d87e 100644 --- a/libjava/javax/imageio/ImageReader.java +++ b/libjava/javax/imageio/ImageReader.java @@ -51,6 +51,7 @@ import javax.imageio.event.IIOReadUpdateListener; import javax.imageio.event.IIOReadWarningListener; import javax.imageio.metadata.IIOMetadata; import javax.imageio.spi.ImageReaderSpi; +import javax.imageio.stream.ImageInputStream; public abstract class ImageReader { @@ -62,7 +63,7 @@ public abstract class ImageReader protected Locale locale; protected int minIndex; protected ImageReaderSpi originatingProvider; - protected List progressListeners; + protected List progressListeners = new ArrayList(); protected boolean seekForwardOnly; protected List updateListeners = new ArrayList(); protected List warningListeners = new ArrayList(); @@ -156,6 +157,42 @@ public abstract class ImageReader public abstract Iterator getImageTypes(int imageIndex) throws IOException; + public void setInput(Object input, + boolean seekForwardOnly, + boolean ignoreMetadata) + { + Class[] okClasses = originatingProvider.getInputTypes(); + if (okClasses == null) + { + if (!(input instanceof ImageInputStream)) + throw new IllegalArgumentException(); + } + else + { + boolean classOk = false; + for (int i = 0; i < okClasses.length; ++i) + if (okClasses[i].isInstance(input)) + classOk = true; + if (!classOk) + throw new IllegalArgumentException(); + } + + this.input = input; + this.seekForwardOnly = seekForwardOnly; + this.ignoreMetadata = ignoreMetadata; + this.minIndex = 0; + } + + public void setInput(Object in, boolean seekForwardOnly) + { + setInput(in, seekForwardOnly, false); + } + + public void setInput(Object in) + { + setInput(in, false, false); + } + public Object getInput() { return input; |