JavaTM Platform
Standard Ed. 6

java.util
클래스 ResourceBundle.Control

java.lang.Object 
  상위를 확장 java.util.ResourceBundle.Control
포함되어 있는 클래스:
ResourceBundle


public static class ResourceBundle.Control
extends Object

ResourceBundle.Control 는, 번들 로드 처리중에 ResourceBundle.getBundle 팩토리 메소드에 의해 불려 가는 일련의 콜백 메소드를 정의합니다. 즉,ResourceBundle.Control 는, 자원 번들의 로드시에 팩토리 메소드와 제휴해 동작합니다. 콜백 메소드의 디폴트 구현은, 팩토리 메소드가디폴트 동작을 실행하기 위해서 필요한 정보를 제공합니다.

콜백 메소드 외에,toBundleNametoResourceName 메소드도 정의되고 있습니다. 이러한 주된 목적은, 콜백 메소드의 구현을 지원하는 것입니다. 다만,toBundleName 메소드를 오버라이드(override) 하면, 로컬라이즈가 끝난 자원의 구성이나 패키지화에 관한 다른 규약을 제공할 수 있습니다. toResourceName 메소드가 final 가 되어 있는 것은, 자원명이나 클래스명의 단락 문자의 오용을 회피하기 (위해)때문에입니다.

2 개의 팩토리 메소드 getControl(List)getNoFallbackControl(List) 는, 디폴트의 번들 로드 처리의 일반적인 변화(variation)을 구현한 ResourceBundle.Control 인스턴스를 제공합니다.

getFormats 메소드로부터 반환되는 형식과 getCandidateLocales 메소드로부터 반환되는 후보 로케일은, 같은 기저 번들에 대한 모든 ResourceBundle.getBundle 호출로 일관성이 있는 것 나오지 않으면 안됩니다. 그렇지 않으면ResourceBundle.getBundle 메소드가 상정외의 번들을 돌려줄 가능성이 있습니다. 예를 들어,ResourceBundle.getBundle 의 첫회 호출시에 getFormats 메소드로부터「java.class」만이 돌려주어져 2 번째의 호출시에「java.properties」만이 돌려주어졌을 경우, 그 2 번째의 호출에서는, 첫회 호출시에 캐쉬에 포함된 클래스 베이스의 번들이 돌려주어집니다.

복수의 thread가 동시에 사용하는 ResourceBundle.Control 인스턴스는, thread에 대해서 안전하지 않으면 안됩니다. ResourceBundle.getBundle 는,ResourceBundle.Control 의 메소드를 호출할 때에 동기 처리를 실시하지 않습니다. 이러한 메소드의 디폴트 구현은, thread에 대해서 안전합니다.

어플리케이션은,getControl 팩토리 메소드로부터 반환된 ResourceBundle.Control 인스턴스를 지정할 수도 있고,ResourceBundle.Control 의 서브 클래스로부터 작성된 인스턴스를 지정해 번들 로드 처리를 커스터마이즈 할 수도 있습니다. 디폴트의 번들 로드 처리를 변경하는 예를, 다음에 나타냅니다.

프로그램예 1

다음의 코드의 경우,ResourceBundle.getBundle 는 프로퍼티 베이스의 자원만을 검색합니다.

 import java.util. *;
 import static java.util.ResourceBundle.Control. *;
 ...
 ResourceBundle bundle =
   ResourceBundle.getBundle("MyResources", new Locale("fr", "CH"),
                            ResourceBundle.Control.getControl(FORMAT_PROPERTIES));
 
ResourceBundle.getBundle 의 설명의에 포함되는 자원 번들이 주어졌을 경우, 이 ResourceBundle.getBundle 호출에 의해 MyResources_fr_CH.properties 가 로드 됩니다. 그리고, 그 부모는 MyResources_fr.properties 가 되어, 한층 더 그 부모는 MyResources.properties 가 됩니다. (MyResources_fr_CH.properties 는 숨겨지지 않지만,MyResources_fr_CH.class 는 숨겨진다. )

프로그램예 2

