This documentation differs from the official API. Jadeite adds extra features to the API including: variable font sizes, constructions examples, placeholders for classes and methods, and auto-generated “See Also” links. Additionally it is missing some items found in standard Javadoc documentation, including: generics type information, “Deprecated” tags and comments, “See Also” links, along with other minor differences. Please send any questions or feedback to bam@cs.cmu.edu.


javax.imageio.metadata
class IIOMetadataFormatImpl

java.lang.Object extended by javax.imageio.metadata.IIOMetadataFormatImpl
All Implemented Interfaces:
IIOMetadataFormat

public abstract class IIOMetadataFormatImpl
extends Object
implements IIOMetadataFormat

A concrete class providing a reusable implementation of the IIOMetadataFormat interface. In addition, a static instance representing the standard, plug-in neutral javax_imageio_1.0 format is provided by the getStandardFormatInstance method.

In order to supply localized descriptions of elements and attributes, a ResourceBundle with a base name of this.getClass().getName() + "Resources" should be supplied via the usual mechanism used by ResourceBundle.getBundle. Briefly, the subclasser supplies one or more additional classes according to a naming convention (by default, the fully-qualified name of the subclass extending IIMetadataFormatImpl, plus the string "Resources", plus the country, language, and variant codes separated by underscores). At run time, calls to getElementDescription or getAttributeDescription will attempt to load such classes dynamically according to the supplied locale, and will use either the element name, or the element name followed by a '/' character followed by the attribute name as a key. This key will be supplied to the ResourceBundle's getString method, and the resulting localized description of the node or attribute is returned.

The subclass may supply a different base name for the resource bundles using the setResourceBaseName method.

A subclass may choose its own localization mechanism, if so desired, by overriding the supplied implementations of getElementDescription and getAttributeDescription.


Field Summary
static String standardMetadataFormatName
          A String constant containing the standard format name, "javax_imageio_1.0".
 
Constructor Summary
IIOMetadataFormatImpl(String rootName, int childPolicy)

          Constructs a blank IIOMetadataFormatImpl instance, with a given root element name and child policy (other than CHILD_POLICY_REPEAT).
IIOMetadataFormatImpl(String rootName, int minChildren, int maxChildren)

          Constructs a blank IIOMetadataFormatImpl instance, with a given root element name and a child policy of CHILD_POLICY_REPEAT.
 
Method Summary
protected void
addAttribute(String elementName, String attrName, int dataType, boolean required, int listMinLength, int listMaxLength)

          Adds a new attribute to a previously defined element that will be defined by a list of values.
protected void
addAttribute(String elementName, String attrName, int dataType, boolean required, String defaultValue)

          Adds a new attribute to a previously defined element that may be set to an arbitrary value.
protected void
addAttribute(String elementName, String attrName, int dataType, boolean required, String defaultValue, List enumeratedValues)

          Adds a new attribute to a previously defined element that will be defined by a set of enumerated values.
protected void
addAttribute(String elementName, String attrName, int dataType, boolean required, String defaultValue, String minValue, String maxValue, boolean minInclusive, boolean maxInclusive)

          Adds a new attribute to a previously defined element that will be defined by a range of values.
protected void
addBooleanAttribute(String elementName, String attrName, boolean hasDefaultValue, boolean defaultValue)

          Adds a new attribute to a previously defined element that will be defined by the enumerated values TRUE and FALSE, with a datatype of DATATYPE_BOOLEAN.
protected void
addChildElement(String elementName, String parentName)

          Adds an existing element to the list of legal children for a given parent node type.
protected void
addElement(String elementName, String parentName, int childPolicy)

          Adds a new element type to this metadata document format with a child policy other than CHILD_POLICY_REPEAT.
protected void
addElement(String elementName, String parentName, int minChildren, int maxChildren)

          Adds a new element type to this metadata document format with a child policy of CHILD_POLICY_REPEAT.
protected void
addObjectValue(String elementName, Class classType, boolean required, Object defaultValue)

          Allows an Object reference of a given class type to be stored in nodes implementing the named element.
