モジュール java.desktop
パッケージ javax.imageio.metadata

クラスIIOMetadataFormatImpl

java.lang.Object
javax.imageio.metadata.IIOMetadataFormatImpl
すべての実装されたインタフェース:
IIOMetadataFormat

public abstract class IIOMetadataFormatImpl
extends Object
implements IIOMetadataFormat
IIOMetadataFormatインタフェースの再使用可能な実装を提供する具象クラスです。 さらに、標準の、プラグインに依存しないjavax_imageio_1.0形式を表す静的インスタンスがgetStandardFormatInstanceメソッドにより提供されます。

ローカライズされた要素と属性の説明を提供するためには、this.getClass().getName()+"Resources"のベース名を持つResourceBundleを、ResourceBundle.getBundleで使用される通常のメカニズムを介して提供する必要があります。 つまり、サブクラサーは命名規則に従って1つまたは複数の追加クラスを提供します(デフォルトでは、IIMetadataFormatImpl、文字列"Resources"、国、言語、およびバリアントのアンダースコアで区切られたコードを拡張するサブクラスの完全指定名)。 実行時には、getElementDescriptionまたはgetAttributeDescriptionの呼出しによって、指定されたロケールに従ってこのようなクラスの動的なロードが試行され、要素名、またはあとに「/」文字と属性名が続く要素名がキーとして使用されます。 このキーはResourceBundlegetStringメソッドに提供され、ローカライズされたノードまたは属性の説明が返されます。

サブクラスは、setResourceBaseNameメソッドを使用してリソース・バンドルの異なるベース名を提供できます。

必要に応じて、サブクラスは、getElementDescriptionおよびgetAttributeDescriptionの提供された実装をオーバーライドして、独自のローカリゼーション・メカニズムを選択できます。

