[multiple changes]

2004-11-06  Mark Wielaard  <mark@klomp.org>

	* Makefile.am: Add new javax.imageio files.
	* Makefile.in: Regenerated.

2004-11-06  Michael Koch  <konqueror@gmx.de>

	* javax/imageio/event/IIOReadProgressListener.java,
        javax/imageio/event/IIOReadUpdateListener.java,
	javax/imageio/event/IIOReadWarningListener.java,
	javax/imageio/event/IIOWriteProgressListener.java,
	javax/imageio/event/IIOWriteWarningListener.java,
	javax/imageio/metadata/IIOMetadataFormat.java,
	javax/imageio/stream/FileCacheImageInputStream.java,
	javax/imageio/stream/FileCacheImageOutputStream.java,
	javax/imageio/stream/ImageInputStreamImpl.java:
	Import cleanup.
	* javax/imageio/metadata/package.html: New file.

2004-11-06  Michael Koch  <konqueror@gmx.de>

	* javax/imageio/spi/ImageReaderSpi.java
	(isOwnReader): New method.
	* javax/imageio/spi/ImageWriterSpi.java
	(isOwnWriter): Likewise.

2004-11-06  Michael Koch  <konqueror@gmx.de>

	* javax/imageio/ImageWriter.java
	(convertImageMetadata): New abstract method.
	(convertStreamMetadata): Likewise.
	(write): Likewise.
	* javax/imageio/stream/FileCacheImageInputStream.java
	(close): Fixed setting of stream to null.
	(checkStreamClosed): Throws IOException.

2004-11-06  Michael Koch  <konqueror@gmx.de>

	* javax/imageio/stream/FileCacheImageInputStream.java,
	javax/imageio/stream/FileCacheImageOutputStream.java,
	javax/imageio/stream/FileImageInputStream.java,
	javax/imageio/stream/FileImageOutputStream.java,
	javax/imageio/stream/MemoryCacheImageInputStream.java,
	javax/imageio/stream/MemoryCacheImageOutputStream.java:
	New files.

2004-11-06  Michael Koch  <konqueror@gmx.de>

	* javax/imageio/metadata/IIOInvalidTreeException.java,
	javax/imageio/metadata/IIOMetadataFormatImpl.java,
	javax/imageio/metadata/IIOMetadataNode.java:
	New stub files.

2004-11-06  Michael Koch  <konqueror@gmx.de>

	* javax/imageio/stream/ImageInputStreamImpl.java,
	javax/imageio/stream/ImageOutputStreamImpl.java:
	New files.

2004-11-06  Michael Koch  <konqueror@gmx.de>

	* javax/imageio/ImageIO.java:
	Added much new methods.

2004-11-06  Michael Koch  <konqueror@gmx.de>

	* javax/imageio/ImageReader.java,
	javax/imageio/ImageWriter.java,
	javax/imageio/spi/ImageWriterSpi.java:
	Add SOME new methods.

2004-11-06  Michael Koch  <konqueror@gmx.de>

	* javax/imageio/IIOParam.java,
	javax/imageio/ImageReadParam.java,
	javax/imageio/ImageReader.java,
	javax/imageio/ImageWriter.java:
	Mostly implemented.
	* javax/imageio/spi/ImageReaderSpi.java,
	javax/imageio/spi/ImageWriterSpi.java:
	New files.

2004-11-06  Michael Koch  <konqueror@gmx.de>

	* javax/imageio/ImageWriteParam.java,
	javax/imageio/metadata/IIOMetadataFormat.java:
	Implemented.

2004-11-06  Michael Koch  <konqueror@gmx.de>

	* javax/imageio/ImageTypeSpecifier.java:
	Mostly implemented.

2004-11-06  Michael Koch  <konqueror@gmx.de>

	* javax/imageio/metadata/IIOMetadata.java:
	Mostly implemented.

2004-11-06  Michael Koch  <konqueror@gmx.de>

	* javax/imageio/IIOImage.java,
	javax/imageio/ImageReadParam.java,
	javax/imageio/metadata/IIOMetadataController.java,
	javax/imageio/metadata/IIOMetadataFormat.java:
	New files.
	* javax/imageio/stream/ImageOutputStream.java:
	Implemented.

2004-11-06  Michael Koch  <konqueror@gmx.de>

	* javax/imageio/IIOParam.java,
	javax/imageio/IIOParamController.java,
	javax/imageio/ImageTypeSpecifier.java,
	javax/imageio/ImageWriteParam.java,
	javax/imageio/metadata/IIOMetadata.java:
	New files.
	* javax/imageio/ImageTranscoder.java:
	Implemented.