protected void
addObjectValue(String elementName, Class classType, boolean required, Object defaultValue, List enumeratedValues)

          Allows an Object reference of a given class type to be stored in nodes implementing the named element.
protected void
addObjectValue(String elementName, Class classType, int arrayMinLength, int arrayMaxLength)

          Allows an Object reference of a given class type to be stored in nodes implementing the named element.
protected void
addObjectValue(String elementName, Class classType, Object defaultValue, Comparable minValue, Comparable maxValue, boolean minInclusive, boolean maxInclusive)

          Allows an Object reference of a given class type to be stored in nodes implementing the named element.
abstract boolean
canNodeAppear(String elementName, ImageTypeSpecifier imageType)

          
 int
getAttributeDataType(String elementName, String attrName)

          
 String
getAttributeDefaultValue(String elementName, String attrName)

          
 String
getAttributeDescription(String elementName, String attrName, Locale locale)

          Returns a String containing a description of the named attribute, or null.
 String[]
getAttributeEnumerations(String elementName, String attrName)

          
 int
getAttributeListMaxLength(String elementName, String attrName)

          
 int
getAttributeListMinLength(String elementName, String attrName)

          
 String
getAttributeMaxValue(String elementName, String attrName)

          
 String
getAttributeMinValue(String elementName, String attrName)

          
 String[]

          
 int
getAttributeValueType(String elementName, String attrName)

          
 String[]
getChildNames(String elementName)

          
 int
getChildPolicy(String elementName)

          
 String
getElementDescription(String elementName, Locale locale)

          Returns a String containing a description of the named element, or null.
 int

          
 int

          
 int

          
 int

          
 Class
getObjectClass(String elementName)

          
 Object

          
 Object[]

          
 Comparable

          
 Comparable

          
 int

          
protected String

          Returns the currently set base name for locating ResourceBundles.
 String

          
static IIOMetadataFormat

          Returns an IIOMetadataFormat object describing the standard, plug-in neutral javax.imageio_1.0 metadata document format described in the comment of the javax.imageio.metadata package.
 boolean
isAttributeRequired(String elementName, String attrName)

          
protected void
removeAttribute(String elementName, String attrName)

          Removes an attribute from a previously defined element.
protected void
removeElement(String elementName)

          Removes an element from the format.
protected void

          Disallows an Object reference from being stored in nodes implementing the named element.
protected void
setResourceBaseName(String resourceBaseName)

          Sets a new base name for locating ResourceBundles containing descriptions of elements and attributes for this format.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

standardMetadataFormatName

public static final String standardMetadataFormatName
A String constant containing the standard format name, "javax_imageio_1.0".
Constructor Detail

IIOMetadataFormatImpl

public IIOMetadataFormatImpl(String rootName,
                             int childPolicy)
Constructs a blank IIOMetadataFormatImpl instance, with a given root element name and child policy (other than CHILD_POLICY_REPEAT). Additional elements, and their attributes and Object reference information may be added using the various add methods.

Parameters:
rootName - the name of the root element.
childPolicy - one of the CHILD_POLICY_* constants, other than CHILD_POLICY_REPEAT.

IIOMetadataFormatImpl

public IIOMetadataFormatImpl(String rootName,
                             int minChildren,
                             int maxChildren)
Constructs a blank IIOMetadataFormatImpl instance, with a given root element name and a child policy of CHILD_POLICY_REPEAT. Additional elements, and their attributes and Object reference information may be added using the various add methods.

Parameters:
rootName - the name of the root element.
minChildren - the minimum number of children of the node.
maxChildren - the maximum number of children of the node.
Method Detail

addAttribute

protected void addAttribute(String elementName,
                            String attrName,
                            int dataType,
                            boolean required,
                            int listMinLength,
                            int listMaxLength)
Adds a new attribute to a previously defined element that will be defined by a list of values.

Parameters:
elementName - the name of the element.
attrName - the name of the attribute being added.
dataType - the data type (string format) of the attribute, one of the DATATYPE_* constants.
required - true if the attribute must be present.
listMinLength - the smallest legal number of list items.
listMaxLength - the largest legal number of list items.

addAttribute