関連項目:
ResourceBundle.getBundle(String,Locale)
  • フィールド詳細

  • コンストラクタの詳細

    • IIOMetadataFormatImpl

      public IIOMetadataFormatImpl​(String rootName, int childPolicy)
      指定されたルート要素名と子ポリシー(CHILD_POLICY_REPEAT以外)を使用して、空白のIIOMetadataFormatImplインスタンスを構築します。 追加要素と、その属性およびObject参照情報は、各種のaddメソッドを使用して追加できます。
      パラメータ:
      rootName - ルート要素の名前。
      childPolicy - CHILD_POLICY_REPEAT以外の、CHILD_POLICY_*定数の1つ。
      例外:
      IllegalArgumentException - rootNamenullの場合。
      IllegalArgumentException - childPolicyが事前に定義された定数の1つでない場合。
    • IIOMetadataFormatImpl

      public IIOMetadataFormatImpl​(String rootName, int minChildren, int maxChildren)
      指定されたルート要素名とCHILD_POLICY_REPEATの子ポリシーを使用して、空白のIIOMetadataFormatImplインスタンスを構築します。 追加要素と、その属性および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_*定数の1つ。
      例外:
      IllegalArgumentException - parentNamenullの場合、またはこの形式の有効な要素名でない場合。
      IllegalArgumentException - childPolicyが事前に定義された定数の1つでない場合。
    • 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_*定数の1つ。
      required - 属性が存在する必要がある場合はtrue
      defaultValue - 属性のデフォルト値、またはnull
      例外:
      IllegalArgumentException - elementNamenullの場合、またはこの形式の有効な要素名でない場合。
      IllegalArgumentException - attrNamenullの場合。
      IllegalArgumentException - dataTypeが事前に定義された定数の1つでない場合。
    • addAttribute

      protected void addAttribute​(String elementName, String attrName, int dataType, boolean required, String defaultValue, List<String> enumeratedValues)
      新しい属性を、列挙値のセットで定義される事前に定義された要素に追加します。
      パラメータ:
      elementName - 要素の名前。
      attrName - 追加される属性の名前。
      dataType - 属性のデータ型(文字列形式)で、DATATYPE_*定数の1つ。
      required - 属性が存在する必要がある場合はtrue
      defaultValue - 属性のデフォルト値、またはnull
      enumeratedValues - 属性の有効な値が格納されているStringList
      例外:
      IllegalArgumentException - elementNamenullの場合、またはこの形式の有効な要素名でない場合。
      IllegalArgumentException - attrNamenullの場合。
      IllegalArgumentException - dataTypeが事前に定義された定数の1つでない場合。
      IllegalArgumentException - enumeratedValuesnullの場合。
      IllegalArgumentException - enumeratedValuesにエントリが1つも格納されていない場合。
      IllegalArgumentException - enumeratedValuesStringでない要素、または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_*定数の1つ。
      required - 属性が存在する必要がある場合はtrue
      defaultValue - 属性のデフォルト値、またはnull
      minValue - Stringとしての、属性の最小(この値を含むか含まないかはminInclusiveの値によって決まります)の有効な値。
      maxValue - Stringとしての、属性の最大(この値を含むか含まないかはminInclusiveの値によって決まります)の有効な値。
      minInclusive - minValueが範囲に含まれる場合はtrue
      maxInclusive - maxValueが範囲に含まれる場合はtrue
      例外:
      IllegalArgumentException - elementNamenullの場合、またはこの形式の有効な要素名でない場合。
      IllegalArgumentException - attrNamenullの場合。
      IllegalArgumentException - dataTypeが事前に定義された定数の1つでない場合。
    • addAttribute

      protected void addAttribute​(String elementName, String attrName, int dataType, boolean required, int listMinLength, int listMaxLength)
      新しい属性を、値のリストで定義される事前に定義された要素に追加します。
      パラメータ:
      elementName - 要素の名前。
      attrName - 追加される属性の名前。
      dataType - 属性のデータ型(文字列形式)で、DATATYPE_*定数の1つ。
      required - 属性が存在する必要がある場合はtrue
      listMinLength - リスト項目の有効な最小数。
      listMaxLength - リスト項目の有効な最大数。
      例外:
      IllegalArgumentException - elementNamenullの場合、またはこの形式の有効な要素名でない場合。
      IllegalArgumentException - attrNamenullの場合。
      IllegalArgumentException - dataTypeが事前に定義された定数の1つでない場合。
      IllegalArgumentException - listMinLengthが負の値の場合、またはlistMaxLengthより大きい場合。
    • addBooleanAttribute

      protected void addBooleanAttribute​(String elementName, String attrName, boolean hasDefaultValue, boolean defaultValue)
      新しい属性を、DATATYPE_BOOLEANのデータ型で、列挙値TRUEおよびFALSEで定義される事前に定義された要素に追加します。
      パラメータ:
      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, Class<T> classType, boolean required, T defaultValue)
      指定されたクラス型のObject参照を、名前付き要素を実装するノードに格納できるようにします。 Objectの値は、そのクラス型による以外には制限されません。

      Object参照が以前に許可された場合、以前の設定値は上書きされます。

      型パラメータ:
      T - オブジェクトの型。
      パラメータ:
      elementName - 要素の名前。
      classType - オブジェクト値の有効なクラス型を示すClass変数。
      required - オブジェクト値が存在する必要がある場合はtrue
      defaultValue - Object参照のデフォルト値、またはnull
      例外:
      IllegalArgumentException - elementNamenullの場合、またはこの形式の有効な要素名でない場合。
    • addObjectValue

      protected <T> void addObjectValue​(String elementName, Class<T> classType, boolean required, T defaultValue, List<? extends T> enumeratedValues)
      指定されたクラス型のObject参照を、名前付き要素を実装するノードに格納できるようにします。 Objectの値は、enumeratedValuesで指定された値の1つである必要があります。

      Object参照が以前に許可された場合、以前の設定値は上書きされます。

      型パラメータ:
      T - オブジェクトの型。
      パラメータ:
      elementName - 要素の名前。
      classType - オブジェクト値の有効なクラス型を示すClass変数。
      required - オブジェクト値が存在する必要がある場合はtrue
      defaultValue - Object参照のデフォルト値、またはnull
      enumeratedValues - オブジェクト参照の有効な値が格納されているObjectList
      例外:
      IllegalArgumentException - elementNamenullの場合、またはこの形式の有効な要素名でない場合。
      IllegalArgumentException - enumeratedValuesnullの場合。
      IllegalArgumentException - enumeratedValuesにエントリが1つも格納されていない場合。
      IllegalArgumentException - enumeratedValuesclassTypeによって示されるクラス型のインスタンスでない要素を格納しているか、またはnullの場合。
    • addObjectValue

      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参照を、名前付き要素を実装するノードに格納できるようにします。 Objectの値は、minValueおよびmaxValueで指定される範囲内に存在している必要があります。 さらに、このクラス型はComparableインタフェースを実装する必要があります。

      Object参照が以前に許可された場合、以前の設定値は上書きされます。

      型パラメータ:
      T - オブジェクトの型。
      パラメータ:
      elementName - 要素の名前。
      classType - オブジェクト値の有効なクラス型を示すClass変数。
      defaultValue - 次のデフォルト値:
      minValue - Stringとしての、オブジェクト値の最小(この値を含むか含まないかはminInclusiveの値によって決まります)の有効な値。
      maxValue - Stringとしての、オブジェクト値の最大(この値を含むか含まないかはminInclusiveの値によって決まります)の有効な値。
      minInclusive - minValueが範囲に含まれる場合はtrue
      maxInclusive - maxValueが範囲に含まれる場合はtrue
      例外:
      IllegalArgumentException - elementNamenullの場合、またはこの形式の有効な要素名でない場合。
    • addObjectValue

      protected void addObjectValue​(String elementName, Class<?> classType, int arrayMinLength, int arrayMaxLength)
      指定されたクラス型のObject参照を、名前付き要素を実装するノードに格納できるようにします。 Objectの値は、少なくともarrayMinLengthの要素、最大でarrayMaxLengthの要素を持つ、classTypeで指定されたクラス型のオブジェクトの配列である必要があります。

      Object参照が以前に許可された場合、以前の設定値は上書きされます。

      パラメータ:
      elementName - 要素の名前。
      classType - オブジェクト値の有効なクラス型を示すClass変数。
      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にローカライズされます。

      デフォルトの実装では、まずsetResourceBaseNameで設定された現在のリソースのベース名を使用してResourceBundleを検索し、ResourceBundle.getBundleのコメントに記述された代替メカニズムを使用して、指定されたLocaleを検索します。 ResourceBundleが見つかった場合は、要素名がそのgetStringメソッドのキーとして使用され、結果が返されます。 ResourceBundleが見つからないか、そのようなキーが存在しない場合は、nullが返されます。

      localenullの場合、Locale.getLocaleによって返された現在のデフォルトLocaleが使用されます。

      定義:
      getElementDescription、インタフェース: IIOMetadataFormat
      パラメータ:
      elementName - 要素の名前。
      locale - ローカリゼーションを試みる対象となるLocale
      戻り値:
      要素の説明。
      例外:
      IllegalArgumentException - elementNamenullの場合、またはこの形式の有効な要素名でない場合。
      関連項目:
      setResourceBaseName(java.lang.String)
    • getAttributeDescription

      public String getAttributeDescription​(String elementName, String attrName, Locale locale)
      名前付き属性の説明を格納したString、またはnullを返します。 説明は、可能であれば、指定されたLocaleにローカライズされます。

      デフォルトの実装では、まずsetResourceBaseNameで設定された現在のリソースのベース名を使用してResourceBundleを検索し、ResourceBundle.getBundleのコメントに記述された代替メカニズムを使用して、指定されたLocaleを検索します。 ResourceBundleが見つかった場合は、あとに「/」文字と属性名が続く要素名(elementName+"/"+attrName)がそのgetStringメソッドのキーとして使用され、結果が返されます。 ResourceBundleが見つからないか、そのようなキーが存在しない場合は、nullが返されます。

      localenullの場合、Locale.getLocaleによって返された現在のデフォルトLocaleが使用されます。

      定義:
      getAttributeDescription、インタフェース: IIOMetadataFormat
      パラメータ:
      elementName - 要素の名前。
      attrName - 属性の名前。
      locale - ローカリゼーションを試みる、対象となるLocale、またはnull
      戻り値:
      属性の説明
      例外:
      IllegalArgumentException - elementNamenullの場合、またはこの形式の有効な要素名でない場合。
      IllegalArgumentException - attrNamenullの場合、またはこの要素の有効な属性名でない場合。
      関連項目:
      setResourceBaseName(java.lang.String)
    • getStandardFormatInstance

      public static IIOMetadataFormat getStandardFormatInstance()
      javax.imageio.metadataパッケージのコメントに記述されている、標準の、プラグインに依存しないjavax.imageio_1.0メタデータ・ドキュメント形式を記述するIIOMetadataFormatオブジェクトを返します。
      戻り値:
      事前に定義されたIIOMetadataFormatインスタンス。