javax.imageio.metadata

Class IIOMetadata


public abstract class IIOMetadata
extends Object

Represents metadata that describe an image or an image stream. Each ImageIO plugin will represent image data using an opaque object but all such objects should expose their internal information as a tree of IIOMetadataNodes. There are three formats of metadata that a plugin can support: If a plugin supports more than one format of metadata, the other formats can be retrieved by calling getMetadataFormatNames. The native format is used to transfer metadata from one image to another image of the same type, losslessly. The custom format describes the image metadata and exposes a tree of IIOMetadataNodes but its internal representation is specific to this plugin. The plugin-neutral format uses a generic tree structure as its internal representation. ImageTranscoders may be used to convert metadata understood by one plugin to metadata understood by another, however the conversion may be lossy.

Field Summary

protected IIOMetadataController
controller
protected IIOMetadataController
defaultController
protected String[]
extraMetadataFormatClassNames
protected String[]
extraMetadataFormatNames
protected String
nativeMetadataFormatClassName
protected String
nativeMetadataFormatName
protected boolean
standardFormatSupported

Constructor Summary

IIOMetadata()
Construct an IIOMetadata object.
IIOMetadata(boolean standardMetadataFormatSupported, String nativeMetadataFormatName, String nativeMetadataFormatClassName, String[] extraMetadataFormatNames, String[] extraMetadataFormatClassNames)
Construct an IIOMetadata object.

Method Summary

boolean
activateController()
abstract Node
getAsTree(String formatName)
IIOMetadataController
getController()
IIOMetadataController
getDefaultController()
String[]
getExtraMetadataFormatNames()
IIOMetadataFormat
getMetadataFormat(String formatName)
String[]
getMetadataFormatNames()
String
getNativeMetadataFormatName()
protected IIOMetadataNode
getStandardChromaNode()
protected IIOMetadataNode
getStandardCompressionNode()
protected IIOMetadataNode
getStandardDataNode()
protected IIOMetadataNode
getStandardDimensionNode()
protected IIOMetadataNode
getStandardDocumentNode()
protected IIOMetadataNode
getStandardTextNode()
protected IIOMetadataNode
getStandardTileNode()
protected IIOMetadataNode
getStandardTransparencyNode()
protected IIOMetadataNode
getStandardTree()
boolean
hasController()
abstract boolean
isReadOnly()
boolean
isStandardMetadataFormatSupported()
abstract void
mergeTree(String formatName, Node root)
abstract void
reset()
void
setController(IIOMetadataController controller)
void
setFromTree(String formatName, Node root)

Methods inherited from class java.lang.Object

clone, equals, extends Object> getClass, finalize, hashCode, notify, notifyAll, toString, wait, wait, wait

Field Details

controller

protected IIOMetadataController controller

defaultController

protected IIOMetadataController defaultController

extraMetadataFormatClassNames

protected String[] extraMetadataFormatClassNames

extraMetadataFormatNames

protected String[] extraMetadataFormatNames

nativeMetadataFormatClassName

protected String nativeMetadataFormatClassName

nativeMetadataFormatName

protected String nativeMetadataFormatName

standardFormatSupported

protected boolean standardFormatSupported

Constructor Details

IIOMetadata

protected IIOMetadata()
Construct an IIOMetadata object.

IIOMetadata

protected IIOMetadata(boolean standardMetadataFormatSupported,
                      String nativeMetadataFormatName,
                      String nativeMetadataFormatClassName,
                      String[] extraMetadataFormatNames,
                      String[] extraMetadataFormatClassNames)
Construct an IIOMetadata object.
Parameters:
standardMetadataFormatSupported -
nativeMetadataFormatName -
nativeMetadataFormatClassName -
extraMetadataFormatNames -
extraMetadataFormatClassNames -
Throws:
IllegalArgumentException - if extraMetadataFormatNames has length of zero or extraMetadataFormatNames and extraMetadataFormatClassNames are neither both null, not have the same length

Method Details

activateController

public boolean activateController()

getAsTree

public abstract Node getAsTree(String formatName)

getController

public IIOMetadataController getController()

getDefaultController

public IIOMetadataController getDefaultController()

getExtraMetadataFormatNames

public String[] getExtraMetadataFormatNames()

getMetadataFormat

public IIOMetadataFormat getMetadataFormat(String formatName)

getMetadataFormatNames

public String[] getMetadataFormatNames()

getNativeMetadataFormatName

public String getNativeMetadataFormatName()

getStandardChromaNode

protected IIOMetadataNode getStandardChromaNode()

getStandardCompressionNode

protected IIOMetadataNode getStandardCompressionNode()

getStandardDataNode

protected IIOMetadataNode getStandardDataNode()

getStandardDimensionNode

protected IIOMetadataNode getStandardDimensionNode()

getStandardDocumentNode

protected IIOMetadataNode getStandardDocumentNode()

getStandardTextNode

protected IIOMetadataNode getStandardTextNode()

getStandardTileNode

protected IIOMetadataNode getStandardTileNode()

getStandardTransparencyNode

protected IIOMetadataNode getStandardTransparencyNode()

getStandardTree

protected final IIOMetadataNode getStandardTree()

hasController

public boolean hasController()

isReadOnly

public abstract boolean isReadOnly()

isStandardMetadataFormatSupported

public boolean isStandardMetadataFormatSupported()

mergeTree

public abstract void mergeTree(String formatName,
                               Node root)
            throws IIOInvalidTreeException

reset

public abstract void reset()

setController

public void setController(IIOMetadataController controller)

setFromTree

public void setFromTree(String formatName,
                        Node root)
            throws IIOInvalidTreeException

IIOMetadata.java -- Copyright (C) 2004 Free Software Foundation, Inc. This file is part of GNU Classpath. 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 General Public License for more details. You should have received a copy of the GNU General Public License along with GNU Classpath; see the file COPYING. If not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. Linking this library statically or dynamically with other modules is making a combined work based on this library. Thus, the terms and conditions of the GNU General Public License cover the whole combination. As a special exception, the copyright holders of this library give you permission to link this library with independent modules to produce an executable, regardless of the license terms of these independent modules, and to copy and distribute the resulting executable under terms of your choice, provided that you also meet, for each linked independent module, the terms and conditions of the license of that module. An independent module is a module which is not derived from or based on this library. If you modify this library, you may extend 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.