kr.co.hit.live.resources.impl
Class ResourceBundleResources

java.lang.Object
  extended by kr.co.hit.live.resources.impl.ResourcesBase
      extended by kr.co.hit.live.resources.impl.ResourceBundleResources
All Implemented Interfaces:
Serializable, Resources

public class ResourceBundleResources
extends ResourcesBase

공통된 베이스 네임을 공유하는 java.util.ResourceBundle 인스턴스의 집합 (로케일당 하나)을 래핑하는 Resources의 구현 클래스이다. 모든 리소스 getter 메소드 구현시 timeZone 인자는 무시된다.

Since:
3.0
Version:
$Revision: 1.1 $ $Date: 2006/09/26 08:20:08 $
Author:
김광영
See Also:
Serialized Form

Field Summary
protected  Map<ClassLoader,Map<Locale,ResourceBundle>> bundles
           해당 Resources에 의해 이전에 사용된적이 있는 ResourceBundle 인스턴스의 2레벨 캐쉬. 1 레벨 키는 번들을 로드하기 위해 사용된 ClassLoader 인스턴스이다. 1 레벨 값(value)은 특정 번들에 속하는 java.util.Locale에 의해 key되는 java.util.Map이다.
 
Fields inherited from class kr.co.hit.live.resources.impl.ResourcesBase
LIVE_RESOURCES_KEY_PREFIX
 
Fields inherited from interface kr.co.hit.live.resources.Resources
LAST_MODIFIED_KEY
 
Constructor Summary
ResourceBundleResources(String name, String base)
           명시된 논리명과 번들 베이스 네임(bundle base name)을 기반으로 새로운 Resources인스턴스를 생성한다.
 
Method Summary
 void destroy()
           리소스 관리자가 더 이상 리소스가 필요하지 않다고 판단하는 경우에 호출되는 메소드이다.
protected  ResourceBundle getBundle(Locale locale, TimeZone timeZone)
           명시된 localetimeZone 파라미터에 대응하는 적절한 ResourceBundle 인스턴스를 리턴한다.
 byte[] getBytes(String key, Locale locale, TimeZone timeZone)
           명시된 key에 대한 내용을 바이트 배열 형식으로 리턴한다.
protected  ClassLoader getClassLoader()
           현재 매핑된 ResourceBundle 인스턴스에 대한 ClassLoader를 리턴한다.
 InputStream getInputStream(String key, Locale locale, TimeZone timeZone)
           명시된 key에 대한 컨텐트를 입력 스트림 형태로 리턴한다.
 Iterator<Object> getKeys()
           리소스 번들에 포함되는 Key의 집합을 Iterator 형태로 리턴한다.
 Object getObject(String key, Locale locale, TimeZone timeZone)
           명시된 key에 대한 컨텐트를 오브젝트 형태로 리턴한다.
 Reader getReader(String key, Locale locale, TimeZone timeZone)
           명시된 key에 대한 컨텐트를 리더(Reader) 형태로 리턴한다.
 String getString(String key, Locale locale, TimeZone timeZone)
           명시된 key에 대한 컨텐트를 문자열 형태로 리턴한다.
 void init()
           init() 메소드는 해당 Resources인스턴스의 데이터 컨텐트를 초기화시킨다.
 long lastModified()
           
 long lastModified(Locale locale)
          해당 리소스가 마지막에 수정된 시간을 반환한다.
 
Methods inherited from class kr.co.hit.live.resources.impl.ResourcesBase
getBase, getName, isReturnNull, setReturnNull
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

bundles

protected Map<ClassLoader,Map<Locale,ResourceBundle>> bundles

해당 Resources에 의해 이전에 사용된적이 있는 ResourceBundle 인스턴스의 2레벨 캐쉬. 1 레벨 키는 번들을 로드하기 위해 사용된 ClassLoader 인스턴스이다. 1 레벨 값(value)은 특정 번들에 속하는 java.util.Locale에 의해 key되는 java.util.Map이다.

Constructor Detail

ResourceBundleResources

public ResourceBundleResources(String name,
                               String base)

명시된 논리명과 번들 베이스 네임(bundle base name)을 기반으로 새로운 Resources인스턴스를 생성한다.

Parameters:
name - 새로운 인스턴스의 논리명
base - 래핑되는 ResourceBundle인스턴스의 Fully-qualified base name
Method Detail

init

public void init()
          throws ResourcesException

init() 메소드는 해당 Resources인스턴스의 데이터 컨텐트를 초기화시킨다. 이 메소드는 getXxx()를 호출하기 전에 호출되어야 한다.

Specified by:
init in interface Resources
Overrides:
init in class ResourcesBase
Throws:
ResourcesException - 초기화시에 에러가 발생하는 경우

destroy

public void destroy()
             throws ResourcesException

리소스 관리자가 더 이상 리소스가 필요하지 않다고 판단하는 경우에 호출되는 메소드이다. 이 메소드가 호출된 이후에는 더 이상 getXxx() 메소드를 호출 하지 않는다.

Specified by:
destroy in interface Resources
Overrides:
destroy in class ResourcesBase
Throws:
ResourcesException - finalization시 에러가 발생하는 경우

getKeys

public Iterator<Object> getKeys()

리소스 번들에 포함되는 Key의 집합을 Iterator 형태로 리턴한다.

Specified by:
getKeys in interface Resources
Specified by:
getKeys in class ResourcesBase
Returns:
Iterator형태의 Key의 집합

getBytes

public byte[] getBytes(String key,
                       Locale locale,
                       TimeZone timeZone)
                throws ResourcesException

명시된 key에 대한 내용을 바이트 배열 형식으로 리턴한다. 리턴되는 내용은 명시된 locale과/혹은 timeZone을 기반으로 로컬화된다.

