- java.lang.Object
-
- java.util.spi.AbstractResourceBundleProvider
-
- すべての実装されたインタフェース:
ResourceBundleProvider
public abstract class AbstractResourceBundleProvider extends Object implements ResourceBundleProvider
AbstractResourceBundleProviderは、ResourceBundleProviderのプロバイダ実装クラスの基本サポートを提供する抽象クラスです。リソース・バンドルは、1つ以上の名前付きモジュールサービス・プロバイダ・モジュールにパッケージ化できます。 リソース・バンドルのコンシューマは、
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
- 関連項目:
- リソース・バンドルおよび名前付きモジュール
-
-
コンストラクタのサマリー
コンストラクタ 修飾子 コンストラクタ 説明 protectedAbstractResourceBundleProvider()java.properties形式のAbstractResourceBundleProviderを構築します。protectedAbstractResourceBundleProvider(String... formats)指定されたformatsでAbstractResourceBundleProviderを構築します。
-
メソッドのサマリー
すべてのメソッド インスタンス・メソッド 具象メソッド 修飾子と型 メソッド 説明 ResourceBundlegetBundle(String baseName, Locale locale)指定されたbaseNameおよびlocaleのResourceBundleを返します。protected StringtoBundleName(String baseName, Locale locale)このプロバイダが提供する、指定されたbaseNameおよびlocaleのバンドル名を返します。
-
-
-
コンストラクタの詳細
-
AbstractResourceBundleProvider
protected AbstractResourceBundleProvider()
java.properties形式のAbstractResourceBundleProviderを構築します。 このコンストラクタは、AbstractResourceBundleProvider("java.properties")と同等です。
-
AbstractResourceBundleProvider
protected AbstractResourceBundleProvider(String... formats)
指定されたformatsでAbstractResourceBundleProviderを構築します。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 - 実装上のノート:
- このメソッドのデフォルト実装では、
toBundleNameメソッドをコールして、baseNameおよびlocaleのバンドル名を取得し、このプロバイダのモジュールでローカルなバンドル名のリソース・バンドルを検索します。 このプロバイダの作成時に指定された書式のみが検索されます。 - パラメータ:
baseName- リソース・バンドルの基底バンドル名。完全指定クラス名locale- リソース・バンドルのインスタンス化対象となるロケール- 戻り値:
- 指定された
baseNameおよびlocaleのResourceBundle、またはリソース・バンドルが見つからない場合はnull - 例外:
NullPointerException-baseNameまたはlocaleがnullである場合UncheckedIOException- リソース・バンドルのロード中にIO例外が発生した場合
-
-