javax.imageio.metadata

接口
异常
java.lang.Object
  继承者 javax.imageio.metadata.IIOMetadataFormatImpl
所有已实现的接口:
IIOMetadataFormat

public abstract class IIOMetadataFormatImpl
     
extends Object
implements IIOMetadataFormat

提供 IIOMetadataFormat 接口的可重用实现的具体类。此外,通过 getStandardFormatInstance 方法提供一个表示标准的、插件无关的 javax_imageio_1.0 格式的静态实例。

为了提供元素和属性的本地化的描述,应该通过 ResourceBundle.getBundle 使用的常规机制来提供基本名称为 this.getClass().getName() + "Resources"ResourceBundle。简单地说,子类根据命名约定(默认情况下为扩展 IIMetadataFormatImpl 的子类的完全限定名,加上字符串 "Resources",加上国家/地区、语言和由下划线分隔的变体代码)提供一个或多个其他类。在运行期间,调用 getElementDescriptiongetAttributeDescription 将尝试根据提供的语言环境动态加载这些类,并将使用元素名称或者后跟 '/' 字符再后跟作为键的属性名的元素名称。此键将提供给 ResourceBundlegetString 方法,并返回所得到的节点或属性的本地化描述。

子类可以使用 setResourceBaseName 方法为资源包提供另外的基本名称。

在需要时,子类可以通过重写提供的 getElementDescriptiongetAttributeDescription 实现来选择它自己的本地化机制。

另请参见:
ResourceBundle.getBundle(String,Locale)

字段摘要
static String standardMetadataFormatName
          包含标准格式名称 "javax_imageio_1.0"String 常量。
 
从接口 javax.imageio.metadata.IIOMetadataFormat 继承的字段
CHILD_POLICY_ALL, CHILD_POLICY_CHOICE, CHILD_POLICY_EMPTY, CHILD_POLICY_MAX, CHILD_POLICY_REPEAT, CHILD_POLICY_SEQUENCE, CHILD_POLICY_SOME, DATATYPE_BOOLEAN, DATATYPE_DOUBLE, DATATYPE_FLOAT, DATATYPE_INTEGER, DATATYPE_STRING, VALUE_ARBITRARY, VALUE_ENUMERATION, VALUE_LIST, VALUE_NONE, VALUE_RANGE, VALUE_RANGE_MAX_INCLUSIVE, VALUE_RANGE_MAX_INCLUSIVE_MASK, VALUE_RANGE_MIN_INCLUSIVE, VALUE_RANGE_MIN_INCLUSIVE_MASK, VALUE_RANGE_MIN_MAX_INCLUSIVE
 
构造方法摘要
IIOMetadataFormatImpl(String rootName, int childPolicy)
          构造一个空的 IIOMetadataFormatImpl 实例,使其具有给定根元素名称和子策略(CHILD_POLICY_REPEAT 除外)。
IIOMetadataFormatImpl(String rootName, int minChildren, int maxChildren)
          构造一个空的 IIOMetadataFormatImpl 实例,使其具有给定根元素名称和子策略 CHILD_POLICY_REPEAT
 
方法摘要
protected  void addAttribute(String elementName, String attrName, int dataType, boolean required, int listMinLength, int listMaxLength)
          将新属性添加到以前定义的元素中,该元素将由值的列表定义。
protected  void addAttribute(String elementName, String attrName, int dataType, boolean required, String defaultValue)
          将新属性添加到以前定义的可以被设置为任意值的元素中。
protected  void addAttribute(String elementName, String attrName, int dataType, boolean required, String defaultValue, List<String> enumeratedValues)
          将新属性添加到以前定义的元素中,该元素将由一组枚举值定义。
protected  void addAttribute(String elementName, String attrName, int dataType, boolean required, String defaultValue, String minValue, String maxValue, boolean minInclusive, boolean maxInclusive)
          将新属性添加到以前定义的元素中,该元素将由一系列值定义。
protected  void addBooleanAttribute(String elementName, String attrName, boolean hasDefaultValue, boolean defaultValue)
          将新属性添加到以前定义的元素中,该元素将由枚举值 TRUEFALSE 定义,数据类型为 DATATYPE_BOOLEAN
protected  void addChildElement(String elementName, String parentName)
          将现有元素添加到给定父节点类型的合法子节点的列表中。