protected void addAttribute(String elementName,
                            String attrName,
                            int dataType,
                            boolean required,
                            String defaultValue)
Adds a new attribute to a previously defined element that may be set to an arbitrary value.

Parameters:
elementName - the name of the element.
attrName - the name of the attribute being added.
dataType - the data type (string format) of the attribute, one of the DATATYPE_* constants.
required - true if the attribute must be present.
defaultValue - the default value for the attribute, or null.

addAttribute

protected void addAttribute(String elementName,
                            String attrName,
                            int dataType,
                            boolean required,
                            String defaultValue,
                            List enumeratedValues)
Adds a new attribute to a previously defined element that will be defined by a set of enumerated values.

Parameters:
elementName - the name of the element.
attrName - the name of the attribute being added.
dataType - the data type (string format) of the attribute, one of the DATATYPE_* constants.
required - true if the attribute must be present.
defaultValue - the default value for the attribute, or null.
enumeratedValues - a List of Strings containing the legal values for the attribute.

addAttribute

protected void addAttribute(String elementName,
                            String attrName,
                            int dataType,
                            boolean required,
                            String defaultValue,
                            String minValue,
                            String maxValue,
                            boolean minInclusive,
                            boolean maxInclusive)
Adds a new attribute to a previously defined element that will be defined by a range of values.

Parameters:
elementName - the name of the element.
attrName - the name of the attribute being added.
dataType - the data type (string format) of the attribute, one of the DATATYPE_* constants.
required - true if the attribute must be present.
defaultValue - the default value for the attribute, or null.
minValue - the smallest (inclusive or exclusive depending on the value of minInclusive) legal value for the attribute, as a String.
maxValue - the largest (inclusive or exclusive depending on the value of minInclusive) legal value for the attribute, as a String.
minInclusive - true if minValue is inclusive.
maxInclusive - true if maxValue is inclusive.

addBooleanAttribute

protected void addBooleanAttribute(String elementName,
                                   String attrName,
                                   boolean hasDefaultValue,
                                   boolean defaultValue)
Adds a new attribute to a previously defined element that will be defined by the enumerated values TRUE and FALSE, with a datatype of DATATYPE_BOOLEAN.

Parameters:
elementName - the name of the element.
attrName - the name of the attribute being added.
hasDefaultValue - true if a default value should be present.
defaultValue - the default value for the attribute as a boolean, ignored if hasDefaultValue is false.

addChildElement

protected void addChildElement(String elementName,
                               String parentName)
Adds an existing element to the list of legal children for a given parent node type.

Parameters:
elementName - the name of the element to be addded as a child.
parentName - the name of the element that will be the new parent of the element.

addElement

protected void addElement(String elementName,
                          String parentName,
                          int childPolicy)
Adds a new element type to this metadata document format with a child policy other than CHILD_POLICY_REPEAT.

Parameters:
elementName - the name of the new element.
parentName - the name of the element that will be the parent of the new element.
childPolicy - one of the CHILD_POLICY_* constants, other than CHILD_POLICY_REPEAT, indicating the child policy of the new element.

addElement

protected void addElement(String elementName,
                          String parentName,
                          int minChildren,
                          int maxChildren)
Adds a new element type to this metadata document format with a child policy of CHILD_POLICY_REPEAT.

Parameters:
elementName - the name of the new element.
parentName - the name of the element that will be the parent of the new element.
minChildren - the minimum number of children of the node.
maxChildren - the maximum number of children of the node.

addObjectValue

protected void addObjectValue(String elementName,
                              Class classType,
                              boolean required,
                              Object defaultValue)
Allows an Object reference of a given class type to be stored in nodes implementing the named element. The value of the Object is unconstrained other than by its class type.

If an Object reference was previously allowed, the previous settings are overwritten.

Parameters:
elementName - the name of the element.
classType - a Class variable indicating the legal class type for the object value.
required - true if an object value must be present.
defaultValue - the default value for the Object reference, or null.

addObjectValue

protected void addObjectValue(String elementName,
                              Class classType,
                              boolean required,
                              Object defaultValue,
                              List enumeratedValues)
