模块  java.desktop

Class IIOMetadataFormatImpl

  • 实现的所有接口
    IIOMetadataFormat

    public abstract class IIOMetadataFormatImpl
    extends Object
    implements IIOMetadataFormat
    一个具体类,提供IIOMetadataFormat接口的可重用实现。 此外, getStandardFormatInstance方法提供了表示标准插件中性javax_imageio_1.0格式的静态实例。

    为了提供元素和属性的局部描述,一个ResourceBundle用的基本名称this.getClass().getName() + "Resources"应通过所使用的通常的机构供给ResourceBundle.getBundle 简而言之,子类格根据命名约定提供一个或多个附加类(默认情况下,扩展IIMetadataFormatImpl的子类的完全限定名称,加上字符串“Resources”,加上由下划线分隔的国家,语言和变体代码) 。 在运行时,对getElementDescriptiongetAttributeDescription调用将尝试根据提供的语言环境动态加载此类,并将使用元素名称或元素名称后跟“/”字符,后跟属性名称作为键。 此密钥将提供给ResourceBundlegetString方法,并返回节点或属性的结果本地化描述。

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

    如果需要,子类可以通过覆盖getElementDescriptiongetAttributeDescription的提供实现来选择其自己的本地化机制。

    另请参见:
    ResourceBundle.getBundle(String,Locale)
    • 字段详细信息

      • standardMetadataFormatName

        public static final String standardMetadataFormatName
        包含标准格式名称的 String常量, "javax_imageio_1.0"
        另请参见:
        常数字段值
    • 构造方法详细信息

      • IIOMetadataFormatImpl

        public IIOMetadataFormatImpl​(String rootName,
                                     int childPolicy)
        构造一个空白的IIOMetadataFormatImpl实例,其中包含给定的根元素名称和子策略( CHILD_POLICY_REPEAT )。 可以使用各种add方法添加附加元素及其属性和Object参考信息。
        参数
        rootName - 根元素的名称。
        childPolicy - 除 CHILD_POLICY_REPEAT之外的 CHILD_POLICY_*常量 CHILD_POLICY_REPEAT
        异常
        IllegalArgumentException - 如果 rootNamenull
        IllegalArgumentException - 如果 childPolicy不是预定义常量之一。
      • IIOMetadataFormatImpl

        public IIOMetadataFormatImpl​(String rootName,
                                     int minChildren,
                                     int maxChildren)
        构造一个空白的IIOMetadataFormatImpl实例,其中包含给定的根元素名称和子策略CHILD_POLICY_REPEAT 可以使用各种add方法添加附加元素及其属性和Object参考信息。
        参数
        rootName - 根元素的名称。
        minChildren - 节点的最 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_*常量 CHILD_POLICY_REPEAT ,指示新元素的子策略。
        异常
        IllegalArgumentException - 如果 parentNamenull ,或者不是此格式的合法元素名称。
        IllegalArgumentException - 如果 childPolicy不是预定义常量之一。
      • addElement

        protected void addElement​(String elementName,
                                  String parentName,
                                  int minChildren,
                                  int maxChildren)
        使用子策略 CHILD_POLICY_REPEAT向此元数据文档格式添加新元素类型。
        参数
        elementName - 新元素的名称。
        parentName - 将成为新元素的父元素的元素的名称。
        minChildren - 节点的最 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 - List of String s包含属性的合法值。
        异常
        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 - minValue的最小(包含或排除,具体取决于 minInclusive的值)合法值,如 String
        maxValue - maxValue的最大(包含或排除,具体取决于 minInclusive的值)合法值,如 String
        minInclusive - true如果 minValue是包含的。
        maxInclusive - true如果 maxValue包含在内。
        异常
        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 ,或者不是此格式的合法元素名称。
        IllegalArgumentException - 如果 attrNamenull
        IllegalArgumentException - 如果 dataType不是预定义常量之一。
        IllegalArgumentException - 如果 listMinLength为负数或大于 listMaxLength
      • addBooleanAttribute

        protected void addBooleanAttribute​(String elementName,
                                           String attrName,
                                           boolean hasDefaultValue,
                                           boolean defaultValue)
        将新属性添加到先前定义的元素,该元素将由枚举值 TRUEFALSE ,数据类型为 DATATYPE_BOOLEAN
        参数
        elementName - 元素的名称。
        attrName - 要添加的属性的名称。
        hasDefaultValue - true如果应存在默认值。
        defaultValue - 属性的默认值为 boolean ,如果 hasDefaultValuefalse ,则忽略该值。
        异常
        IllegalArgumentException - 如果 elementNamenull ,或者不是此格式的合法元素名称。
        IllegalArgumentException - 如果 attrNamenull
      • removeAttribute

        protected void removeAttribute​(String elementName,
                                       String attrName)
        从先前定义的元素中删除属性。 如果给定元素中不存在具有给定名称的属性,则不会发生任何事情并且不会抛出异常。
        参数
        elementName - 元素的名称。
        attrName - 要删除的属性的名称。
        异常
        IllegalArgumentException - 如果 elementNamenull ,或者不是此格式的合法元素名称。
      • addObjectValue

        protected <T> void addObjectValue​(String elementName,
                                          <T> classType,
                                          boolean required,
                                          T defaultValue)
        允许Object定类类型的Object引用存储在实现指定元素的节点中。 除了类类型之外, Object的值不受约束。

        如果先前允许使用Object引用,则会覆盖先前的设置。

        参数类型
        T - 对象的类型。
        参数
        elementName - 元素的名称。
        classType - 一个 变量,指示对象值的合法类类型。
        required - true如果必须存在对象值。
        defaultValue - Object引用的默认值,或 null
        异常
        IllegalArgumentException - 如果 elementNamenull ,或者不是此格式的合法元素名称。
      • addObjectValue

        protected <T> void addObjectValue​(String elementName,
                                          <T> classType,
                                          boolean required,
                                          T defaultValue,
                                          List<? extends T> enumeratedValues)
        允许Object定类类型的Object引用存储在实现指定元素的节点中。 Object的值必须是enumeratedValues给出的值enumeratedValues

        如果先前允许使用Object引用,则会覆盖先前的设置。

        参数类型
        T - 对象的类型。
        参数
        elementName - 元素的名称。
        classType - 一个 变量,指示对象值的合法类类型。
        required - true如果必须存在对象值。
        defaultValue - Object参考的默认值,或 null
        enumeratedValues - List of Object s包含对象引用的合法值。
        异常
        IllegalArgumentException - 如果 elementNamenull ,或者不是此格式的合法元素名称。
        IllegalArgumentException - 如果 enumeratedValuesnull
        IllegalArgumentException - 如果 enumeratedValues不包含至少一个条目。
        IllegalArgumentException - 如果 enumeratedValues包含的元素不是由 classType表示的类类型的实例,或者是 null
      • addObjectValue

        protected <T extends Object & Comparable<? super T>> void addObjectValue​(String elementName,
                                                                                 <T> classType,
                                                                                 T defaultValue,
                                                                                 Comparable<? super T> minValue,
                                                                                 Comparable<? super T> maxValue,
                                                                                 boolean minInclusive,
                                                                                 boolean maxInclusive)
        允许Object定类类型的Object引用存储在实现指定元素的节点中。 Object的值必须在minValuemaxValue给出的范围内。 此外,类类型必须实现Comparable接口。

        如果先前允许使用Object引用,则会覆盖先前的设置。

        参数类型
        T - 对象的类型。
        参数
        elementName - 元素的名称。
        classType - 一个 变量,指示对象值的合法类类型。
        defaultValue - 的默认值
        minValue - 对象值的最小(包含或排除取决于值 minInclusive )合法值,如 String
        maxValue - 最大(包含或排除取决于值 minInclusive )对象值的合法值,如 String
        minInclusive - true如果 minValue是包含的。
        maxInclusive - true如果 maxValue包含在内。
        异常
        IllegalArgumentException - 如果 elementNamenull ,或者不是此格式的合法元素名称。
      • addObjectValue

        protected void addObjectValue​(String elementName,
                                      <?> classType,
                                      int arrayMinLength,
                                      int arrayMaxLength)
        允许Object定类类型的Object引用存储在实现指定元素的节点中。 Object的值必须是由classType给出的类类型的对象数组,至少包含arrayMinLength和最多arrayMaxLength元素。

        如果先前允许使用Object引用,则会覆盖先前的设置。

        参数
        elementName - 元素的名称。
        classType - 一个 变量,指示对象值的合法类类型。
        arrayMinLength - 数组的最小合法长度。
        arrayMaxLength - 数组的最大合法长度。
        异常
        IllegalArgumentException - 如果 elementName不是此格式的合法元素名称。
      • removeObjectValue

        protected void removeObjectValue​(String elementName)
        禁止将 Object引用存储在实现指定元素的节点中。
        参数
        elementName - 元素的名称。
        异常
        IllegalArgumentException - 如果 elementName不是此格式的合法元素名称。
      • getElementDescription

        public String getElementDescription​(String elementName,
                                            Locale locale)
        返回String含有指定元素,或的描述null 如果可能,将对所提供的Locale进行本地化描述。

        默认的实现会先找到ResourceBundle利用当前资源基本名称由设置setResourceBaseName和供应Locale ,使用中的注释中描述的应变机制ResourceBundle.getBundle 如果找到ResourceBundle ,则元素名称将用作其getString方法的键,并返回结果。 如果未找到ResourceBundle ,或者没有此类密钥,则将返回null

        如果localenull ,当前的默认Locale由归国Locale.getLocale将被使用。

        Specified by:
        getElementDescription在界面 IIOMetadataFormat
        参数
        elementName - 元素的名称。
        locale - 将尝试本地化的 Locale
        结果
        元素描述。
        异常
        IllegalArgumentException - 如果 elementNamenull ,或者不是此格式的合法元素名称。
        另请参见:
        setResourceBaseName(java.lang.String)
      • getAttributeDescription

        public String getAttributeDescription​(String elementName,
                                              String attrName,
                                              Locale locale)
        返回String含有指定属性,或的描述null 如果可能,将对所提供的Locale进行本地化描述。

        默认的实现会先找到ResourceBundle利用当前资源基本名称由设置setResourceBaseName和供应Locale ,使用中的注释中描述的应变机制ResourceBundle.getBundle 如果找到ResourceBundle ,则元素名称后跟“/”字符后跟属性名称( elementName + "/" + attrName )将用作其getString方法的键,并返回结果。 如果未找到ResourceBundle ,或者没有此类密钥,则将返回null

        如果localenull ,当前的默认Locale由归国Locale.getLocale将被使用。

        Specified by:
        getAttributeDescription在界面 IIOMetadataFormat
        参数
        elementName - 元素的名称。
        attrName - 属性的名称。
        locale - 将尝试本地化的 Locale ,或 null
        结果
        属性描述。
        异常
        IllegalArgumentException - 如果 elementNamenull ,或者不是此格式的合法元素名称。
        IllegalArgumentException - 如果 attrNamenull或者不是此元素的合法属性名称。
        另请参见:
        setResourceBaseName(java.lang.String)
      • getStandardFormatInstance

        public static IIOMetadataFormat getStandardFormatInstance()
        返回 IIOMetadataFormat对象,该对象描述 javax.imageio.metadata程序包注释中描述的标准插件中性 javax.imageio_1.0元数据文档格式。
        结果
        预定义的 IIOMetadataFormat实例。