protected  void addElement(String elementName, String parentName, int childPolicy)
          使用某个子策略(CHILD_POLICY_REPEAT 除外)将新元素类型添加到此元数据文档格式中。
protected  void addElement(String elementName, String parentName, int minChildren, int maxChildren)
          使用子策略 CHILD_POLICY_REPEAT 将新元素类型添加到此元数据文档格式中。
protected  void addObjectValue(String elementName, Class<?> classType, int arrayMinLength, int arrayMaxLength)
          允许将给定类类型的 Object 引用存储在实现指定元素的节点中。
protected
<T> void
addObjectValue(String elementName, Class<T> classType, boolean required, T defaultValue)
          允许将给定类类型的 Object 引用存储在实现指定元素的节点中。
protected
<T> void
addObjectValue(String elementName, Class<T> classType, boolean required, T defaultValue, List<? extends T> enumeratedValues)
          允许将给定类类型的 Object 引用存储在实现指定元素的节点中。
protected
<T extends Object & Comparable<? super T>>
void
addObjectValue(String elementName, Class<T> classType, T defaultValue, Comparable<? super T> minValue, Comparable<? super T> maxValue, boolean minInclusive, boolean maxInclusive)
          允许将给定类类型的 Object 引用存储在实现指定元素的节点中。
abstract  boolean canNodeAppear(String elementName, ImageTypeSpecifier imageType)
          如果允许元素(和它下面的子树)在给定类型(由 ImageTypeSpecifier 定义)的图像的元数据文档中出现,则返回 true
 int getAttributeDataType(String elementName, String attrName)
          返回以 DATATYPE_ 开头的常量之一,指示指定元素中给定属性的值的格式和解释。
 String getAttributeDefaultValue(String elementName, String attrName)
          如果指定属性不显式存在于指定元素中,则以 String 的形式返回其默认值;如果不存在可用的默认值,则返回 null
 String getAttributeDescription(String elementName, String attrName, Locale locale)
          返回包含指定属性的描述的 String,或者 null
 String[] getAttributeEnumerations(String elementName, String attrName)
          返回一个 String 数组,其包含指定元素中给定属性的合法枚举值。
 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[] getAttributeNames(String elementName)
          返回一个 String 数组,该数组列出了与指定元素关联的属性的名称。
 int getAttributeValueType(String elementName, String attrName)
          返回以 VALUE_ 开头的常量之一,指示指定元素中给定属性的值是任意值、被限制在指定范围中的值、被限制为一组枚举值之一,还是一个任意值的以空白分隔的列表。
 String[] getChildNames(String elementName)
          返回一个按出现顺序排列的 String 数组,指示允许作为指定元素子元素的元素的名称。
 int getChildPolicy(String elementName)
          返回以 CHILD_POLICY_ 开头的常量之一,指示指定元素子元素的合法模式。
 String getElementDescription(String elementName, Locale locale)
          返回包含指定元素的描述的 String,或者 null
 int getElementMaxChildren(String elementName)
          返回使用子策略 CHILD_POLICY_REPEAT 的指定元素的最大子元素数。
 int getElementMinChildren(String elementName)
          返回使用子策略 CHILD_POLICY_REPEAT 的指定元素的最小子元素数。
 int getObjectArrayMaxLength(String elementName)
          返回指定元素中可用于定义 Object 引用的最大数组元素数。
 int getObjectArrayMinLength(String elementName)
          返回指定元素中可用于定义 Object 引用的最小数组元素数。
 Class<?> getObjectClass(String elementName)
          返回存储在元素中的 Class 类型的 Object 引用。
 Object getObjectDefaultValue(String elementName)
          返回包含指定元素中 Object 引用的默认值的 Object
 Object[] getObjectEnumerations(String elementName)
          返回一个 Object 数组,该数组包含指定元素中 Object 引用的合法枚举值。
 Comparable<?> getObjectMaxValue(String elementName)
          返回指定元素中 Object 引用的最大合法值。
 Comparable<?> getObjectMinValue(String elementName)
          返回指定元素中 Object 引用的最小合法值。
 int getObjectValueType(String elementName)
          返回以 VALUE_ 开头的枚举值之一,指示允许用于 Object 引用的值(枚举、范围或数组)的类型。