Properties.loadFromXML 를 사용해 XML 베이스의 번들을 로드하는 예를, 다음에 나타냅니다.

 ResourceBundle rb = ResourceBundle.getBundle("Messages",
     new ResourceBundle.Control() {
         public List<String> getFormats(String baseName) {
             if (baseName == null)
                 throw new NullPointerException();
             return Arrays.asList("xml");
         }
         public ResourceBundle newBundle(String baseName,
                                         Locale locale,
                                         String format,
                                         ClassLoader loader,
                                         boolean reload)
                          throws IllegalAccessException,
                                 InstantiationException,
                                 IOException {
             if (baseName == null || locale == null
                   || format == null || loader == null)
                 throw new NullPointerException();
             ResourceBundle bundle = null;
             if (format.equals("xml")) {
                 String bundleName = toBundleName(baseName, locale);
                 String resourceName = toResourceName(bundleName, format);
                 InputStream stream = null;
                 if (reload) {
                     URL url = loader.getResource(resourceName);
                     if (url ! = null) {
                         URLConnection connection = url.openConnection();
                         if (connection ! = null) {
                             // 캐쉬를 무효로 하는 것으로, 재로드용의 최신 데이터를
                             // 취득할 수 있도록(듯이) 합니다.
                             connection.setUseCaches(false);
                             stream = connection.getInputStream();
                         }
                     }
                 } else {
                     stream = loader.getResourceAsStream(resourceName);
                 }
                 if (stream ! = null) {
                     BufferedInputStream bis = new BufferedInputStream(stream);
                     bundle = new XMLResourceBundle(bis);
                     bis.close();
                 }
             }
             return bundle;
         }
     });

 ...

 private static class XMLResourceBundle extends ResourceBundle {
     private Properties props;
     XMLResourceBundle(InputStream stream) throws IOException {
         props = new Properties();
         props.loadFromXML(stream);
     }
     protected Object handleGetObject(String key) {
         return props.getProperty(key);
     }
     public Enumeration<String> getKeys() {
         ...
     }
 }
 

도입된 버젼:
1.6

필드의 개요
static List <String > FORMAT_CLASS
          클래스만의 형식의 List.
static List <String > FORMAT_DEFAULT
          디폴트의 형식의 List.
static List <String > FORMAT_PROPERTIES
          프로퍼티만의 형식의 List.
static long TTL_DONT_CACHE
          로드 된 자원 번들 인스턴스를 캐쉬하지 않기 위한 유효기간 정수.
static long TTL_NO_EXPIRATION_CONTROL
          캐쉬내의 로드가 끝난 자원 번들 인스턴스의 유효기간 제어를 무효로 하기 위한 유효기간 정수.
 
생성자 의 개요
protected ResourceBundle.Control ()
          유일한 생성자 입니다.
 
메소드의 개요
 List <Locale > getCandidateLocales (String  baseName, Locale  locale)
          baseNamelocale 에 대한 후보 로케일로서LocaleList 를 돌려줍니다.
static ResourceBundle.Control getControl (List <String > formats)
          getFormats 메소드가 지정된 formats 를 돌려주는 것 같은,ResourceBundle.Control 을 돌려줍니다.
 Locale getFallbackLocale (String  baseName, Locale  locale)
          ResourceBundle.getBundle 팩토리 메소드가 자원 번들을 한층 더 검색할 때의 폴 백 로케일로서 사용해야 할 Locale 를 돌려줍니다.
 List <String > getFormats (String  baseName)
          지정된 baseName 의 자원 번들을 로드할 때에 사용해야 할 형식이 포함된,StringList 를 돌려줍니다.
static ResourceBundle.Control getNoFallbackControl (List <String > formats)
          getFormats 메소드가 지정된 formats 를 돌려주어, 한편 getFallbackLocale 메소드가 null 를 돌려주는 것 같은,ResourceBundle.Control 을 돌려줍니다.
 long getTimeToLive (String  baseName, Locale  locale)
          이 ResourceBundle.Control 아래에서 로드 된 자원 번들의 유효기간 (TTL) 치를 돌려줍니다.
 boolean needsReload (String  baseName, Locale  locale, String  format, ClassLoader  loader, ResourceBundle  bundle, long loadTime)
          캐쉬내에서 유효기간이 끊어진 bundle 를 재로드할 필요가 있을지 어떨지를,loadTime 로 지정된 로드 시각이나 그 외의 몇개의 조건에 근거해 판정합니다.
 ResourceBundle newBundle (String  baseName, Locale  locale, String  format, ClassLoader  loader, boolean reload)
          지정된 형식과 로케일을 가지는 지정된 번들명의 자원 번들을, 지정된 클래스 로더를 필요에 따라서 사용해 인스턴스화합니다.
 String toBundleName (String  baseName, Locale  locale)
          지정된 baseNamelocale 를 번들명으로 변환합니다.
 String toResourceName (String  bundleName, String  suffix)
          지정된 bundleName 을,ClassLoader.getResource 메소드가 요구하는 형식으로 변환합니다.
 
