クラスAbstractResourceBundleProvider

java.lang.Object
java.util.spi.AbstractResourceBundleProvider
すべての実装されたインタフェース:
ResourceBundleProvider

public abstract class AbstractResourceBundleProvider extends Object implements ResourceBundleProvider
AbstractResourceBundleProviderは、ResourceBundleProviderのプロバイダ実装クラスの基本サポートを提供する抽象クラスです。

リソース・バンドルは、1つ以上の名前付きモジュール「サービス・プロバイダ・モジュール」にパッケージ化できます。 リソース・バンドルのconsumerは、ResourceBundle.getBundle(String)を呼び出すものです。 コンシューマ・モジュールは、別のモジュールによって提供されるリソース・バンドル"com.example.app.MyResources"をロードするために、「サービス・ローダー」メカニズムを使用します。 "com.example.app.spi.MyResourcesProvider"という名前のサービス・インタフェースを定義する必要があります。「サービス・プロバイダ・モジュール」は、次のように"com.example.app.spi.MyResourcesProvider"の実装クラスを提供します:

import com.example.app.spi.MyResourcesProvider;
class MyResourcesProviderImpl extends AbstractResourceBundleProvider
    implements MyResourcesProvider
{
    public MyResourcesProviderImpl() {
        super("java.properties");
    }
    // this provider maps the resource bundle to per-language package
    protected String toBundleName(String baseName, Locale locale) {
        return "p." + locale.getLanguage() + "." + baseName;
    }

    public ResourceBundle getBundle(String baseName, Locale locale) {
        // this module only provides bundles in French
        if (locale.equals(Locale.FRENCH)) {
             return super.getBundle(baseName, locale);
        }
        // otherwise return null
        return null;
    }
}

詳細については、ResourceBundleProviderを参照してください。

導入されたバージョン:
9
関連項目:
  • コンストラクタのサマリー

    コンストラクタ
    修飾子
    コンストラクタ
    説明
    protected
    "java.properties"形式でAbstractResourceBundleProviderを構築します。
    protected
    AbstractResourceBundleProviderを指定されたformatsで構築します。
  • メソッドのサマリー

    修飾子と型
    メソッド
    説明
    getBundle(String baseName, Locale locale)
    与えられたbaseNamelocaleResourceBundleを返します。
    protected String
    toBundleName(String baseName, Locale locale)
    このプロバイダが提供する指定されたbaseNameおよび localeのバンドル名を返します。

    クラスオブジェクトで宣言されたメソッド

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    修飾子と型
    メソッド
    説明
    protected Object
    このオブジェクトのコピーを作成して、返します。
    boolean
    このオブジェクトと他のオブジェクトが等しいかどうかを示します。
    protected void
    削除予定のため非推奨: このAPI要素は、将来のバージョンで削除される可能性があります。
    最終決定は非推奨であり、将来のリリースで削除される可能性があります。
    final Class<?>
    このObjectの実行時クラスを返します。
    int
    このオブジェクトに対するハッシュ・コード値を返します。
    final void
    このオブジェクトのモニターで待機中のスレッドを1つ再開します。
    final void
    このオブジェクトのモニターで待機中のすべてのスレッドを再開します。
    オブジェクトの文字列表現を返します。
    final void
    現在のスレッドが目覚めるまで待機します。通常、notifiedまたはinterruptedです。
    final void
    wait(long timeoutMillis)
    現在のスレッドは、通常、notifiedまたはinterruptedであるか、一定のリアルタイムが経過するまで、目覚めるまで待機します。
    final void
    wait(long timeoutMillis, int nanos)
    現在のスレッドは、通常、notifiedまたはinterruptedであるか、一定のリアルタイムが経過するまで、目覚めるまで待機します。
  • コンストラクタの詳細

    • AbstractResourceBundleProvider

      protected AbstractResourceBundleProvider()
      "java.properties"形式でAbstractResourceBundleProviderを構築します。 このコンストラクタはAbstractResourceBundleProvider("java.properties")と等価です。
    • AbstractResourceBundleProvider

      protected AbstractResourceBundleProvider(String... formats)
      AbstractResourceBundleProviderを指定されたformatsで構築します。 getBundle(String, Locale)メソッドは、指定されたformatsのリソース・バンドルを検索します。formatsは"java.class"または"java.properties"である必要があります。
      パラメータ:
      formats - リソース・バンドルのロードに使用されるフォーマット
      スロー:
      NullPointerException - 指定されたformatsがnullの場合
      IllegalArgumentException - 指定されたformatsが"java.class"または"java.properties"でない場合。
  • メソッドの詳細

    • toBundleName

      protected String toBundleName(String baseName, Locale locale)
      このプロバイダが提供する指定されたbaseNameおよび localeのバンドル名を返します。
      APIのノート:
      リソース・バンドル・プロバイダは、パッケージが他の名前付きモジュール間で分割されていない場合、リソース・バンドルのベース名と同じパッケージにそのリソース・バンドルをパッケージ化できます。 特定のベース名のリソース・バンドルを提供するバンドル・プロバイダが複数存在する場合、リソース・バンドルを言語ごとのグループ化またはリージョンごとのグループ化でパッケージ化して、分割パッケージを排除できます。

      たとえば、baseName"p.resources.Bundle"の場合、Locale("ja", "", "XX")およびLocale("en")"p.resources.Bundle"のリソース・バンドル名はそれぞれ "p.resources.ja.Bundle_ja_ _XX"および"p.resources.Bundle_en"になります。

      このメソッドは、getBundle(String, Locale)メソッドのデフォルトの実装からコールされます。

      実装上のノート:
      このメソッドのデフォルトの実装は、ResourceBundle.Control.toBundleName(String, Locale)の実装と同じです。
      パラメータ:
      baseName - リソース・バンドルの基底名。完全指定クラス名
      locale - リソース・バンドルのロード対象となるロケール
      戻り値:
      リソース・バンドルのバンドル名
    • getBundle

      public ResourceBundle getBundle(String baseName, Locale locale)
      与えられたbaseNamelocaleResourceBundleを返します。
      定義:
      インタフェースResourceBundleProvider内のgetBundle
      実装上のノート:
      このメソッドのデフォルトの実装では、toBundleNameメソッドをコールしてbaseNameおよびlocaleのバンドル名を取得し、このプロバイダのモジュールでローカルなバンドル名のリソース・バンドルを検索します。 このプロバイダの構成時に指定された形式のみを検索します。
      パラメータ:
      baseName - リソース・バンドルの基底バンドル名。完全指定クラス名
      locale - リソース・バンドルのインスタンス化対象となるロケール
      戻り値:
      指定されたbaseNamelocaleResourceBundle、またはリソース・バンドルが見つからない場合はnull
      スロー:
      NullPointerException - baseNameまたはlocalenullである場合
      UncheckedIOException - リソース・バンドルのロード中にIO例外が発生した場合