Allows an Object reference of a given class type to be stored in nodes implementing the named element. The value of the Object must be one of the values given by enumeratedValues.

If an Object reference was previously allowed, the previous settings are overwritten.

Parameters:
elementName - the name of the element.
classType - a Class variable indicating the legal class type for the object value.
required - true if an object value must be present.
defaultValue - the default value for the Object reference, or null.
enumeratedValues - a List of Objects containing the legal values for the object reference.

addObjectValue

protected void addObjectValue(String elementName,
                              Class classType,
                              int arrayMinLength,
                              int arrayMaxLength)
Allows an Object reference of a given class type to be stored in nodes implementing the named element. The value of the Object must an array of objects of class type given by classType, with at least arrayMinLength and at most arrayMaxLength elements.

If an Object reference was previously allowed, the previous settings are overwritten.

Parameters:
elementName - the name of the element.
classType - a Class variable indicating the legal class type for the object value.
arrayMinLength - the smallest legal length for the array.
arrayMaxLength - the largest legal length for the array.

addObjectValue

protected void addObjectValue(String elementName,
                              Class classType,
                              Object defaultValue,
                              Comparable minValue,
                              Comparable maxValue,
                              boolean minInclusive,
                              boolean maxInclusive)
Allows an Object reference of a given class type to be stored in nodes implementing the named element. The value of the Object must be within the range given by minValue and maxValue. Furthermore, the class type must implement the Comparable interface.

If an Object reference was previously allowed, the previous settings are overwritten.

Parameters:
elementName - the name of the element.
classType - a Class variable indicating the legal class type for the object value.
defaultValue - the default value for the
minValue - the smallest (inclusive or exclusive depending on the value of minInclusive) legal value for the object value, as a String.
maxValue - the largest (inclusive or exclusive depending on the value of minInclusive) legal value for the object value, as a String.
minInclusive - true if minValue is inclusive.
maxInclusive - true if maxValue is inclusive.

canNodeAppear

public abstract boolean canNodeAppear(String elementName,
                                      ImageTypeSpecifier imageType)
Parameters:
elementName
imageType

getAttributeDataType

public int getAttributeDataType(String elementName,
                                String attrName)
Parameters:
elementName
attrName

getAttributeDefaultValue

public String getAttributeDefaultValue(String elementName,
                                       String attrName)
Parameters:
elementName
attrName

getAttributeDescription

public String getAttributeDescription(String elementName,
                                      String attrName,
                                      Locale locale)
Returns a String containing a description of the named attribute, or null. The desciption will be localized for the supplied Locale if possible.

The default implementation will first locate a ResourceBundle using the current resource base name set by setResourceBaseName and the supplied Locale, using the fallback mechanism described in the comments for ResourceBundle.getBundle. If a ResourceBundle is found, the element name followed by a "/" character followed by the attribute name (elementName + "/" + attrName) will be used as a key to its getString method, and the result returned. If no ResourceBundle is found, or no such key is present, null will be returned.

If locale is null, the current default Locale returned by Locale.getLocale will be used.

Parameters:
elementName - the name of the element.
attrName - the name of the attribute.
locale - the Locale for which localization will be attempted, or null.
Returns:
the attribute description.

getAttributeEnumerations

public String[] getAttributeEnumerations(String elementName,
                                         String attrName)
Parameters:
elementName
attrName

getAttributeListMaxLength

public int getAttributeListMaxLength(String elementName,
                                     String attrName)
Parameters:
elementName
attrName

getAttributeListMinLength

public int getAttributeListMinLength(String elementName,
                                     String attrName)
Parameters:
elementName
attrName

getAttributeMaxValue

public String getAttributeMaxValue(String elementName,
                                   String attrName)
Parameters:
elementName
attrName

getAttributeMinValue

public String getAttributeMinValue(String elementName,
                                   String attrName)
Parameters:
elementName
attrName

getAttributeNames

public String[] getAttributeNames(String elementName)
Parameters:
elementName

getAttributeValueType

public int getAttributeValueType(String elementName,
                                 String attrName)
Parameters:
elementName
attrName

