- 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
AbstractResourceBundleProvider()
"java.properties"形式のAbstractResourceBundleProvider
を構築します。protected
AbstractResourceBundleProvider(String... formats)
AbstractResourceBundleProvider
を指定されたformats
で構築します。
-
メソッドのサマリー
修飾子と型 メソッド 説明 ResourceBundle
getBundle(String baseName, Locale locale)
与えられたbaseName
とlocale
のResourceBundle
を返します。protected String
toBundleName(String baseName, Locale locale)
このプロバイダが提供するbaseName
およびlocale
のバンドル名を返します。
-
-
-
コンストラクタの詳細
-
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)
与えられたbaseName
とlocale
のResourceBundle
を返します。- 定義:
- インタフェース
ResourceBundleProvider
内のgetBundle
- 実装上の注意:
- このメソッドのデフォルト実装では、
baseName
およびlocale
のバンドル名を取得するためにtoBundleName
メソッドを呼び出し、このプロバイダのモジュール内のローカル・バンドル名のリソース・バンドルを検索します。 このプロバイダが構築されたときに指定されたフォーマットのみを検索します。 - パラメータ:
baseName
- リソース・バンドルの基底バンドル名。完全指定クラス名locale
- リソース・バンドルのインスタンス化対象となるロケール- 戻り値:
- 指定された
baseName
とlocale
のResourceBundle
、またはリソース・バンドルが見つからない場合はnull
- 例外:
NullPointerException
-baseName
またはlocale
がnull
である場合UncheckedIOException
- リソース・バンドルのロード中にIO例外が発生した場合
-
-