2004-11-06  Michael Koch  <konqueror@gmx.de>

	* javax/imageio/spi/ImageInputStreamSpi.java,
	javax/imageio/spi/ImageOutputStreamSpi.java:
	Reworked import startments.
	* javax/imageio/spi/ServiceRegistry.java:
	Reworked import startments. Fixed XHTML in javadocs.
	(ServiceRegistry): Added @param tag to javadoc.
	* javax/imageio/stream/ImageInputStream.java
	(mark): Doesn't throws IOException;

2004-11-06  Michael Koch  <konqueror@gmx.de>

	* javax/imageio/ImageIO.java:
	New file.

2004-11-06  Michael Koch  <konqueror@gmx.de>

	* javax/imageio/spi/IIORegistry.java
	(static): Don't register ImageReaderSpi.class and
	ImageWriterSpi.class yet.

2004-11-06  Michael Koch  <konqueror@gmx.de>

	* javax/imageio/spi/IIORegistry.java:
	New file.

From-SVN: r90181
This commit is contained in:
Mark Wielaard 2004-11-06 18:09:00 +00:00
parent bb05e3410c
commit 6c56bdc2fa
42 changed files with 4604 additions and 33 deletions

View file

@ -1,5 +1,5 @@
/* ImageWriter.java -- Encodes raster images.
Copyright (C) 2004 Free Software Foundation, Inc.
Copyright (C) 2004 Free Software Foundation, Inc.
This file is part of GNU Classpath.
@ -38,10 +38,352 @@ exception statement from your version. */
package javax.imageio;
import java.awt.Dimension;
import java.io.IOException;
import java.util.Iterator;
import java.util.List;
import java.util.Locale;
import javax.imageio.event.IIOWriteProgressListener;
import javax.imageio.event.IIOWriteWarningListener;
import javax.imageio.metadata.IIOMetadata;
import javax.imageio.spi.ImageWriterSpi;
public abstract class ImageWriter
implements ImageTranscoder
{
// FIXME: Incomplete. This class is merely present in order to allow
// compilation of the javax.imageio.spi package, for which GNU
// Classpath does provide an implementation.
private boolean aborted;
protected Locale[] availableLocales;
protected Locale locale;
protected ImageWriterSpi originatingProvider;
protected Object output;
protected List progressListeners;
protected List warningListeners;
protected List warningLocales;
protected ImageWriter(ImageWriterSpi originatingProvider)
{
this.originatingProvider = originatingProvider;
}
private void checkOutputSet()
{
if (output == null)
throw new IllegalStateException("no output set");
}
public void abort()
{
aborted = true;
}
protected boolean abortRequested()
{
return aborted;
}
public void addIIOWriteProgressListener(IIOWriteProgressListener listener)
{
if (listener == null)
return;
progressListeners.add(listener);
}
public void addIIOWriteWarningListener (IIOWriteWarningListener listener)
{
if (listener == null)
return;
warningListeners.add(listener);
}
public boolean canInsertEmpty(int imageIndex)
throws IOException
{
checkOutputSet();
return false;
}
public boolean canInsertImage(int imageIndex)
throws IOException
{
checkOutputSet();
return false;
}
public boolean canRemoveImage(int imageIndex)
throws IOException
{
checkOutputSet();
return false;
}
public boolean canReplaceImageMetadata(int imageIndex)
throws IOException
{
checkOutputSet();
return false;
}
public boolean canReplacePixels(int imageIndex)
throws IOException
{
checkOutputSet();
return false;
}
public boolean canReplaceStreamMetadata()
throws IOException
{
checkOutputSet();
return false;
}
public boolean canWriteEmpty()
throws IOException
{
checkOutputSet();
return false;
}
public boolean canWriteRasters()
{
return false;
}
public boolean canWriteSequence()
{
return false;
}
protected void clearAbortRequest()
{
aborted = false;
}
public abstract IIOMetadata convertImageMetadata (IIOMetadata inData,
ImageTypeSpecifier imageType,
ImageWriteParam param);
public abstract IIOMetadata convertStreamMetadata (IIOMetadata inData,
ImageWriteParam param);
public void dispose()
{
// The default implementation is empty. Subclasses have to overwrite it.
}
public Locale[] getAvailableLocales()
{
return availableLocales;
}
public abstract IIOMetadata getDefaultImageMetadata (ImageTypeSpecifier imageType, ImageWriteParam param);
public abstract IIOMetadata getDefaultStreamMetadata (ImageWriteParam param);
public ImageWriteParam getDefaultWriteParam()
{
return new ImageWriteParam(getLocale());
}
public Locale getLocale()
{
return locale;
}
public int getNumThumbnailsSupported (ImageTypeSpecifier imageType, ImageWriteParam param,
IIOMetadata streamMetadata, IIOMetadata imageMetadata)
{
return 0;
}
public ImageWriterSpi getOriginatingProvider()
{
return originatingProvider;
}
public Object getOutput()
{
return output;
}
public Dimension[] getPreferredThumbnailSizes (ImageTypeSpecifier imageType,
ImageWriteParam param,
IIOMetadata streamMetadata,
IIOMetadata imageMetadata)
{
return null;
}
protected void processImageComplete()
{
Iterator it = progressListeners.iterator();
while (it.hasNext())
{
IIOWriteProgressListener listener = (IIOWriteProgressListener) it.next();
listener.imageComplete(this);
}
}
protected void processImageProgress(float percentageDone)
{
Iterator it = progressListeners.iterator();
while (it.hasNext())
{
IIOWriteProgressListener listener = (IIOWriteProgressListener) it.next();
listener.imageProgress(this, percentageDone);
}
}
protected void processImageStarted(int imageIndex)
{
Iterator it = progressListeners.iterator();
while (it.hasNext())
{
IIOWriteProgressListener listener = (IIOWriteProgressListener) it.next();
listener.imageStarted(this, imageIndex);
}
}
protected void processThumbnailComplete()
{
Iterator it = progressListeners.iterator();
while (it.hasNext())
{
IIOWriteProgressListener listener = (IIOWriteProgressListener) it.next();
listener.thumbnailComplete(this);
}
}
protected void processThumbnailProgress(float percentageDone)
{
Iterator it = progressListeners.iterator();
while (it.hasNext())
{
IIOWriteProgressListener listener = (IIOWriteProgressListener) it.next();
listener.thumbnailProgress(this, percentageDone);
}
}
protected void processThumbnailStarted(int imageIndex, int thumbnailIndex)
{
Iterator it = progressListeners.iterator();
while (it.hasNext())
{
IIOWriteProgressListener listener = (IIOWriteProgressListener) it.next();
listener.thumbnailStarted(this, imageIndex, thumbnailIndex);
}
}
protected void processWarningOccurred(int imageIndex, String warning)
{
Iterator it = warningListeners.iterator();
while (it.hasNext())
{
IIOWriteWarningListener listener = (IIOWriteWarningListener) it.next();
listener.warningOccurred(this, imageIndex, warning);
}
}
protected void processWriteAborted()
{
Iterator it = progressListeners.iterator();
while (it.hasNext())
{
IIOWriteProgressListener listener = (IIOWriteProgressListener) it.next();
listener.writeAborted(this);
}
}
public void removeAllIIOWriteProgressListeners()
{
progressListeners.clear();
}
public void removeAllIIOWriteWarningListeners()
{
progressListeners.clear();
}
public void removeIIOWriteProgressListener (IIOWriteProgressListener listener)
{
if (listener == null)
return;
progressListeners.remove(listener);
}
public void removeIIOWriteWarningListener (IIOWriteWarningListener listener)
{
if (listener == null)
return;
warningListeners.remove(listener);
}
public void reset()
{
setOutput(null);
setLocale(null);
removeAllIIOWriteWarningListeners();
removeAllIIOWriteProgressListeners();
clearAbortRequest();
}
public void setLocale(Locale locale)
{
if (locale != null)
{
// Check if its a valid locale.
boolean found = false;
if (availableLocales != null)
for (int i = availableLocales.length - 1; i >= 0; --i)
if (availableLocales[i].equals(locale))
found = true;
if (! found)
throw new IllegalArgumentException("looale not available");
}
this.locale = locale;
}
public void setOutput(Object output)
{
if (output != null)
{
// Check if its a valid output object.
boolean found = false;
Class[] types = null;
if (originatingProvider != null)
types = originatingProvider.getOutputTypes();
if (types != null)
for (int i = types.length - 1; i >= 0; --i)
if (types[i].equals(output.getClass()))
found = true;
if (! found)
throw new IllegalArgumentException("output type not available");
}
this.output = output;
}
public abstract void write (IIOMetadata streamMetadata, IIOImage image, ImageWriteParam param)
throws IOException;
}