클래스 java.lang. Object 로부터 상속된 메소드
clone , equals , finalize , getClass , hashCode , notify , notifyAll , toString , wait , wait , wait
 

필드의 상세

FORMAT_DEFAULT

public static final List <String > FORMAT_DEFAULT
디폴트의 형식의 List. 캐릭터 라인「java.class」「java.properties」를 이 차례로 포함합니다. 이 List변경 불가능 입니다.

관련 항목:
getFormats(String)

FORMAT_CLASS

public static final List <String > FORMAT_CLASS
클래스만의 형식의 List. 「java.class」를 포함합니다. 이 List변경 불가능합니다 .

관련 항목:
getFormats(String)

FORMAT_PROPERTIES

public static final List <String > FORMAT_PROPERTIES
프로퍼티만의 형식의 List. 「java.properties」를 포함합니다. 이 List변경 불가능합니다 .

관련 항목:
getFormats(String)

TTL_DONT_CACHE

public static final long TTL_DONT_CACHE
로드 된 자원 번들 인스턴스를 캐쉬하지 않기 위한 유효기간 정수.

관련 항목:
getTimeToLive(String, Locale) , 정수 필드치

TTL_NO_EXPIRATION_CONTROL

public static final long TTL_NO_EXPIRATION_CONTROL
캐쉬내의 로드가 끝난 자원 번들 인스턴스의 유효기간 제어를 무효로 하기 위한 유효기간 정수.

관련 항목:
getTimeToLive(String, Locale) , 정수 필드치
생성자 의 상세

ResourceBundle.Control

protected ResourceBundle.Control()
유일한 생성자 입니다. 서브 클래스의 생성자 에 의한 호출용으로, 일반적으로은 암묵적으로 불려 갑니다.

메소드의 상세

getControl

public static final ResourceBundle.Control  getControl(List <String > formats)
getFormats 메소드가 지정된 formats 를 돌려주는 것 같은,ResourceBundle.Control 를 돌려줍니다. formats 는,FORMAT_PROPERTIES ,FORMAT_CLASS ,FORMAT_DEFAULT 의 어느쪽이든동일해집니다. 이 메소드가 돌려주는 ResourceBundle.Control 인스턴스는 단독으로 있어, thread에 대해서 안전합니다.

FORMAT_DEFAULT 를 지정하는 것은,ResourceBundle.Control 클래스를 인스턴스화하는 것으로 등가입니다. 다만, 이 메소드가 단독 객체를 돌려주는 점만은 다릅니다.

파라미터:
formats - ResourceBundle.Control.getFormats 메소드로부터 돌려주어져야 할 형식
반환값:
지정된 formats 를 지원하는 ResourceBundle.Control
예외:
NullPointerException - formatsnull 의 경우
IllegalArgumentException - formats 가 불명한 경우

getNoFallbackControl

public static final ResourceBundle.Control  getNoFallbackControl(List <String > formats)
getFormats 메소드가 지정된 formats 를 돌려주어, 한편 getFallbackLocale 메소드가 null 를 돌려주는 것 같은,ResourceBundle.Control 를 돌려줍니다. formats 는,FORMAT_PROPERTIES ,FORMAT_CLASS ,FORMAT_DEFAULT 의 어느쪽이든동일해집니다. 이 메소드가 돌려주는 ResourceBundle.Control 인스턴스는 단독으로 있어, thread에 대해서 안전합니다.

