|
JavaTM Platform Standard Ed. 6 |
|||||||||
前のクラス 次のクラス | フレームあり フレームなし | |||||||||
概要: 入れ子 | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド |
java.lang.Object java.util.spi.LocaleServiceProvider
public abstract class LocaleServiceProvider
これは、ロケールに依存するすべてのサービスプロバイダインタフェース (SPI) のスーパークラスです。
ロケール依存サービスプロバイダインタフェースは、java.text
および java.util
パッケージ内のロケール依存クラスに対応するインタフェースです。これらのインタフェースを使えば、これらのパッケージでロケール依存オブジェクトを構築したりローカライズされた名前を取得したりできます。java.text
および java.util
パッケージ内のロケールに依存するファクトリメソッドや名前取得メソッドは、プロバイダインタフェースの実装を使用することで、Java 実行環境自体がサポートする一連のロケールに含まれないロケールをサポートします。
特定の具象プロバイダクラスが複数の構成ファイル内、または同じ構成ファイル内で繰り返し指定されている場合、重複した指定は無視されます。特定のプロバイダを指定した構成ファイルを、プロバイダ自体と同じ JAR ファイル (またはその他の配布単位) 内に含める必要はありません。このプロバイダには、構成ファイルの検索時に最初に照会されたクラスローダーからアクセスできなければいけません。 なお、そのクラスローダーは、ファイルをロードしたクラスローダーと同一であるとは限りません。
たとえば、DateFormatProvider
クラスの実装は、次のファイルを含む JAR ファイルの形態をとるべきです。
META-INF/services/java.text.spi.DateFormatProviderそして、ファイル
java.text.spi.DateFormatProvider
には次のような行が含まれているべきです。
com.foo.DateFormatProviderImpl
これは、DateFormatProvider
を実装するクラスの完全指定クラス名です。
java.text
および java.util
パッケージ内のロケールに依存するファクトリメソッドや名前取得メソッドは、サービスプロバイダのメソッドを必要に応じて呼び出すことで、要求されたロケールをサポートします。それらのメソッドはまず、Java 実行環境自体が要求されたロケールをサポートするかどうかをチェックし、サポートが使用可能であればそのサポートを使用します。それ以外の場合、それらは、適切なインタフェースのインストール済みプロバイダの getAvailableLocales()
メソッドを呼び出すことで、要求されたロケールをサポートするプロバイダを検索します。そのようなプロバイダが見つかった場合、そのプロバイダのその他のメソッドが呼び出され、要求されたオブジェクトまたは名前が取得されます。Java 実行環境自体、インストール済みプロバイダのどちらも要求されたロケールをサポートしない場合には、そのロケールのバリアント文字列、国文字列、言語文字列のうち、空文字列でない最初のものを空文字列で置き換えることでフォールバックロケールが構築され、検索処理が再開されます。バリアントに 1 つ以上の「_」が含まれている場合には、そのバリアントを、最後の「_」とそれに続く部分を除去した新しいバリアントで置き換えることで、フォールバックロケールが構築されます。フォールバックが実行される場合でも、そのフォールバックの前に、要求されたオブジェクトまたは名前を返すメソッドが元のロケールを指定して呼び出されます。この処理が必ず終了するためには、Java 実行環境がすべてのロケール依存サービスに対してルートロケールをサポートしなければいけません。
名前のプロバイダ (その他のオブジェクトのプロバイダではない) は、getAvailableLocales
の戻り値に含めることでサポートを宣言したロケールに対しても、一部の名前要求に null を返すことが許されています。同様に、Java 実行環境自体は、サポートするすべてのロケールのすべての名前を保持していなくてもかまいません。これは、名前の要求対象となるオブジェクト群が、規模が大きかったり時間の経過に従って変化したりする可能性があるため、それらを完全にカバーすることが常に実現可能とはかぎらないからです。Java 実行環境またはプロバイダが名前の代わりに null を返した場合、そのロケールがまるでサポートされていなかったかのように、上記で説明したとおりに検索処理が進みます。
コンストラクタの概要 | |
---|---|
protected |
LocaleServiceProvider()
唯一のコンストラクタです。 |
メソッドの概要 | |
---|---|
abstract Locale[] |
getAvailableLocales()
このロケールサービスプロバイダがローカライズ済みのオブジェクトや名前を提供可能な、すべてのロケールを含む配列を返します。 |
クラス java.lang.Object から継承されたメソッド |
---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
コンストラクタの詳細 |
---|
protected LocaleServiceProvider()
メソッドの詳細 |
---|
public abstract Locale[] getAvailableLocales()
|
JavaTM Platform Standard Ed. 6 |
|||||||||
前のクラス 次のクラス | フレームあり フレームなし | |||||||||
概要: 入れ子 | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド |
Copyright 2009 Sun Microsystems, Inc. All rights reserved. Use is subject to license terms. Documentation Redistribution Policy も参照してください。