Specified by:
getBytes in interface Resources
Overrides:
getBytes in class ResourcesBase
Parameters:
key - 요청된 컨텐트에 대한 식별자
locale - 조회 내용을 로컬화 하기 위해 필요한 로케일. 디폴트 로케일로 지정하는 경우에는 null
timeZone - 조회 내용을 로컬화 하기 위해 필요한 타임존, 디폴트 타임존으로 지정하는 경우에는 null
Throws:
ResourcesException - 요청한 컨텐트를 조회하거나 리턴할때 에러가 발생하는 경우
ResourcesKeyException - 명시된 키에 해당하는 값이 존재하지않고, isReturnNull()false를 리턴하는 경우

getInputStream

public InputStream getInputStream(String key,
                                  Locale locale,
                                  TimeZone timeZone)

명시된 key에 대한 컨텐트를 입력 스트림 형태로 리턴한다. 리턴되는 컨텐트는 명시된 locale과/혹은 timeZone을 기반으로 로컬화된다.

Specified by:
getInputStream in interface Resources
Overrides:
getInputStream in class ResourcesBase
Parameters:
key - 요청한 컨텐트에 대한 식별자
locale - 조회를 로컬화하기 위한 로케일, 디폴트 로케일로 지정할 경우 null
timeZone - 조회를 로컬화하기 위한 타임존, 디폴트 타임존으로 지정할 경우 null
Throws:
ResourcesException - 요청한 컨텐트를 검색하거나 리턴할때 에러가 발생하는 경우
ResourcesKeyException - 명시된 키에 해당하는 값이 존재하지 않고 isReturnNull()false인 경우

getObject

public Object getObject(String key,
                        Locale locale,
                        TimeZone timeZone)

명시된 key에 대한 컨텐트를 오브젝트 형태로 리턴한다. 리턴되는 컨텐트는 명시된 locale과/혹은 timeZone을 기반으로 로컬화된다.

Specified by:
getObject in interface Resources
Specified by:
getObject in class ResourcesBase
Parameters:
key - 요청한 컨텐트에 대한 식별자
locale - 조회를 로컬화하기 위한 로케일, 디폴트 로케일로 지정할 경우 null
timeZone - 조회를 로컬화하기 위한 타임존, 디폴트 타임존으로 지정할 경우 null
Throws:
ResourcesException - 요청한 컨텐트를 검색하거나 리턴할때 에러가 발생하는 경우
ResourcesKeyException - 명시된 키에 해당하는 값이 존재하지 않고 isReturnNull()false인 경우

getReader

public Reader getReader(String key,
                        Locale locale,
                        TimeZone timeZone)

명시된 key에 대한 컨텐트를 리더(Reader) 형태로 리턴한다. 리턴되는 컨텐트는 명시된 locale과/혹은 timeZone을 기반으로 로컬화된다.

Specified by:
getReader in interface Resources
Overrides:
getReader in class ResourcesBase
Parameters:
key - 요청한 컨텐트에 대한 식별자
locale - 조회를 로컬화하기 위한 로케일, 디폴트 로케일로 지정할 경우 null
timeZone - 조회를 로컬화하기 위한 타임존, 디폴트 타임존으로 지정할 경우 null
Throws:
ResourcesException - 요청한 컨텐트를 검색하거나 리턴할때 에러가 발생하는 경우
ResourcesKeyException - 명시된 키에 해당하는 값이 존재하지 않고 isReturnNull()false인 경우

getString

public String getString(String key,
                        Locale locale,
                        TimeZone timeZone)

명시된 key에 대한 컨텐트를 문자열 형태로 리턴한다. 리턴되는 컨텐트는 명시된 locale과/혹은 timeZone을 기반으로 로컬화된다.

Specified by:
getString in interface Resources
Overrides:
getString in class ResourcesBase
Parameters:
key - 요청한 컨텐트에 대한 식별자
locale - 조회를 로컬화하기 위한 로케일, 디폴트 로케일로 지정할 경우 null
timeZone - 조회를 로컬화하기 위한 타임존, 디폴트 타임존으로 지정할 경우 null
Throws:
ResourcesException - 요청한 컨텐트를 검색하거나 리턴할때 에러가 발생하는 경우
ResourcesKeyException - 명시된 키에 해당하는 값이 존재하지 않고 isReturnNull()false인 경우

lastModified

public long lastModified(Locale locale)
Description copied from interface: Resources
해당 리소스가 마지막에 수정된 시간을 반환한다.

Returns:

lastModified

public long lastModified()

getBundle

protected ResourceBundle getBundle(Locale locale,
                                   TimeZone timeZone)
                            throws MissingResourceException

명시된 localetimeZone 파라미터에 대응하는 적절한 ResourceBundle 인스턴스를 리턴한다. 처음에 특정 번들이 요청되고난 후, 계속해서 발생하는 요청을 빠르게 처리하기 위해서 해당 번들을 캐슁한다.

이 메소드에 대한 디폴트 구현에서는 무조건 timeZone 인자를 무시한다.

Parameters:
locale - 조회를 로컬화하기 위한 로케일, 디폴트 로케일로 지정할 경우 null
timeZone - 조회를 로컬화하기 위한 타임존, 디폴트 타임존으로 지정할 경우 null
Throws:
MissingResourceException - 요청한 Resourcebundle를 획득할 수 없는 경우

getClassLoader

protected ClassLoader getClassLoader()

현재 매핑된 ResourceBundle 인스턴스에 대한 ClassLoader를 리턴한다.

Returns:
현재 ResourceBundle 인스턴스에 대한 ClassLoader


Copyright © 2014. All Rights Reserved.