java.lang.Object javax.imageio.metadata.IIOMetadataFormatImpl
public abstract class IIOMetadataFormatImpl
提供 IIOMetadataFormat
接口的可重用实现的具体类。此外,通过 getStandardFormatInstance
方法提供一个表示标准的、插件无关的 javax_imageio_1.0
格式的静态实例。
为了提供元素和属性的本地化的描述,应该通过 ResourceBundle.getBundle
使用的常规机制来提供基本名称为 this.getClass().getName() + "Resources"
的 ResourceBundle
。简单地说,子类根据命名约定(默认情况下为扩展 IIMetadataFormatImpl
的子类的完全限定名,加上字符串 "Resources",加上国家/地区、语言和由下划线分隔的变体代码)提供一个或多个其他类。在运行期间,调用 getElementDescription
或 getAttributeDescription
将尝试根据提供的语言环境动态加载这些类,并将使用元素名称或者后跟 '/' 字符再后跟作为键的属性名的元素名称。此键将提供给 ResourceBundle
的 getString
方法,并返回所得到的节点或属性的本地化描述。
子类可以使用 setResourceBaseName
方法为资源包提供另外的基本名称。
在需要时,子类可以通过重写提供的 getElementDescription
和 getAttributeDescription
实现来选择它自己的本地化机制。
字段摘要 | |
---|---|
static String |
standardMetadataFormatName 包含标准格式名称 "javax_imageio_1.0" 的 String 常量。 |
构造方法摘要 | |
---|---|
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) 将新属性添加到以前定义的元素中,该元素将由枚举值 TRUE 和 FALSE 定义,数据类型为 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
|
addObjectValue(String elementName, Class<T> classType, boolean required, T defaultValue) 允许将给定类类型的 Object 引用存储在实现指定元素的节点中。 |
|
protected
|
addObjectValue(String elementName, Class<T> classType, boolean required, T defaultValue, List<? extends T> enumeratedValues) 允许将给定类类型的 Object 引用存储在实现指定元素的节点中。 |
|
protected
|
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 |
字段详细信息 |
---|
public static final String standardMetadataFormatName
"javax_imageio_1.0"
的
String
常量。
构造方法详细信息 |
---|
public IIOMetadataFormatImpl(String rootName, int childPolicy)
IIOMetadataFormatImpl
实例,使其具有给定根元素名称和子策略(
CHILD_POLICY_REPEAT
除外)。其他元素及其属性以及
Object
引用信息可以使用各种
add
方法添加。
rootName
- 根元素的名称。
childPolicy
-
CHILD_POLICY_REPEAT
之外的
CHILD_POLICY_*
常量之一。
IllegalArgumentException
- 如果
rootName
为
null
。
IllegalArgumentException
- 如果
childPolicy
不是预定义的常量之一。
public IIOMetadataFormatImpl(String rootName, int minChildren, int maxChildren)
IIOMetadataFormatImpl
实例,使其具有给定根元素名称和子策略
CHILD_POLICY_REPEAT
。其他元素及其属性以及
Object
引用信息可以使用各种
add
方法添加。
rootName
- 根元素的名称。
minChildren
- 节点的最小子节点数。
maxChildren
- 节点的最大子节点数。
IllegalArgumentException
- 如果
rootName
为
null
。
IllegalArgumentException
- 如果
minChildren
为负或大于
maxChildren
。
方法详细信息 |
---|
protected void setResourceBaseName(String resourceBaseName)
ResourceBundle
新基本名称。
在首次调用此方法之前,基本名称将等于 this.getClass().getName() + "Resources"
。
resourceBaseName
- 包含新基本名称的
String
。
IllegalArgumentException
- 如果
resourceBaseName
为
null
。
getResourceBaseName()
protected String getResourceBaseName()
ResourceBundle
的基本名称。
String
。
setResourceBaseName(java.lang.String)
protected void addElement(String elementName, String parentName, int childPolicy)
CHILD_POLICY_REPEAT
除外)将新元素类型添加到此元数据文档格式中。
elementName
- 新元素的名称。
parentName
- 将作为新元素的父元素的元素的名称。
childPolicy
-
CHILD_POLICY_REPEAT
之外的
CHILD_POLICY_*
常量之一,指示新元素的子策略。
IllegalArgumentException
- 如果
parentName
为
null
或者不是此格式的合法元素名称。
IllegalArgumentException
- 如果
childPolicy
不是预定义的常量之一。
protected void addElement(String elementName, String parentName, int minChildren, int maxChildren)
CHILD_POLICY_REPEAT
将新元素类型添加到此元数据文档格式中。
elementName
- 新元素的名称。
parentName
- 将作为新元素的父元素的元素的名称。
minChildren
- 节点的最小子节点数。
maxChildren
- 节点的最大子节点数。
IllegalArgumentException
- 如果
parentName
为
null
或者不是此格式的合法元素名称。
IllegalArgumentException
- 如果
minChildren
为负或大于
maxChildren
。
protected void addChildElement(String elementName, String parentName)
parentName
- 将作为元素的新父元素的元素的名称。
elementName
- 要作为子元素添加的元素的名称。
IllegalArgumentException
- 如果
elementName
为
null
或者不是此格式的合法元素名称。
IllegalArgumentException
- 如果
parentName
为
null
或者不是此格式的合法元素名称。
protected void removeElement(String elementName)
elementName
- 要移除的元素的名称。
protected void addAttribute(String elementName, String attrName, int dataType, boolean required, String defaultValue)
elementName
- 元素的名称。
attrName
- 要添加的属性的名称。
dataType
- 属性的数据类型(字符串格式),
DATATYPE_*
常量之一。
required
- 如果属性必须存在,则为
true
。
defaultValue
- 属性的默认值,或者为
null
。
IllegalArgumentException
- 如果
elementName
为
null
或者不是此格式的合法元素名称。
IllegalArgumentException
- 如果
attrName
为
null
。
IllegalArgumentException
- 如果
dataType
不是预定义的常量之一。
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
- 如果
elementName
为
null
或者不是此格式的合法元素名称。
IllegalArgumentException
- 如果
attrName
为
null
。
IllegalArgumentException
- 如果
dataType
不是预定义的常量之一。
IllegalArgumentException
- 如果
enumeratedValues
为
null
。
IllegalArgumentException
- 如果
enumeratedValues
不包含至少一项。
IllegalArgumentException
- 如果
enumeratedValues
包含不为
String
的元素或者为
null
。
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
- 如果
elementName
为
null
或者不是此格式的合法元素名称。
IllegalArgumentException
- 如果
attrName
为
null
。
IllegalArgumentException
- 如果
dataType
不是预定义的常量之一。
protected void addAttribute(String elementName, String attrName, int dataType, boolean required, int listMinLength, int listMaxLength)
elementName
- 元素的名称。
attrName
- 要添加的属性的名称。
dataType
- 属性的数据类型(字符串格式),
DATATYPE_*
常量之一。
required
- 如果属性必须存在,则为
true
。
listMinLength
- 列表项的最小合法数。
listMaxLength
- 列表项的最大合法数。
IllegalArgumentException
- 如果
elementName
为
null
或者不是此格式的合法元素名称。