getChildNames

public String[] getChildNames(String elementName)
Parameters:
elementName

getChildPolicy

public int getChildPolicy(String elementName)
Parameters:
elementName

getElementDescription

public String getElementDescription(String elementName,
                                    Locale locale)
Returns a String containing a description of the named element, or null. The desciption will be localized for the supplied Locale if possible.

The default implementation will first locate a ResourceBundle using the current resource base name set by setResourceBaseName and the supplied Locale, using the fallback mechanism described in the comments for ResourceBundle.getBundle. If a ResourceBundle is found, the element name will be used as a key to its getString method, and the result returned. If no ResourceBundle is found, or no such key is present, null will be returned.

If locale is null, the current default Locale returned by Locale.getLocale will be used.

Parameters:
elementName - the name of the element.
locale - the Locale for which localization will be attempted.
Returns:
the element description.

getElementMaxChildren

public int getElementMaxChildren(String elementName)
Parameters:
elementName

getElementMinChildren

public int getElementMinChildren(String elementName)
Parameters:
elementName

getObjectArrayMaxLength

public int getObjectArrayMaxLength(String elementName)
Parameters:
elementName

getObjectArrayMinLength

public int getObjectArrayMinLength(String elementName)
Parameters:
elementName

getObjectClass

public Class getObjectClass(String elementName)
Parameters:
elementName

getObjectDefaultValue

public Object getObjectDefaultValue(String elementName)
Parameters:
elementName

getObjectEnumerations

public Object[] getObjectEnumerations(String elementName)
Parameters:
elementName

getObjectMaxValue

public Comparable getObjectMaxValue(String elementName)
Parameters:
elementName

getObjectMinValue

public Comparable getObjectMinValue(String elementName)
Parameters:
elementName

getObjectValueType

public int getObjectValueType(String elementName)
Parameters:
elementName

getResourceBaseName

protected String getResourceBaseName()
Returns the currently set base name for locating ResourceBundles.

Returns:
a String containing the base name.

getRootName

public String getRootName()

getStandardFormatInstance

public static IIOMetadataFormat getStandardFormatInstance()
Returns an IIOMetadataFormat object describing the standard, plug-in neutral javax.imageio_1.0 metadata document format described in the comment of the javax.imageio.metadata package.

Returns:
a predefined IIOMetadataFormat instance.

isAttributeRequired

public boolean isAttributeRequired(String elementName,
                                   String attrName)
Parameters:
elementName
attrName

removeAttribute

protected void removeAttribute(String elementName,
                               String attrName)
Removes an attribute from a previously defined element. If no attribute with the given name was present in the given element, nothing happens and no exception is thrown.

Parameters:
elementName - the name of the element.
attrName - the name of the attribute being removed.

removeElement

protected void removeElement(String elementName)
Removes an element from the format. If no element with the given name was present, nothing happens and no exception is thrown.

Parameters:
elementName - the name of the element to be removed.

removeObjectValue

protected void removeObjectValue(String elementName)
Disallows an Object reference from being stored in nodes implementing the named element.

Parameters:
elementName - the name of the element.

setResourceBaseName

protected void setResourceBaseName(String resourceBaseName)
Sets a new base name for locating ResourceBundles containing descriptions of elements and attributes for this format.

Prior to the first time this method is called, the base name will be equal to this.getClass().getName() + "Resources".

Parameters:
resourceBaseName - a String containg the new base name.


This documentation differs from the official API. Jadeite adds extra features to the API including: variable font sizes, constructions examples, placeholders for classes and methods, and auto-generated “See Also” links. Additionally it is missing some items found in standard Javadoc documentation, including: generics type information, “Deprecated” tags and comments, “See Also” links, along with other minor differences. Please send any questions or feedback to bam@cs.cmu.edu.
This page displays the Jadeite version of the documention, which is derived from the offical documentation that contains this copyright notice:
Copyright 2008 Sun Microsystems, Inc. All rights reserved. Use is subject to license terms. Also see the documentation redistribution policy.
The official Sun™ documentation can be found here at http://java.sun.com/javase/6/docs/api/.