Home » openjdk-7 » javax » imageio » metadata » [javadoc | source]
javax.imageio.metadata
abstract public class: IIOMetadataFormatImpl [javadoc | source]
java.lang.Object
   javax.imageio.metadata.IIOMetadataFormatImpl

All Implemented Interfaces:
    IIOMetadataFormat

Direct Known Subclasses:
    IIOStandardMetadataFormat

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.

Nested Class Summary:
class  IIOMetadataFormatImpl.Element   
class  IIOMetadataFormatImpl.Attribute   
class  IIOMetadataFormatImpl.ObjectValue   
Field Summary
public static final  String standardMetadataFormatName    A String constant containing the standard format name, "javax_imageio_1.0"
Constructor:
 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.
    Throws:
    IllegalArgumentException - if rootName is null.
    IllegalArgumentException - if childPolicy is not one of the predefined constants.
    exception: IllegalArgumentException - if rootName is null.
    exception: IllegalArgumentException - if childPolicy is not one of the predefined constants.
 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.
    Throws:
    IllegalArgumentException - if rootName is null.
    IllegalArgumentException - if minChildren is negative or larger than maxChildren.
    exception: IllegalArgumentException - if rootName is null.
    exception: IllegalArgumentException - if minChildren is negative or larger than maxChildren.
Method from javax.imageio.metadata.IIOMetadataFormatImpl Summary:
addAttribute,   addAttribute,   addAttribute,   addAttribute,   addBooleanAttribute,   addChildElement,   addElement,   addElement,   addObjectValue,   addObjectValue,   addObjectValue,   addObjectValue,   canNodeAppear,   getAttributeDataType,   getAttributeDefaultValue,   getAttributeDescription,   getAttributeEnumerations,   getAttributeListMaxLength,   getAttributeListMinLength,   getAttributeMaxValue,   getAttributeMinValue,   getAttributeNames,   getAttributeValueType,   getChildNames,   getChildPolicy,   getElementDescription,   getElementMaxChildren,   getElementMinChildren,   getObjectArrayMaxLength,   getObjectArrayMinLength,   getObjectClass,   getObjectDefaultValue,   getObjectEnumerations,   getObjectMaxValue,   getObjectMinValue,   getObjectValueType,   getResourceBaseName,   getRootName,   getStandardFormatInstance,   isAttributeRequired,   removeAttribute,   removeElement,   removeObjectValue,   setResourceBaseName
Methods from java.lang.Object:
clone,   equals,   finalize,   getClass,   hashCode,   notify,   notifyAll,   toString,   wait,   wait,   wait
Method from javax.imageio.metadata.IIOMetadataFormatImpl Detail:
 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<String> 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,
    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,
    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<T> classType,
    boolean required,
    T 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.

 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.

 protected  void addObjectValue(String elementName,
    Class<T> classType,
    boolean required,
    T defaultValue,
    List<? extends T> 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.

 protected  void addObjectValue(String elementName,
    Class<T> classType,
    T defaultValue,
    Comparable<? super T> minValue,
    Comparable<? super T> 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.

 abstract public boolean canNodeAppear(String elementName,
    ImageTypeSpecifier imageType)
 public int getAttributeDataType(String elementName,
    String attrName) 
 public String getAttributeDefaultValue(String elementName,
    String attrName) 
 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.

 public String[] getAttributeEnumerations(String elementName,
    String attrName) 
 public int getAttributeListMaxLength(String elementName,
    String attrName) 
 public int getAttributeListMinLength(String elementName,
    String attrName) 
 public String getAttributeMaxValue(String elementName,
    String attrName) 
 public String getAttributeMinValue(String elementName,
    String attrName) 
 public String[] getAttributeNames(String elementName) 
 public int getAttributeValueType(String elementName,
    String attrName) 
 public String[] getChildNames(String elementName) 
 public int getChildPolicy(String elementName) 
 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.

 public int getElementMaxChildren(String elementName) 
 public int getElementMinChildren(String elementName) 
 public int getObjectArrayMaxLength(String elementName) 
 public int getObjectArrayMinLength(String elementName) 
 public Class<?> getObjectClass(String elementName) 
 public Object getObjectDefaultValue(String elementName) 
 public Object[] getObjectEnumerations(String elementName) 
 public Comparable<?> getObjectMaxValue(String elementName) 
 public Comparable<?> getObjectMinValue(String elementName) 
 public int getObjectValueType(String elementName) 
 protected String getResourceBaseName() 
    Returns the currently set base name for locating ResourceBundles.
 public String getRootName() 
 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.
 public boolean isAttributeRequired(String elementName,
    String attrName) 
 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.
 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.
 protected  void removeObjectValue(String elementName) 
    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.

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