protected  String getResourceBaseName()
          返回当前设置的用于查找 ResourceBundle 的基本名称。
 String getRootName()
          返回格式的根元素的名称。
static IIOMetadataFormat getStandardFormatInstance()
          返回描述标准、插件无关的 javax.imageio_1.0 元数据文档格式的 IIOMetadataFormat 对象,该文档格式在 javax.imageio.metadata 包的注释中描述。
 boolean isAttributeRequired(String elementName, String attrName)
          如果指定属性必须在指定元素中存在,则返回 true
protected  void removeAttribute(String elementName, String attrName)
          从以前定义的元素中移除属性。
protected  void removeElement(String elementName)
          从格式中移除元素。
protected  void removeObjectValue(String elementName)
          禁止将 Object 引用存储在实现指定元素的节点中。
protected  void setResourceBaseName(String resourceBaseName)
          设置用于查找包含此格式的元素和属性描述的 ResourceBundle 新基本名称。
 
从类 java.lang.Object 继承的方法
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

字段详细信息

standardMetadataFormatName

public static final String standardMetadataFormatName
包含标准格式名称 "javax_imageio_1.0"String 常量。

另请参见:
常量字段值
构造方法详细信息

IIOMetadataFormatImpl

public IIOMetadataFormatImpl(String rootName,
                             int childPolicy)
构造一个空的 IIOMetadataFormatImpl 实例,使其具有给定根元素名称和子策略( CHILD_POLICY_REPEAT 除外)。其他元素及其属性以及 Object 引用信息可以使用各种 add 方法添加。

参数:
rootName - 根元素的名称。
childPolicy - CHILD_POLICY_REPEAT 之外的 CHILD_POLICY_* 常量之一。
抛出:
IllegalArgumentException - 如果 rootNamenull
IllegalArgumentException - 如果 childPolicy 不是预定义的常量之一。

IIOMetadataFormatImpl

public IIOMetadataFormatImpl(String rootName,
                             int minChildren,
                             int maxChildren)
构造一个空的 IIOMetadataFormatImpl 实例,使其具有给定根元素名称和子策略 CHILD_POLICY_REPEAT。其他元素及其属性以及 Object 引用信息可以使用各种 add 方法添加。

参数:
rootName - 根元素的名称。
minChildren - 节点的最小子节点数。
maxChildren - 节点的最大子节点数。
抛出:
IllegalArgumentException - 如果 rootNamenull
IllegalArgumentException - 如果 minChildren 为负或大于 maxChildren
方法详细信息

setResourceBaseName

protected void setResourceBaseName(String resourceBaseName)
设置用于查找包含此格式的元素和属性描述的 ResourceBundle 新基本名称。

在首次调用此方法之前,基本名称将等于 this.getClass().getName() + "Resources"

参数:
resourceBaseName - 包含新基本名称的 String
抛出:
IllegalArgumentException - 如果 resourceBaseNamenull
另请参见:
getResourceBaseName()

getResourceBaseName

protected String getResourceBaseName()
返回当前设置的用于查找 ResourceBundle 的基本名称。

返回:
包含基本名称的 String
另请参见:
setResourceBaseName(java.lang.String)

addElement

protected void addElement(String elementName,
                          String parentName,
                          int childPolicy)
使用某个子策略( CHILD_POLICY_REPEAT 除外)将新元素类型添加到此元数据文档格式中。

参数:
elementName - 新元素的名称。
parentName - 将作为新元素的父元素的元素的名称。
childPolicy - CHILD_POLICY_REPEAT 之外的 CHILD_POLICY_* 常量之一,指示新元素的子策略。
抛出:
IllegalArgumentException - 如果 parentNamenull 或者不是此格式的合法元素名称。
IllegalArgumentException - 如果 childPolicy 不是预定义的常量之一。

addElement

protected void addElement(String elementName,
                          String parentName,
                          int minChildren,
                          int maxChildren)
使用子策略 CHILD_POLICY_REPEAT 将新元素类型添加到此元数据文档格式中。

参数:
elementName - 新元素的名称。
parentName - 将作为新元素的父元素的元素的名称。
minChildren - 节点的最小子节点数。
maxChildren - 节点的最大子节点数。
抛出:
IllegalArgumentException - 如果 parentNamenull 或者不是此格式的合法元素名称。
IllegalArgumentException - 如果 minChildren 为负或大于 maxChildren

