/*
* @(#)IIOMetadata.java 1.41 05/11/17
*
* Copyright 2006 Sun Microsystems, Inc. All rights reserved.
* SUN PROPRIETARY/CONFIDENTIAL. Use is subject to license terms.
*/
package javax.imageio.metadata;
import org.w3c.dom.Node;
import java.lang.reflect.Method;
/**
* An abstract class to be extended by objects that represent metadata
* (non-image data) associated with images and streams. Plug-ins
* represent metadata using opaque, plug-in specific objects. These
* objects, however, provide the ability to access their internal
* information as a tree of <code>IIOMetadataNode</code> objects that
* support the XML DOM interfaces as well as additional interfaces for
* storing non-textual data and retrieving information about legal
* data values. The format of such trees is plug-in dependent, but
* plug-ins may choose to support a plug-in neutral format described
* below. A single plug-in may support multiple metadata formats,
* whose names maybe determined by calling
* <code>getMetadataFormatNames</code>. The plug-in may also support
* a single special format, referred to as the "native" format, which
* is designed to encode its metadata losslessly. This format will
* typically be designed specifically to work with a specific file
* format, so that images may be loaded and saved in the same format
* with no loss of metadata, but may be less useful for transfering
* metadata between an <code>ImageReader</code> and an
* <code>ImageWriter</code> for different image formats. To convert
* between two native formats as losslessly as the image file formats
* will allow, an <code>ImageTranscoder</code> object must be used.
*
* @see javax.imageio.ImageReader#getImageMetadata
* @see javax.imageio.ImageReader#getStreamMetadata
* @see javax.imageio.ImageReader#readAll
* @see javax.imageio.ImageWriter#getDefaultStreamMetadata
* @see javax.imageio.ImageWriter#getDefaultImageMetadata
* @see javax.imageio.ImageWriter#write
* @see javax.imageio.ImageWriter#convertImageMetadata
* @see javax.imageio.ImageWriter#convertStreamMetadata
* @see javax.imageio.IIOImage
* @see javax.imageio.ImageTranscoder
*
* @version 0.5
*/
public abstract class IIOMetadata {
/**
* A boolean indicating whether the concrete subclass supports the
* standard metadata format, set via the constructor.
*/
protected boolean standardFormatSupported;
/**
* The name of the native metadata format for this object,
* initialized to <code>null</code> and set via the constructor.
*/
protected String nativeMetadataFormatName = null;
/**
* The name of the class implementing <code>IIOMetadataFormat</code>
* and representing the native metadata format, initialized to
* <code>null</code> and set via the constructor.
*/
protected String nativeMetadataFormatClassName = null;
/**
* An array of names of formats, other than the standard and
* native formats, that are supported by this plug-in,
* initialized to <code>null</code> and set via the constructor.
*/
protected String[] extraMetadataFormatNames = null;
/**
* An array of names of classes implementing <code>IIOMetadataFormat</code>
* and representing the metadata formats, other than the standard and
* native formats, that are supported by this plug-in,
* initialized to <code>null</code> and set via the constructor.
*/
protected String[] extraMetadataFormatClassNames = null;
/**
* An <code>IIOMetadataController</code> that is suggested for use
* as the controller for this <code>IIOMetadata</code> object. It
* may be retrieved via <code>getDefaultController</code>. To
* install the default controller, call
* <code>setController(getDefaultController())</code>. This
* instance variable should be set by subclasses that choose to
* provide their own default controller, usually a GUI, for
* setting parameters.
*
* @see IIOMetadataController
* @see #getDefaultController
*/
protected IIOMetadataController defaultController = null;
/**
=1= |