파라미터:
formats - ResourceBundle.Control.getFormats 메소드로부터 돌려주어져야 할 형식
반환값:
지정된 formats 를 지원해, 폴 백 Locale 를 지원하지 않는 ResourceBundle.Control
예외:
NullPointerException - formatsnull 의 경우
IllegalArgumentException - formats 가 불명한 경우

getFormats

public List <String > getFormats(String  baseName)
지정된 baseName 의 자원 번들을 로드할 때에 사용해야 할 형식이 포함된,StringList 를 돌려줍니다. ResourceBundle.getBundle 팩토리 메소드는, 이 리스트내의 형식을 가지는 자원 번들을, 리스트내로 지정된 차례로 로드하려고 합니다. 이 메소드로부터 반환된 리스트에는, 적어도 1 개의 String 가 포함되지 않으면 안됩니다. 정의 끝난 형식은, 클래스 베이스의 자원 번들용의「java.class」프로퍼티 베이스 의 자원 번들용의「java.properties」입니다. 「java.」(으)로 시작되는 캐릭터 라인은, 장래의 확장용으로서 예약되고 있기 (위해)때문에, 어플리케이션 정의 형식에서는 사용하지 말아 주세요.

불변의 (변경 불가능한) List 를 돌려줄 필요는, 반드시 없습니다. 다만,ListgetFormats 로부터 반환된 후에, 그 리스트를 변경 해서는 안됩니다.

디폴트 구현은 FORMAT_DEFAULT 를 돌려줍니다만, 이것은,ResourceBundle.getBundle 팩토리 메소드가 우선 클래스 베이스의 자원 번들을 검색해, 다음에 프로퍼티 베이스의 번들을 검색하도록(듯이) 하기 (위해)때문에입니다.

파라미터:
baseName - 자원 번들의 기저명. 완전 지정 클래스명
반환값:
자원 번들을 로드하기 위한 형식이 포함된,StringList
예외:
NullPointerException - baseName 가 null 의 경우
관련 항목:
FORMAT_DEFAULT , FORMAT_CLASS , FORMAT_PROPERTIES

getCandidateLocales

public List <Locale > getCandidateLocales(String  baseName,
                                        Locale  locale)
baseNamelocale 에 대한 후보 로케일로서LocaleList 를 돌려줍니다. 이 메소드는, 타겟 Locale 의 자원 번들의 검색을 ResourceBundle.getBundle 팩토리 메소드가 시도할 때마다, 그 팩토리 메소드에 의해 불려 갑니다.

후보 로케일에 대응하는 자원 번들이 존재하고 있어, 그러한 로드가 끝난 자원 번들 자체에는 부모가 정의되어 있지 않은 경우, 후보 로케일의 순서는, 실행시 자원 검색 패스 ( 「친연쇄」라고도 불린다)에도 대응합니다. 기저 번들을 친연쇄의 끝으로 할 필요가 있는 경우, 이 리스트의 마지막 요소는 루트 로케일 이 아니면 안됩니다.

지정된 로케일이 Locale.ROOT (루트 로케일)에 동일한 경우, 루트의 Locale 만을 포함한 List 가 돌려주어집니다. 이 경우,ResourceBundle.getBundle 팩토리 메소드는, 결과적으로 얻을 수 있는 자원 번들로서 기저 번들만을 로드합니다.

불변의 (변경 불가능한) List 를 돌려줄 필요는, 반드시 없습니다. 다만,ListgetCandidateLocales 로부터 반환된 후에, 그 리스트를 변경 해서는 안됩니다.

디폴트 구현은,Locale 가 다음의 차례로 포함된 List 를 돌려줍니다.

     Locale(language, country, variant)
     Locale(language, country)
     Locale(language)
     Locale.ROOT
 
여기서,language,country,variant 는 각각, 지정된 locale 의 언어, 나라, 변형의 값이 됩니다. 마지막 요소의 값이 공문자열인 것 같은 로케일은, 생략 됩니다.

디폴트 구현은 ArrayList 를 사용합니다만, 이것은, 오버라이드(override) 한 구현내에서, 호출 바탕으로 돌려주어지기 전으로 변경할 수가 있습니다. 다만,getCandidateLocales 로부터 반환된 후에 서브 클래스내에서 변경 해서는 안됩니다.

