アプリケーション・コンポーネントは、
com.ibm.websphere.i18n.context パッケージ内の UserInternationalization、Internationalization、
および InvocationInternationalization の各インターフェースを介して、
国際化対応コンテキストを方針に基づいて管理します。
以下のコード例では、国際化対応コンテキスト API を導入します。
public interface UserInternationalization {
public Internationalization getCallerInternationalization();
public InvocationInternationalization
getInvocationInternationalization();
}
public interface Internationalization {
public java.util.Locale[] getLocales();
public java.util.Locale getLocale();
public java.util.TimeZone getTimeZone();
}
public interface InvocationInternationalization
extends Internationalization {
public void setLocales(java.util.Locale[] locales);
public void setLocale(java.util.Locale jmLocale);
public void setTimeZone(java.util.TimeZonetimeZone);
public void setTimeZone(String timeZoneId);
}
UserInternationalization インターフェース
UserInternationalization インターフェースは、CallerInternationalization および
InvocationInternationalization コンテキスト・オブジェクトへの参照を取得する
ファクトリー・メソッドを提供します。これらの参照を使用して、
現行スレッドに相関する呼び出し元コンテキストおよび起動コンテキストのエレメントにアクセスします。
UserInternationalization インターフェースのメソッド:
- Internationalization getCallerInternationalization()
- Internationalization インターフェースをインプリメントする参照を戻します。このインターフェースは、現行スレッドと相互に関連している呼び出し元国際化対応コンテキストのエレメントへのアクセスをサポートしています。サービスが使用不可の場合、このメソッドは IllegalStateException 例外を発行します。
- InvocationInternationalization getInvocationInternationalization()
- InvocationInternationalization インターフェースをインプリメントしている参照を戻します。サービスが使用不可の場合、このメソッドは IllegalStateException 例外を発行します。
Internationalization インターフェース
Internationalization インターフェースは、国際化対応コンテキストへ読み取り専用アクセスを提供するメソッドを宣言しています。
UserInternationalization インターフェースで作成された呼び出し元または起動国際化対応コンテキスト・オブジェクトが指定された場合は、Internationalization インターフェースにオブジェクトをバインドして、そのコンテキスト・タイプのエレメントを取得します。
呼び出し元国際化対応コンテキストには、このインターフェースを介してのみアクセスできるという点に
注目してください。
Internationalization インターフェースのメソッド:
- Locale[] getLocales()
- チェーンがヌルでない場合は、インターフェースにバインドされた国際化対応コンテキスト (オブジェクト) 内のロケールのチェーンを戻します。チェーンがヌルの場合は、このメソッドは Java 仮想マシン (JVM) のデフォルト・ロケールを含む length(1) のチェーンを戻します。
- Locale getLocale()
- チェーンがヌルでない場合は、インターフェースにバインドされた国際化対応コンテキスト (オブジェクト) 内のロケールのチェーン内の最初のロケールを戻します。
チェーンがヌルの場合は、このメソッドは JVM のデフォルト・ロケールを戻します。
- TimeZone getTimeZone()
- 時間帯がヌルでない場合は、現行スレッドに関連付けられた呼び出し元時間帯 (つまり、SimpleTimeZone インスタンス) を戻します。チェーンがヌルの場合は、このメソッドはプロセス時間帯を戻します。
InvocationInternationalization インターフェース
InvocationInternationalization インターフェースは、InvocationInternationalization コンテキストへ読み取り/書き込みアクセスを提供するメソッドを宣言します。UserInternationalization インターフェースで作成された起動国際化対応コンテキスト・オブジェクトが指定された場合、InvocationInternationalization インターフェースにオブジェクトをバインドし、起動コンテキストのエレメントを取得および設定します。
コンテナー管理国際化対応 (CMI) ポリシーに従い、すべての set メソッド (setXxx()) は、CMI サーブレット
または Enterprise Bean 内部で呼び出されると IllegalStateException 例外を発行します。
InvocationInternationalization インターフェースのメソッド
- void setLocales(java.util.Locale[] locales)
-
ロケールのチェーンを起動国際化コンテキスト内の指定されたチェーン locales に設定します。
指定されたチェーンは、ヌルでも length(>= 0) でも構いません。
指定されたチェーンがヌルまたは length(0) の場合、
サービスは、起動ロケールのチェーンを、JVM のデフォルト・ロケールを含む length(1) の配列に設定します。
指定されたロケール・リスト内にヌル・エントリーが存在する場合があります。
その場合、サービスは、リモート起動時にヌルの代わりに JVM のデフォルト・ロケールを使用します。
- void setLocale(java.util.Locale locale)
-
起動国際化対応コンテキスト内のロケールのチェーンを
指定されたロケール locale を含む length(1) の配列に設定します。
指定されたロケールはヌルでも構いませんが、この場合、
サービスは代わりにチェーンを JVM のデフォルト・ロケールを含む length(1) の配列に設定します。
- void setTimeZone(java.util.TimeZone timeZone)
-
起動国際化対応コンテキスト内の時間帯を指定された時間帯 time zone に設定します。提供された時間帯が java.util.SimpleTimeZone のインスタンスそのものではない場合、またはヌルの場合には、サービスはその代わりに起動時間帯を JVM のデフォルトの時間帯に設定します。
- void setTimeZone(String timeZoneId)
- 起動国際化対応コンテキスト内の時間帯を、
指定された ID timeZoneId zone を持つ java.util.SimpleTimeZone に設定します。指定された時間帯 ID がヌルまたは無効である (つまり、java.util.TimeZone.getAvailableIds メソッドによって戻された ID のリストにその ID が表示されない) 場合、
サービスは起動時間帯を、GMT の ID を持つ単純な時間帯 (00:00 のオフセット)
に設定し、そうでない場合は無効フィールドに設定します。