addChildElement

protected void addChildElement(String elementName,
                               String parentName)
将现有元素添加到给定父节点类型的合法子节点的列表中。

参数:
parentName - 将作为元素的新父元素的元素的名称。
elementName - 要作为子元素添加的元素的名称。
抛出:
IllegalArgumentException - 如果 elementNamenull 或者不是此格式的合法元素名称。
IllegalArgumentException - 如果 parentNamenull 或者不是此格式的合法元素名称。

removeElement

protected void removeElement(String elementName)
从格式中移除元素。如果不存在使用给定名字的元素,则不执行任何操作并且不会抛出任何异常。

参数:
elementName - 要移除的元素的名称。

addAttribute

protected void addAttribute(String elementName,
                            String attrName,
                            int dataType,
                            boolean required,
                            String defaultValue)
将新属性添加到以前定义的可以被设置为任意值的元素中。

参数:
elementName - 元素的名称。
attrName - 要添加的属性的名称。
dataType - 属性的数据类型(字符串格式), DATATYPE_* 常量之一。
required - 如果属性必须存在,则为 true
defaultValue - 属性的默认值,或者为 null
抛出:
IllegalArgumentException - 如果 elementNamenull 或者不是此格式的合法元素名称。
IllegalArgumentException - 如果 attrNamenull
IllegalArgumentException - 如果 dataType 不是预定义的常量之一。

addAttribute

protected void addAttribute(String elementName,
                            String attrName,
                            int dataType,
                            boolean required,
                            String defaultValue,
                            List<String> enumeratedValues)
将新属性添加到以前定义的元素中,该元素将由一组枚举值定义。

参数:
elementName - 元素的名称。
attrName - 要添加的属性的名称。
dataType - 属性的数据类型(字符串格式), DATATYPE_* 常量之一。
required - 如果属性必须存在,则为 true
defaultValue - 属性的默认值,或者为 null
enumeratedValues - 包含属性合法值的 String 组成的 List
抛出:
IllegalArgumentException - 如果 elementNamenull 或者不是此格式的合法元素名称。
IllegalArgumentException - 如果 attrNamenull
IllegalArgumentException - 如果 dataType 不是预定义的常量之一。
IllegalArgumentException - 如果 enumeratedValuesnull
IllegalArgumentException - 如果 enumeratedValues 不包含至少一项。
IllegalArgumentException - 如果 enumeratedValues 包含不为 String 的元素或者为 null

addAttribute

protected void addAttribute(String elementName,
                            String attrName,
                            int dataType,
                            boolean required,
                            String defaultValue,
                            String minValue,
                            String maxValue,
                            boolean minInclusive,
                            boolean maxInclusive)
将新属性添加到以前定义的元素中,该元素将由一系列值定义。

参数:
elementName - 元素的名称。
attrName - 要添加的属性的名称。
dataType - 属性的数据类型(字符串格式), DATATYPE_* 常量之一。
required - 如果属性必须存在,则为 true
defaultValue - 属性的默认值,或者为 null
minValue - 属性的最小(是否包括两端的值取决于 minInclusive 的值)合法值( String 形式)。
maxValue - 属性的最大(是否包括两端的值取决于 minInclusive 的值)合法值( String 形式)。
minInclusive - 如果包括 minValue,则为 true
maxInclusive - 如果包括 maxValue,则为 true
抛出:
IllegalArgumentException - 如果 elementNamenull 或者不是此格式的合法元素名称。
IllegalArgumentException - 如果 attrNamenull
IllegalArgumentException - 如果 dataType 不是预定义的常量之一。

addAttribute

protected void addAttribute(String elementName,
                            String attrName,
                            int dataType,
                            boolean required,
                            int listMinLength,
                            int listMaxLength)
将新属性添加到以前定义的元素中,该元素将由值的列表定义。

参数:
elementName - 元素的名称。
attrName - 要添加的属性的名称。
dataType - 属性的数据类型(字符串格式), DATATYPE_* 常量之一。
required - 如果属性必须存在,则为 true
listMinLength - 列表项的最小合法数。
listMaxLength - 列表项的最大合法数。
抛出:
IllegalArgumentException - 如果 elementNamenull 或者不是此格式的合法元素名称。

JDK 1.6 中文手册