예를 들어, 지정된 baseName 가 「Messages」이며, 지정된 localeLocale("ja",  "",  "XX") 였을 경우, 반환되는 LocaleList 는,

     Locale("ja", "", "XX")
     Locale("ja")
     Locale.ROOT
 
(와)과 같이 됩니다. 그리고, 「ja」와「」의 Locale 에 대한 자원 번들이 발견되었을 경우, 실행시 자원 검색 패스 (친연쇄)는 다음과 같이 됩니다.
     Messages_ja -> Messages
 

파라미터:
baseName - 자원 번들의 기저명. 완전 지정 클래스명
locale - 자원 번들이 필요한 로케일
반환값:
지정된 locale 에 대한 후보 LocaleList
예외:
NullPointerException - baseName 또는 localenull 의 경우

getFallbackLocale

public Locale  getFallbackLocale(String  baseName,
                                Locale  locale)
ResourceBundle.getBundle 팩토리 메소드가 자원 번들을 한층 더 검색할 때의 폴 백 로케일로서 사용해야 할 Locale 를 돌려줍니다. 이 메소드는,baseNamelocale 에 대응하는 결과 자원 번들이 1 개도 발견되지 않는 상황이 발생할 때마다, 팩토리 메소드에 의해 불려 갑니다. 여기서, 그 로케일은,ResourceBundle.getBundle 의 파라미터, 이 메소드로부터 이전에 반환된 폴 백 로케일의 어느 쪽인가에 됩니다.

이 메소드는, 새로운 폴 백 검색이 필요없는 경우에 null 를 돌려줍니다.

디폴트 구현은, 지정된 locale 가 디폴트의 로케일이 아닌 경우에 디폴트의 Locale 를 돌려줍니다. 그 이외의 경우는,null 가 돌려주어집니다.

파라미터:
baseName - 자원 번들의 기저명. 완전 지정 클래스명. ResourceBundle.getBundle 는 이 기저명에 대해서, 기저 번들 이외의 자원 번들을 1 개도 찾아낼 수 없었던
locale - Locale. ResourceBundle.getBundle 는 이 로케일에 대해서, 기저 번들 이외의 자원 번들을 1 개도 찾아낼 수 없었다
반환값:
폴 백 검색용의 Locale. 새로운 폴 백 검색이 필요없는 경우는 null
예외:
NullPointerException - baseName 또는 localenull 의 경우

newBundle

public ResourceBundle  newBundle(String  baseName,
                                Locale  locale,
                                String  format,
                                ClassLoader  loader,
                                boolean reload)
                         throws IllegalAccessException ,
                                InstantiationException ,
                                IOException 
지정된 형식과 로케일을 가지는 지정된 번들명의 자원 번들을, 지정된 클래스 로더를 필요에 따라서 사용해 인스턴스화합니다. 지정된 파라미터에 대응하는 사용 가능한 자원 번들이 존재하지 않는 경우, 이 메소드는 null 를 돌려줍니다. 예상외의 에러가 발생했기 때문에 자원 번들의 인스턴스화를 실시할 수 없는 경우에는, 단순하게 null 를 돌려주는 대신에,Error 또는 Exception 를 throw 하는 것으로 에러가 보고됩니다.

reload 플래그가 true 의 경우, 그것은, 이전에 로드 된 자원 번들의 유효기간이 끊어졌기 때문에 이 메소드가 불려 간 것을 나타냅니다.

디폴트 구현에 의한 ResourceBundle 의 인스턴스화 순서는, 다음과 같습니다.

