국제화 컨텍스트 API: 프로그래밍 참조
애플리케이션 컴포넌트는 프로그래밍 방식으로 com.ibm.websphere.i18n.context 패키지에서 UserInternationalization과 Internationalization 및 InvocationInternationalization 인터페이스를 통하여 국제화 컨텍스트를 관리합니다.
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 컨텍스트 오브젝트에 참조를 획득하기 위한 팩토리 메소드를 제공합니다. 이 참조를 사용하여 호출자의 요소 및 현재 스레드와 상호 관련된 호출 컨텍스트에 액세스합니다.
- Internationalization getCallerInternationalization()
- 현재 스레드와 상호 관련된 호출자 국제화 컨텍스트의 요소에 대한 액세스를 지원하는 Internationalization 인터페이스를 구현하는 참조를 리턴합니다. 서비스가 사용 안함으로 설정되면, 이 메소드는 IllegalStateException 예외를 실행합니다.
- InvocationInternationalization getInvocationInternationalization()
- InvocationInternationalization 인터페이스를 구현하는 참조를 리턴합니다. 서비스가 사용 안함으로 설정되면, 이 메소드는 IllegalStateException 예외를 실행합니다.
Internationalization 인터페이스
Internationalization 인터페이스는 internationalization 컨텍스트에 대한 읽기 전용 액세스를 제공하는 메소드를 선언합니다. 호출자 또는 호출 국제화 컨텍스트 오브젝트가 UserInternationalization 인터페이스로 제공되면, 오브젝트를 Internationalization 인터페이스에 바인드하여 해당 컨텍스트 유형의 요소를 가져옵니다. 호출자 국제화 컨텍스트가 이 인터페이스를 통해서만 액세스될 수 있음을 관찰합니다.
- Locale[] getLocales()
- 체인이 널이 아닌 경우 인터페이스에 바인드된 국제화 컨텍스트(오브젝트) 내 로케일의 체인을 리턴합니다. 그렇지 않으면 이 메소드는 JVM(Java™ Virtual Machine)의 기본 로케일을 포함한 체인(1)의 길이를 리턴합니다.
- Locale getLocale()
- 체인이 널이 아닌 경우 인터페이스에 바인드된 국제화 컨텍스트(오브젝트) 내 로케일의 체인을 먼저 리턴합니다. 그렇지 않으면 이 메소드는 JVM의 기본 로케일을 리턴합니다.
- TimeZone getTimeZone()
- 시간대가 널이 아닌 경우 현재 스레드와 연관된 호출자 시간대(즉, SimpleTimeZone 인스턴스)를 리턴합니다. 그렇지 않은 경우 이 메소드는 프로세스 시간대를 리턴합니다.
InvocationInternationalization 인터페이스
InvocationInternationalization 인터페이스는 InvocationInternationalization 컨텍스트에 대한 읽기 및 쓰기 액세스를 제공하는 메소드를 선언합니다. 호출 국제화 컨텍스트 오브젝트가 UserInternationalization 인터페이스로 제공되면, 오브젝트를 InvocationInternationalization 인터페이스에 바인드하여 호출 컨텍스트의 요소를 얻고 설정합니다.
CMI(Container-Managed Internationalization) 정책에 따라, CMI 서블릿 또는 엔터프라이즈 Bean 내에서 호출되면 모든 set 메소드, setXxx()은 IllegalStateException 예외를 실행합니다.
- void setLocales(java.util.Locale[] locales)
- 호출 국제화 컨텍스트 내 제공된 체인, locales에 대한, 로케일의 체인을 설정합니다. 제공된 체인은 널이거나 길이(>= 0)가 있을 수 있습니다. 제공된 체인이 널이거나 길이(0)가 있으면, 서비스는 호출 로케일의 체인을 JVM의 기본 로케일을 포함한 길이(1)의 배열로 설정합니다. 널 항목은 제공된 로케일 목록 내에 존재할 수 있으며, 서비스는 원격 호출 시 JVM의 기본 로케일을 대체합니다.
- void setLocale(java.util.Locale locale)
- 호출 국제화 컨텍스트 내 로케일의 체인을 제공된 로케일, locale을 포함한 길이(1)의 배열로 설정합니다. 제공된 로케일은 널일 수 있습니다. 그런 경우에 서비스는 대신에 JVM의 기본 로케일을 포함한 길이(1)의 배열로 체인을 설정합니다.
- void setTimeZone(java.util.TimeZone timeZone)
- 제공된 시간대, time zone에 호출 국제화 컨텍스트 내 시간대를 설정합니다. 제공된 시간대가 java.util.SimpleTimeZone의 정확한 인스턴스가 아니거나, 널인 경우, 서비스는 대신에 JVM의 기본 시간 대로 호출 시간대를 설정합니다.
- void setTimeZone(String timeZoneId)
- 호출 국제화 컨텍스트 내 시간대를 제공된 ID, timeZoneId가 있는 java.util.SimpleTimeZone으로 설정합니다. 제공된 시간대 ID가 널이거나 올바르지 않은 경우(즉, ID가 java.util.TimeZone.getAvailableIds 메소드에서 리턴된 ID 목록에 표시되지 않음), 서비스는 호출 시간대를 GMT의 ID가 있고 오프셋이 00:00인 간단한 시간대로 설정하며, 그렇지 않은 경우 올바르지 않은 필드입니다.