파라미터:
baseName - 자원 번들의 기저 번들명. 완전 지정 클래스명
locale - 자원 번들의 인스턴스화 대상이 되는 로케일
format - 로드 되는 자원 번들의 형식
loader - 번들을 로드하기 위한 ClassLoader
reload - 번들의 재로드를 나타내는 플래그. 유효기간이 끊어진 자원 번들을 재로드하는 경우는 true, 그 이외의 경우는 false
반환값:
자원 번들 인스턴스. 인스턴스가 발견되지 않았던 경우는 null
예외:
NullPointerException - bundleName,locale,format, 또는 loadernull 의 경우, 또는 toBundleName 로부터 null 가 돌려주어졌을 경우
IllegalArgumentException - format 가 불명한 경우, 또는 지정된 파라미터에 대해서 발견된 자원에 부정한 데이터가 포함되어 있는 경우
ClassCastException - 로드 된 클래스를 ResourceBundle 에 캐스트 할 수 없는 경우
IllegalAccessException - 클래스 또는 그 null 생성자 에 액세스 할 수 없는 경우
InstantiationException - 클래스의 인스턴스화가 무엇인가 다른 이유로써 실패하는 경우
ExceptionInInitializerError - 이 메소드에 의한 초기화가 실패했을 경우
SecurityException - 시큐리티 매니저가 존재해, 새로운 인스턴스의 작성이 거부되었을 경우. 자세한 것은 Class.newInstance() 를 참조
IOException - 어떠한 입출력 조작을 사용해 자원을 읽어낼 때에 에러가 발생했을 경우

getTimeToLive

public long getTimeToLive(String  baseName,
                          Locale  locale)
ResourceBundle.Control 아래에서 로드 된 자원 번들의 유효기간 (TTL) 치를 돌려줍니다. 정의 유효기간치는, 번들이 그 구축원이 되는 소스 데이터에 근거해 검증되지 않고 캐스트내에 머무를 수 있는 밀리 세컨드수를 나타냅니다. 값 0 은, 번들이 캐쉬로부터 취득될 때마다 검증되는 것을 나타냅니다. TTL_DONT_CACHE 는, 로드 된 자원 번들이 캐쉬에 포함되지 않는 것을 나타냅니다. TTL_NO_EXPIRATION_CONTROL 는, 로드 된 자원 번들이 유효기간 제어없이 캐쉬에 포함되는 것을 나타냅니다.

이 유효기간의 영향을 받는 것은,ResourceBundle.getBundle 팩토리 메소드에 의한 번들 로드 처리 뿐입니다. 즉, 팩토리 메소드는, 캐쉬내에서 유효기간이 끊어진 자원 번들을 검출하면(자),needsReload 메소드를 호출해, 그 자원 번들을 재로드할 필요가 있을지 어떨지를 판정합니다. needsReloadtrue 를 돌려주었을 경우, 그 캐쉬내의 자원 번들 인스턴스가 캐쉬로부터 삭제됩니다. 그 이외의 경우, 그 인스턴스는 캐쉬내에 머물러, 이 메소드로부터 반환된 새로운 TTL 치로 갱신됩니다.

캐쉬내의 자원 번들은 모두, 실행 환경의 메모리 제한에 의한, 캐쉬로부터의 삭제 대상이 됩니다. 큰 정의 값이 돌려주어져도, 그것은, 로드 된 자원 번들이 캐쉬내에서 락 되는 것을 의미하는 것은 아닙니다.

디폴트 구현은 TTL_NO_EXPIRATION_CONTROL 를 돌려줍니다.

파라미터:
baseName - 유효기간치가 지정되고 있는 자원 번들의 기저명
locale - 유효기간치가 지정되고 있는 자원 번들의 로케일
반환값:
캐쉬내의 로드가 끝난 번들에 유효기간을 마련하는 경우는 그 시간 (0 또는 캐쉬 포함 시각부터의 정의 밀리 세컨드 오프셋(offset)), 유효기간 제어를 무효로 하는 경우는 TTL_NO_EXPIRATION_CONTROL , 캐쉬를 무효로 하는 경우는 TTL_DONT_CACHE
예외:
NullPointerException - baseName 또는 localenull 의 경우

needsReload

public boolean needsReload(String  baseName,
                           Locale  locale,
                           String  format,
                           ClassLoader  loader,
                           ResourceBundle  bundle,
                           long loadTime)
캐쉬내에서 유효기간이 끊어진 bundle 를 재로드할 필요가 있을지 어떨지를,loadTime 로 지정된 로드 시각이나 그 외의 몇개의 조건에 근거해 판정합니다. 이 메소드는, 재로드가 필요한 경우는 true 를 돌려주어, 그 이외의 경우는 false 를 돌려줍니다. loadTime 는,Calendar 의 신기원으로부터의 밀리 세컨드 오프셋(offset)입니다. 호출원의 ResourceBundle.getBundle 팩토리 메소드는, 이 자원 번들을 최초로 로드한 호출로 사용되고 있던 ResourceBundle.Control 인스턴스는 아니고, 현재의 호출로 사용되고 있는 인스턴스상에서, 이 메소드를 호출합니다.

디폴트 구현은, 자원 번들의 loadTime 와 그 소스 데이터가 마지막에 변경된 시각을 비교합니다. loadTime 이후에 소스 데이터가 변경되었던 것이 판명되었을 경우에는,true 가 돌려주어집니다. 그 이외의 경우는 false 가 돌려주어집니다. 이 구현은, 지정된 format 가 디폴트의 형식 「java.class」,「java.properties」의 머지않아도 아닌 경우, 그 형식이 파일접미사(suffix)과 같은 캐릭터 라인이라고 가정합니다.

파라미터:
baseName - 자원 번들의 기저 번들명. 완전 지정 클래스명
locale - 자원 번들의 인스턴스화 대상이 되는 로케일
format - 로드 되는 자원 번들의 형식
loader - 번들을 로드하기 위한 ClassLoader
bundle - 캐쉬내에서 유효기간이 끊어진 자원 번들 인스턴스
loadTime - bundle 가 로드 되어 캐쉬내에 포함되었을 때 각
반환값:
유효기간이 끊어진 번들을 재로드할 필요가 있는 경우는 true, 그 이외의 경우는 false
예외:
NullPointerException - baseName,locale,format,loader, 또는 bundlenull 의 경우

toBundleName

public String  toBundleName(String  baseName,
                           Locale  locale)
지정된 baseNamelocale 를 번들명으로 변환합니다. 이 메소드는,newBundleneedsReload 메소드의 디폴트 구현으로부터 불려 갑니다.

이 구현은 다음의 값을 돌려줍니다.

     baseName + "_" + language + "_" + country + "_" + variant
 
여기서,language,country,variant 는 각각,locale 의 언어, 나라, 변형의 값이 됩니다. 마지막 요소의 값이 빈 상태(empty)의 String 인 경우, 그 값과 직전의 「_」은 생략 됩니다. 모든 값이 빈 상태(empty)의 캐릭터 라인인 경우에는,baseName 가 돌려주어집니다.

예를 들어,baseName「baseName」,localeLocale("ja",  "",  "XX") 의 경우는,「baseName_ja_ _XX」」이 돌려주어집니다. 지정된 로케일이 Locale("en") 의 경우는,「baseName_en」가 돌려주어집니다.

이 메소드를 오버라이드(override) 하면, 로컬라이즈가 끝난 자원의 구성이나 패키지화에 관한 다른 규약을 어플리케이션으로 사용할 수 있습니다.

파라미터:
baseName - 자원 번들의 기저명. 완전 지정 클래스명
locale - 자원 번들의 로드 대상이 되는 로케일
반환값:
자원 번들의 번들명
예외:
NullPointerException - baseName 또는 localenull 의 경우

toResourceName

public final String  toResourceName(String  bundleName,
                                   String  suffix)
지정된 bundleName 을,ClassLoader.getResource 메소드가 요구하는 형식으로 변환합니다. 구체적으로는,bundleName 내의 모든「.」(을)를「/」에 옮겨놓아 그 말미에「.」(와)과 지정된 파일 suffix 를 추가합니다. 예를 들어,bundleName「foo.bar.MyResources_ja_JP」,suffix「properties」의 경우,「foo/bar/MyResources_ja_JP.properties」가 돌려주어집니다.

파라미터:
bundleName - 번들명
suffix - 파일 타입접미사(suffix)
반환값:
변환 후의 자원명
예외:
NullPointerException - bundleName 또는 suffixnull 의 경우

JavaTM Platform
Standard Ed. 6

버그의 보고와 기능의 요청
한층 더 자세한 API 레퍼런스 및 개발자 문서에 대해서는,Java SE 개발자용 문서를 참조해 주세요. 개발자전용의 상세한 해설, 개념의 개요, 용어의 정의, 버그의 회피책, 및 코드 실례가 포함되어 있습니다.

Copyright 2006 Sun Microsystems, Inc. All rights reserved. Use is subject to license terms . Documentation Redistribution Policy 도 참조해 주세요.