|
JavaTM Platform Standard Ed. 6 |
|||||||||
전의 클래스 다음의 클래스 | 프레임 있어 프레임 없음 | |||||||||
개요: 상자 | 필드 | 생성자 | 메소드 | 상세 : 필드 | 생성자 | 메소드 |
java.lang.Objectjava.util.prefs.Preferences
public abstract class Preferences
설정 데이터의 계층적인 집합안의 1 개의 노드입니다. 이 클래스를 사용해, 어플리케이션으로부터 사용자 및 시스템의 설정 데이터와 구성 데이터를 포함 및 취득할 수 있습니다. 이 데이터는, 구현 마다 다른 배킹 스토어에 지속적으로 보존됩니다. 예를 들어, 플랫 파일, OS 고유의 레지스트리, 디렉토리 서버, SQL 데이타베이스등의 배킹 스토어에 포함됩니다. 이 클래스를 사용할 경우에, 배킹 스토어의 상세를 파악하고 있을 필요는 없습니다.
설정 노드는 2 개의 개별의 트리로 구성됩니다. 한편은 사용자 설정용, 이제(벌써) 한편은 시스템 설정용입니다. 각각의 사용자는 개개의 사용자 설정 트리를 가져, 그 시스템의 모든 사용자는 시스템 설계 트리를 가집니다. 사용자 설정 트리와 시스템 설정 트리의 정의는, 구현 마다 다릅니다. 사용자 설정 트리에는, 폰트 선택, 칼라 선택, 특정의 어플리케이션으로 설정한 윈도우 위치나 사이즈등이 포함됩니다. 시스템 설정 트리에는, 어플리케이션의 인스톨 구성 데이터등이 포함됩니다.
설정 트리내의 노드에는, 계층 파일 시스템의 디렉토리와 같은 방법으로 이름을 붙일 수 있습니다. 설정 트리의 각 노드에는, 「노드명 (일의일 필요는 없다)」, 일의의 「절대 경로명」, 및 각 상위 노드 (그 노드 자체를 포함한다)를 기점으로 한 상대 경로명을 할당할 수 있습니다.
루트 노드의 노드명은, 빈 상태(empty)의 캐릭터 라인 ("")입니다. 다른 노드의 이름은, 작성시에 임의로 지정할 수 있습니다. 노드명에는 임의의 문자를 사용할 수 있습니다만, 빈 상태(empty)의 캐릭터 라인은 지정하지 못하고, slash 문자 ('/')는 사용할 수 없습니다.
루트 노드의 절대 경로명은,"/" 입니다. 루트 노드의 아이의 절대 경로명은,"/" + <노드명 > 가 됩니다. 그 외의 노드의 절대 경로명은, <부모의 절대 경로명 > + "/" + <노드명 > 가 됩니다. 절대 경로명은, 항상 slash 문자로부터 시작됩니다.
노드 n 의 상대 경로명은, 상위 노드 a 를 기점으로 했을 경우,n 의 절대 경로명을 작성할 경우에 a 의 절대 경로명에 추가되는 캐릭터 라인이 됩니다. 선두에 slash 문자가 있는 경우는, 삭제합니다. 다음의 점에 주의해 주세요.
다음의 점에도 주의해 주세요.
설정 데이터를 변경하는 메소드는 모두, 비동기에게 실행할 수 있습니다. 즉, 실행 후는 즉시 복귀해, 변경은 구현에 의존한 지연이 경과하고 나서 지속 배킹 스토어에 보내집니다. flush 메소드는, 갱신 데이터를 배킹 스토어에 강제적으로 기입해, 동기를 잡을 때 사용합니다. Java 가상 머신이 정상 종료해도, 보류중의 갱신은 없어지지 않습니다. 이 때문에, 종료시에 명시적으로 flush 를 호출해, 보류중의 갱신을 보관 유지할 필요는 없습니다.
Preferences 객체로부터 설정을 읽어들일 때는, 디폴트 값를 지정해 메소드를 호출할 필요가 있습니다. 읽어들이기 전에 값이 설정되어 있지 않았던 경우 또는 배킹 스토어를 이용할 수 없는 경우는, 그 디폴트 값가 돌려주어집니다. 이것은, 배킹 스토어를 이용할 수 없게 되었을 경우에서도, 어플리케이션을 동작할 수 있도록(듯이) 하기 (위해)때문에입니다 (다만, 기능이 조금 저하한다). 일부의 메소드 (flush 등)의 시멘틱스에서는, 배킹 스토어를 이용할 수 없는 경우에 어플리케이션이 동작하지 않게 됩니다. 일반적으로의 어플리케이션에서는, 이러한 메소드를 호출할 필요가 없습니다. 이러한 메소드는,BackingStoreException
의 throw를 선언하고 있는 어플리케이션으로 사용합니다.
이 클래스의 메소드는, 1 개의 JVM 의 복수의 thread로부터 병행해 호출할 수가 있습니다. 이 때, 외부적으로 동기화할 필요는 없습니다. 실행 결과는, 순서대로 실행했을 경우와 등가입니다. 복수의 JVM 로 이 클래스를 병행해 사용해, 같은 배킹 스토어로 설정 데이터를 포함했을 경우, 데이터 스토어는 파괴됩니다만, 설정 데이터의 무결성은 보증되지 않습니다.
이 클래스에는, export/임포트 기능이 있어, 설정을 XML 문서에 「export」하거나 설정이 기술된 XML 문서를 시스템에 「임포트」할 수가 있습니다. 이 기능은, 설정 트리의 모두 또는 일부를 백업 해, 그 백업을 복원할 때 사용합니다.
이 XML 문서에서는, 다음의 DOCTYPE 가 선언됩니다.
<! DOCTYPE preferences SYSTEM "http://java.sun.com/dtd/preferences.dtd">설정을 export/임포트 할 경우에, 시스템 URI (http://java.sun.com/dtd/preferences.dtd)에는 액세스 하지 않습니다. 시스템 URI 는, DTD 를 일의에 식별하는 캐릭터 라인으로서 사용됩니다. 그 내용은 다음과 같습니다.
<? xml version="1.0" encoding="UTF-8"? > <! -- DTD for a Preferences tree. -- --> <! -- The preferences element is at the root of an XML document representing a Preferences tree. --> <! ELEMENT preferences (root) > <! -- The preferences element contains an optional version attribute, which specifies version of DTD. --> <! ATTLIST preferences EXTERNAL_XML_VERSION CDATA "0.0" > <! -- The root element has a map representing the root's preferences (if any), and one node for each child of the root (if any). --> <! ELEMENT root (map, node*) > <! -- Additionally, the root contains a type attribute, which specifies whether it's the system or user root. --> <! ATTLIST root type (system|user) #REQUIRED > <! -- Each node has a map representing its preferences (if any), and one node for each child (if any). --> <! ELEMENT node (map, node*) > <! -- Additionally, each node has a name attribute --> <! ATTLIST node name CDATA #REQUIRED > <! -- A map represents the preferences stored at a node (if any). --> <! ELEMENT map (entry*) > <! -- An entry represents a single preference, which is simply a key-value pair. --> <! ELEMENT entry EMPTY > <! ATTLIST entry key CDATA #REQUIRED value CDATA #REQUIRED >각 Preferences 구현에는,
PreferencesFactory
구현을 관련지을 필요가 있습니다. 루트 설정 노드를 생성할 경우에 PreferencesFactory 구현을 지정하려면 , Java(TM) SE 구현에 그방법을 설정할 필요가 있습니다. 이것에 의해, 관리자는 디폴트의 preferences 구현을 대체 구현에 옮겨놓을 수가 있습니다.
구현상의 주의 :Sun 의 JRE 에서는,PreferencesFactory 의 구현은 다음과 같이 실시됩니다.
시스템 프로퍼티 java.util.prefs.PreferencesFactory 가 정의되고 있는 경우, 이것이 클래스를 구현하는 PreferencesFactory 인터페이스의 완전 수식명으로 보여집니다. 그 후, 클래스가 로드 되어 인스턴스가 작성됩니다.
시스템 클래스 로더
의 인식하는 jar 파일에 PreferencesFactory 구현 클래스 파일이 인스톨 되고 있어, 이 jar 파일에 자원 디렉토리 META-INF/services 내의 프로바이더 구성 파일 java.util.prefs.PreferencesFactory 가 포함되어 있는 경우, 이 파일로 지정되고 있는 최초의 클래스명이 사용됩니다. 이러한 jar 파일이 2 개 이상 지정되었을 경우는, 최초로 검출된 파일이 사용됩니다. 그 후, 클래스가 로드 되어 인스턴스가 작성됩니다.
이 처리에 실패했을 경우는, 상세 불명 에러가 throw 됩니다. 마지막으로, 전술의 시스템 프로퍼티과 확장 jar 파일의 어느쪽이나 지정되어 있지 않은 경우는, 그 때 사용되고 있는 플랫폼에 대해서 시스템 와이드의 디폴트인 PreferencesFactory 구현이 로드 되어 인스턴스가 작성됩니다.
필드의 개요 | |
---|---|
static int |
MAX_KEY_LENGTH
키로서 사용할 수 있는 캐릭터 라인의 최대 길이 (80 문자)입니다. |
static int |
MAX_NAME_LENGTH
노드명의 최대 길이 (80 문자)입니다. |
static int |
MAX_VALUE_LENGTH
값으로 해서 사용할 수 있는 캐릭터 라인의 최대 길이 (8192 문자)입니다. |
생성자 의 개요 | |
---|---|
protected |
Preferences ()
유일한 생성자 입니다. |
메소드의 개요 | |
---|---|
abstract String |
absolutePath ()
이 설정 노드의 절대 경로명을 돌려줍니다. |
abstract void |
addNodeChangeListener (NodeChangeListener ncl)
지정된 청취자가 이 노드의 「노드 변경 이벤트」를 수신하도록(듯이) 등록합니다. |
abstract void |
addPreferenceChangeListener (PreferenceChangeListener pcl)
지정된 청취자가 이 설정 노드에 대한 「설정 변경 이벤트」를 수신하도록(듯이) 등록합니다. |
abstract String [] |
childrenNames ()
이 설정 노드의 아이의 이름 (이 노드를 기점으로 한 상대명)을 돌려줍니다. |
abstract void |
clear ()
이 설정 노드내의 설정 (키와 값의 페어가 관련짓고)을 모두 삭제합니다. |
abstract void |
exportNode (OutputStream os)
이 노드 (그 하위 노드는 포함하지 않는다)에 포함할 수 있어 모든 설정을 나타내는 XML 문서를, 지정된 출력 스트림에 발행합니다. |
abstract void |
exportSubtree (OutputStream os)
이 노드와 그 모든 하위 노드에 포함되는 모든 설정을 나타내는 XML 문서를 발행합니다. |
abstract void |
flush ()
이 설정 노드와 그 하위 노드의 내용에 대한 모든 변경을, 지속 스토어에 강제적으로 포함합니다. |
abstract String |
get (String key,
String def)
이 설정 노드내의 지정된 키에 관련지을 수 있었던 값을 돌려줍니다. |
abstract boolean |
getBoolean (String key,
boolean def)
이 설정 노드내의 지정된 키에 관련지을 수 있었던 캐릭터 라인이 나타내는 boolean 치를 돌려줍니다. |
abstract byte[] |
getByteArray (String key,
byte[] def)
이 설정 노드내의 지정된 키에 관련지을 수 있었던 캐릭터 라인이 나타내는 byte 배열치를 돌려줍니다. |
abstract double |
getDouble (String key,
double def)
이 설정 노드내의 지정된 키에 관련지을 수 있었던 캐릭터 라인이 나타내는 double 치를 돌려줍니다. |
abstract float |
getFloat (String key,
float def)
이 설정 노드내의 지정된 키에 관련지을 수 있었던 캐릭터 라인이 나타내는 float 치를 돌려줍니다. |
abstract int |
getInt (String key,
int def)
이 설정 노드내의 지정된 키에 관련지을 수 있었던 캐릭터 라인이 나타내는 int 치를 돌려줍니다. |
abstract long |
getLong (String key,
long def)
이 설정 노드내의 지정된 키에 관련지을 수 있었던 캐릭터 라인이 나타내는 long 치를 돌려줍니다. |
static void |
importPreferences (InputStream is)
XML 문서에 의해 나타내지는 모든 설정을, 지정된 입력 스트림로부터 임포트 합니다. |
abstract boolean |
isUserNode ()
이 설정 노드가 사용자 설정 트리에 있는 경우는,true 를 돌려줍니다. |
abstract String [] |
keys ()
이 설정 노드내에 관련지을 수 있었던 값을 가지는 키를 모두 돌려줍니다. |
abstract String |
name ()
이 설정 노드의 이름 (그 부모를 기점으로 한 상대명)을 돌려줍니다. |
abstract Preferences |
node (String pathName)
이 노드와 같은 트리에 있는 이름 첨부 설정 노드를 돌려줍니다. |
abstract boolean |
nodeExists (String pathName)
이름 첨부 설정 노드가 이 노드와 같은 트리에 존재하는 경우는, true 를 돌려줍니다. |
abstract Preferences |
parent ()
이 설정 노드의 부모를 돌려주어, 이 노드가 루트의 경우는 null 를 돌려줍니다. |
abstract void |
put (String key,
String value)
이 설정 노드로 지정된 키에, 지정된 값을 관련짓습니다. |
abstract void |
putBoolean (String key,
boolean value)
이 설정 노드내의 지정된 키에, 지정된 boolean 치를 나타내는 캐릭터 라인을 관련짓습니다. |
abstract void |
putByteArray (String key,
byte[] value)
이 설정 노드내의 지정된 키에, 지정된 byte 배열을 나타내는 캐릭터 라인을 관련짓습니다. |
abstract void |
putDouble (String key,
double value)
이 설정 노드내의 지정된 키에, 지정된 double 치를 나타내는 캐릭터 라인을 관련짓습니다. |
abstract void |
putFloat (String key,
float value)
이 설정 노드내의 지정된 키에, 지정된 float 치를 나타내는 캐릭터 라인을 관련짓습니다. |
abstract void |
putInt (String key,
int value)
이 설정 노드내의 지정된 키에, 지정된 int 치를 나타내는 캐릭터 라인을 관련짓습니다. |
abstract void |
putLong (String key,
long value)
이 설정 노드내의 지정된 키에, 지정된 long 치를 나타내는 캐릭터 라인을 관련짓습니다. |
abstract void |
remove (String key)
이 설정 노드내의 지정된 키에 관련지을 수 있었던 값이 있는 경우는, 그것을 삭제합니다. |
abstract void |
removeNode ()
이 설정 노드와 그 하위 노드를 모두 삭제해, 삭제한 노드에 포함되어 있는 설정을 모두 무효로 합니다. |
abstract void |
removeNodeChangeListener (NodeChangeListener ncl)
지정된 NodeChangeListener 를 삭제해, 이벤트의 수신을 정지합니다. |
abstract void |
removePreferenceChangeListener (PreferenceChangeListener pcl)
지정된 설정 변경 청취자를 삭제해, 설정 변경 이벤트의 수신을 정지합니다. |
abstract void |
sync ()
sync 를 호출하면(자), 최초로, VM 로부터 지속 스토어에 포함된 변경이 이 설정 노드와 그 하위 노드에 모두 반영됩니다. |
static Preferences |
systemNodeForPackage (Class <? > c)
시스템 설정 트리로부터 설정 노드를 돌려줍니다. |
static Preferences |
systemRoot ()
시스템의 루트 설정 노드를 돌려줍니다. |
abstract String |
toString ()
이 설정 노드의 캐릭터 라인 표현을 돌려줍니다. |
static Preferences |
userNodeForPackage (Class <? > c)
호출측 사용자의 설정 트리로부터 설정 노드를 돌려줍니다. |
static Preferences |
userRoot ()
호출측 사용자 루트 설정 노드를 돌려줍니다. |
클래스 java.lang. Object 로부터 상속된 메소드 |
---|
clone , equals , finalize , getClass , hashCode , notify , notifyAll , wait , wait , wait |
필드의 상세 |
---|
public static final int MAX_KEY_LENGTH
public static final int MAX_VALUE_LENGTH
public static final int MAX_NAME_LENGTH
생성자 의 상세 |
---|
protected Preferences()
메소드의 상세 |
---|
public static Preferences userNodeForPackage(Class <? > c)
이 규칙은, 이름 없음의 패키지에는 적용되지 않습니다. 이름 없음의 패키지에 관련지을 수 있었던 설정 노드는,<unnamed> 가 됩니다. 이 노드는, 장기간의 사용에는 적합하지 않습니다만, 패키지에 아직 속하지 않은 개발 초기 단계의 프로그램이나 일회용의 프로그램으로 사용할 수 있습니다. 다만, 중요한 데이터는 이 노드에 포함하지 말아 주세요. 이 노드를 사용하는 모든 프로그램이 데이터를 공유하기 (위해)때문에입니다.
Foo 클래스를 사용해 이름 없음의 패키지에 관한 설정에 액세스 하려면 , 다음의 방법으로 설정 노드를 가져옵니다.
static Preferences prefs = Preferences.userNodeForPackage(Foo.class);이 관용어를 사용하면, 캐릭터 라인을 사용해 설정 노드를 기술할 필요가 없어지기 (위해)때문에, 실행시에 에러가 발생할 가능성이 줄어듭니다. (클래스명의 철을 틀렸을 경우는 일반적으로, 컴파일시에 에러가 발생한다. )
이 메소드를 호출했을 때에, 반환되는 노드와 게다가 위노드가 존재하지 않았던 경우는, 그러한 노드가 작성됩니다. 반환되는 노드가 이 호출 이전에 존재하지 않았던 경우, 이 호출에 의해 작성된 노드와 게다가 위노드는, 반환되는 노드 (혹은 게다가 위노드 또는 하위 노드) 상에서 flush 메소드가 불려 갔을 때에, 지속적이 됩니다.
c
- 사용자 설정 노드를 필요로 하는 패키지의 클래스
NullPointerException
- c 가 null 의 경우
SecurityException
- 시큐리티 매니저가 존재해, 그것이 RuntimePermission("preferences") 를 거부했을 경우RuntimePermission
public static Preferences systemNodeForPackage(Class <? > c)
이 규칙은, 이름 없음의 패키지에는 적용되지 않습니다. 이름 없음의 패키지에 관련지을 수 있었던 설정 노드는,<unnamed> 가 됩니다. 이 노드는, 장기간의 사용에는 적합하지 않습니다만, 패키지에 아직 속하지 않은 개발 초기 단계의 프로그램이나 일회용의 프로그램으로 사용할 수 있습니다. 다만, 중요한 데이터는 이 노드에 포함하지 말아 주세요. 이 노드를 사용하는 모든 프로그램이 데이터를 공유하기 (위해)때문에입니다.
Foo 클래스를 사용해 이름 없음의 패키지에 관한 설정에 액세스 하려면 , 다음의 방법으로 설정 노드를 가져옵니다.
static Preferences prefs = Preferences.systemNodeForPackage(Foo.class);이 관용어를 사용하면, 캐릭터 라인을 사용해 설정 노드를 기술할 필요가 없어지기 (위해)때문에, 실행시에 에러가 발생할 가능성이 줄어듭니다. (클래스명의 철을 틀렸을 경우는 일반적으로, 컴파일시에 에러가 발생한다. )
이 메소드를 호출했을 때에, 반환되는 노드와 게다가 위노드가 존재하지 않았던 경우는, 그러한 노드가 작성됩니다. 반환되는 노드가 이 호출 이전에 존재하지 않았던 경우, 이 호출에 의해 작성된 노드와 게다가 위노드는, 반환되는 노드 (혹은 게다가 위노드 또는 하위 노드) 상에서 flush 메소드가 불려 갔을 때에, 지속적이 됩니다.
c
- 시스템 설정 노드를 필요로 하는 패키지의 클래스
NullPointerException
- c 가 null 의 경우
SecurityException
- 시큐리티 매니저가 존재해, 그것이 RuntimePermission("preferences") 를 거부했을 경우RuntimePermission
public static Preferences userRoot()
SecurityException
- 시큐리티 매니저가 존재해, 그것이 RuntimePermission("preferences") 를 거부했을 경우RuntimePermission
public static Preferences systemRoot()
SecurityException
- 시큐리티 매니저가 존재해, 그것이 RuntimePermission("preferences") 를 거부했을 경우RuntimePermission
public abstract void put(String key, String value)
key
- 지정된 값을 관련지을 수 있는 키value
- 지정된 키에 관련지을 수 있는 값
NullPointerException
- 키 또는 값이 null 의 경우
IllegalArgumentException
- key.length() 가 MAX_KEY_LENGTH 를 넘는 경우, 또는 value.length 가 MAX_VALUE_LENGTH 를 넘는 경우
IllegalStateException
- 이 노드 (또는 상위 노드)가 removeNode()
메소드에 의해 삭제되었을 경우public abstract String get(String key, String def)
일부의 구현은, 디폴트 값를 그 배킹 스토어에 포함합니다. 지정된 키에 관련지을 수 있었던 값이 없는 경우에서도, 「포함이 끝난 디폴트」가 있는 경우는, 지정된 디폴트에 우선해 포함이 끝난 디폴트가 돌려주어집니다.
key
- 관련지을 수 있었던 값이 반환되는 키def
- 이 설정 노드를 key 에 관련지을 수 있었던 값을 가지지 않는 경우에 돌려주어야 할 값
IllegalStateException
- 이 노드 (또는 상위 노드)가 removeNode()
메소드에 의해 삭제되었을 경우
NullPointerException
- key 가 null 의 경우 (def 에는 null 치를 지정할 수 있다. )public abstract void remove(String key)
이 구현이 「포함이 끝난 디폴트」를 지원하고 있어, 지정된 설정에 포함이 끝난 디폴트가 존재하는 경우는, 이 호출에 의해 포함이 끝난 디폴트가 사용되게 됩니다. 즉, 후속의 get 호출에서는 포함이 끝난 디폴트가 돌려주어집니다.
key
- 매핑이 설정 노드로부터 삭제되는 키
NullPointerException
- key 가 null 의 경우
IllegalStateException
- 이 노드 (또는 상위 노드)가 removeNode()
메소드에 의해 삭제되었을 경우public abstract void clear() throws BackingStoreException
이 구현이 「포함이 끝난 디폴트」를 지원하고 있어, 설정 계층내의 이 노드에 포함이 끝난 디폴트가 포함되어 있는 경우는, 이 호출에 의해 포함이 끝난 디폴트가 사용되게 됩니다. 즉, 후속의 get 호출에서는 포함이 끝난 디폴트가 돌려주어집니다.
BackingStoreException
- 배킹 스토어에서 장해가 발생했는지 스토어와의 통신을 실시할 수 없기 위해(때문에), 이 오퍼레이션을 완료할 수 없는 경우
IllegalStateException
- 이 노드 (또는 상위 노드)가 removeNode()
메소드에 의해 삭제되었을 경우removeNode()
public abstract void putInt(String key, int value)
Integer.toString(int)
에게 건네졌을 경우에 반환되는 값입니다. 이 메소드는,getInt(java.lang.String, int)
와 조합해 사용합니다.
key
- 캐릭터 라인 형식의 값을 관련지을 수 있는 키value
- 키에 관련지을 수 있는 캐릭터 라인 형식의 값
NullPointerException
- key 가 null 의 경우
IllegalArgumentException
- key.length() 가 MAX_KEY_LENGTH 를 넘는 경우
IllegalStateException
- 이 노드 (또는 상위 노드)가 removeNode()
메소드에 의해 삭제되었을 경우getInt(String, int)
public abstract int getInt(String key, int def)
Integer.parseInt(String)
에 의해 정수에 변환됩니다. 키에 관련지을 수 있었던 값이 없는 경우, 배킹 스토어를 이용할 수 없는 경우, 또는 관련지을 수 있었던 값이 건네받았을 때에 Integer.parseInt(String) 가 NumberFormatException
를 throw 했을 경우는, 지정된 디폴트를 돌려줍니다. 이 메소드는,putInt(java.lang.String, int)
와 조합해 사용합니다.
이 구현이 「포함이 끝난 디폴트」를 지원해, 포함이 끝난 디폴트가 존재해 액세스 가능하고,Integer.parseInt 에 의해 int 로 변환할 수 있는 경우는, 지정된 디폴트에 우선해 이 int 가 돌려주어집니다.
key
- 관련지을 수 있었던 값이 int 로서 반환되는 키def
- 이 설정 노드를 key 에 관련지을 수 있었던 값을 가지지 않는가, 관련지을 수 있었던 값을 int 로서 해석할 수 없는지, 혹은 배킹 스토어에 액세스 할 수 없는 경우에 돌려주어야 할 값
IllegalStateException
- 이 노드 (또는 상위 노드)가 removeNode()
메소드에 의해 삭제되었을 경우
NullPointerException
- key 가 null 의 경우putInt(String, int)
,
get(String, String)
public abstract void putLong(String key, long value)
Long.toString(long)
에게 건네졌을 경우에 반환되는 값입니다. 이 메소드는,getLong(java.lang.String, long)
와 조합해 사용합니다.
key
- 캐릭터 라인 형식의 값을 관련지을 수 있는 키value
- 키에 관련지을 수 있는 캐릭터 라인 형식의 값
NullPointerException
- key 가 null 의 경우
IllegalArgumentException
- key.length() 가 MAX_KEY_LENGTH 를 넘는 경우
IllegalStateException
- 이 노드 (또는 상위 노드)가 removeNode()
메소드에 의해 삭제되었을 경우getLong(String, long)
public abstract long getLong(String key, long def)
Long.parseLong(String)
에 의해 long 에 변환됩니다. 키에 관련지을 수 있었던 값이 없는 경우, 배킹 스토어를 이용할 수 없는 경우, 또는 관련지을 수 있었던 값이 건네받았을 때에 Long.parseLong(String) 가 NumberFormatException
를 throw 했을 경우는, 지정된 디폴트를 돌려줍니다. 이 메소드는,putLong(java.lang.String, long)
와 조합해 사용합니다.
이 구현이 「포함이 끝난 디폴트」를 지원해, 포함이 끝난 디폴트가 존재해 액세스 가능하고,Long.parseLong 에 의해 long 로 변환할 수 있는 경우는, 지정된 디폴트에 우선해 이 long 가 돌려주어집니다.
key
- 관련지을 수 있었던 값이 long 로서 반환되는 키def
- 이 설정 노드를 key 에 관련지을 수 있었던 값을 가지지 않는가, 관련지을 수 있었던 값을 long 로서 해석할 수 없는지, 혹은 배킹 스토어에 액세스 할 수 없는 경우에 돌려주어야 할 값
IllegalStateException
- 이 노드 (또는 상위 노드)가 removeNode()
메소드에 의해 삭제되었을 경우
NullPointerException
- key 가 null 의 경우putLong(String, long)
,
get(String, String)
public abstract void putBoolean(String key, boolean value)
getBoolean(java.lang.String, boolean)
와 조합해 사용합니다.
key
- 캐릭터 라인 형식의 값을 관련지을 수 있는 키value
- 키에 관련지을 수 있는 캐릭터 라인 형식의 값
NullPointerException
- key 가 null 의 경우
IllegalArgumentException
- key.length() 가 MAX_KEY_LENGTH 를 넘는 경우
IllegalStateException
- 이 노드 (또는 상위 노드)가 removeNode()
메소드에 의해 삭제되었을 경우getBoolean(String, boolean)
,
get(String, String)
public abstract boolean getBoolean(String key, boolean def)
putBoolean(java.lang.String, boolean)
와 조합해 사용합니다.
키에 관련지을 수 있는 값이 없는 경우, 배킹 스토어를 이용할 수 없는 경우, 또는 관련지을 수 있었던 값이 "true" 또는 "false" (대문자와 소문자는 구별되지 않는다) 이외인 경우는, 지정된 디폴트를 돌려줍니다.
이 구현이 「포함이 끝난 디폴트」를 지원해, 포함이 끝난 디폴트가 존재해 액세스 가능하고, 포함이 끝난 디폴트가 "true" 또는 "false" (대문자와 소문자는 구별되지 않는다)인 경우는, 지정된 디폴트에 우선해 사용됩니다. 그렇지 않은 경우는, 지정된 디폴트가 사용됩니다.
key
- 관련지을 수 있었던 값이 boolean 로서 반환되는 키def
- 이 설정 노드를 key 에 관련지을 수 있었던 값을 가지지 않는가, 관련지을 수 있었던 값을 boolean 로서 해석할 수 없는지, 혹은 배킹 스토어에 액세스 할 수 없는 경우에 돌려주어야 할 값
IllegalStateException
- 이 노드 (또는 상위 노드)가 removeNode()
메소드에 의해 삭제되었을 경우
NullPointerException
- key 가 null 의 경우get(String, String)
,
putBoolean(String, boolean)
public abstract void putFloat(String key, float value)
Float.toString(float)
에게 건네졌을 경우에 반환되는 값입니다. 이 메소드는,getFloat(java.lang.String, float)
와 조합해 사용합니다.
key
- 캐릭터 라인 형식의 값을 관련지을 수 있는 키value
- 키에 관련지을 수 있는 캐릭터 라인 형식의 값
NullPointerException
- key 가 null 의 경우
IllegalArgumentException
- key.length() 가 MAX_KEY_LENGTH 를 넘는 경우
IllegalStateException
- 이 노드 (또는 상위 노드)가 removeNode()
메소드에 의해 삭제되었을 경우getFloat(String, float)
public abstract float getFloat(String key, float def)
Float.parseFloat(String)
에 의해 정수에 변환됩니다. 키에 관련지을 수 있었던 값이 없는 경우, 배킹 스토어를 이용할 수 없는 경우, 또는 관련지을 수 있었던 값이 건네받았을 때에 Float.parseFloat(String) 가 NumberFormatException
를 throw 했을 경우는, 지정된 디폴트를 돌려줍니다. 이 메소드는,putFloat(java.lang.String, float)
와 조합해 사용합니다.
이 구현이 「포함이 끝난 디폴트」를 지원해, 포함이 끝난 디폴트가 존재해 액세스 가능하고,Float.parseFloat 에 의해 float 로 변환할 수 있는 경우는, 지정된 디폴트에 우선해 이 float 가 돌려주어집니다.
key
- 관련지을 수 있었던 값이 float 로서 반환되는 키def
- 이 설정 노드를 key 에 관련지을 수 있었던 값을 가지지 않는가, 관련지을 수 있었던 값을 float 로서 해석할 수 없는지, 혹은 배킹 스토어에 액세스 할 수 없는 경우에 돌려주어야 할 값
IllegalStateException
- 이 노드 (또는 상위 노드)가 removeNode()
메소드에 의해 삭제되었을 경우
NullPointerException
- key 가 null 의 경우putFloat(String, float)
,
get(String, String)
public abstract void putDouble(String key, double value)
Double.toString(double)
에게 건네졌을 경우에 반환되는 값입니다. 이 메소드는,getDouble(java.lang.String, double)
와 조합해 사용합니다.
key
- 캐릭터 라인 형식의 값을 관련지을 수 있는 키value
- 키에 관련지을 수 있는 캐릭터 라인 형식의 값
NullPointerException
- key 가 null 의 경우
IllegalArgumentException
- key.length() 가 MAX_KEY_LENGTH 를 넘는 경우
IllegalStateException
- 이 노드 (또는 상위 노드)가 removeNode()
메소드에 의해 삭제되었을 경우getDouble(String, double)
public abstract double getDouble(String key, double def)
Double.parseDouble(String)
에 의해 정수에 변환됩니다. 키에 관련지을 수 있었던 값이 없는 경우, 배킹 스토어를 이용할 수 없는 경우, 또는 관련지을 수 있었던 값이 건네받았을 때에 Double.parseDouble(String) 가 NumberFormatException
를 throw 했을 경우는, 지정된 디폴트를 돌려줍니다. 이 메소드는,putDouble(java.lang.String, double)
와 조합해 사용합니다.
이 구현이 「포함이 끝난 디폴트」를 지원해, 포함이 끝난 디폴트가 존재해 액세스 가능하고,Double.parseDouble 에 의해 double 로 변환할 수 있는 경우는, 지정된 디폴트에 우선해 이 double 가 돌려주어집니다.
key
- 관련지을 수 있었던 값이 double 로서 반환되는 키def
- 이 설정 노드를 key 에 관련지을 수 있었던 값을 가지지 않는가, 관련지을 수 있었던 값을 double 로서 해석할 수 없는지, 혹은 배킹 스토어에 액세스 할 수 없는 경우에 돌려주어야 할 값
IllegalStateException
- 이 노드 (또는 상위 노드)가 removeNode()
메소드에 의해 삭제되었을 경우
NullPointerException
- key 가 null 의 경우putDouble(String, double)
,
get(String, String)
public abstract void putByteArray(String key, byte[] value)
getByteArray(java.lang.String, byte[])
와 조합해 사용합니다.
key
- 캐릭터 라인 형식의 값을 관련지을 수 있는 키value
- 키에 관련지을 수 있는 캐릭터 라인 형식의 값
NullPointerException
- 키 또는 값이 null 의 경우
IllegalArgumentException
- key.length()가 MAX_KEY_LENGTH 를 넘는 경우, 또는 value.length 가 MAX_VALUE_LENGTH*3/4 를 넘는 경우
IllegalStateException
- 이 노드 (또는 상위 노드)가 removeNode()
메소드에 의해 삭제되었을 경우getByteArray(String, byte[])
,
get(String, String)
public abstract byte[] getByteArray(String key, byte[] def)
putByteArray(java.lang.String, byte[])
과 조합해 사용합니다.
키에 관련지을 수 있는 값이 없는 경우, 배킹 스토어를 이용할 수 없는 경우, 또는 관련지을 수 있었던 값이 Base64 로 encode 된 유효한 byte 배열 (위의 정의를 참조)이 아닌 경우는, 지정된 디폴트를 돌려줍니다.
이 구현이 「포함이 끝난 디폴트」를 지원해, 포함이 끝난 디폴트가 존재해 액세스 가능하고, 포함이 끝난 디폴트가 Base64 로 encode 된 유효한 byte 배열 (상기의 정의 대로)인 경우는, 지정된 디폴트에 우선해 사용됩니다. 그렇지 않은 경우는, 지정된 디폴트가 사용됩니다.
key
- 관련지을 수 있었던 값이 byte 배열로서 반환되는 키def
- 이 설정 노드를 key 에 관련지을 수 있었던 값을 가지지 않는가, 관련지을 수 있었던 값을 byte 배열로서 해석할 수 없는지, 혹은 배킹 스토어에 액세스 할 수 없는 경우에 돌려주어야 할 값
IllegalStateException
- 이 노드 (또는 상위 노드)가 removeNode()
메소드에 의해 삭제되었을 경우
NullPointerException
- key 가 null 의 경우 (def 에는 null 치를 지정할 수 있다. )get(String, String)
,
putByteArray(String, byte[])
public abstract String [] keys() throws BackingStoreException
이 구현이 「포함이 끝난 디폴트」를 지원해, 이 노드에 포함이 끝난 디폴트가 있어, 명시적인 설정에 의해 오버라이드(override)되어 있지 않은 경우는, 명시적인 설정과 포함이 끝난 디폴트가 배열에 돌려주어집니다.
BackingStoreException
- 배킹 스토어에서 장해가 발생했는지 스토어와의 통신을 실시할 수 없기 위해(때문에), 이 오퍼레이션을 완료할 수 없는 경우
IllegalStateException
- 이 노드 (또는 상위 노드)가 removeNode()
메소드에 의해 삭제되었을 경우public abstract String [] childrenNames() throws BackingStoreException
BackingStoreException
- 배킹 스토어에서 장해가 발생했는지 스토어와의 통신을 실시할 수 없기 위해(때문에), 이 오퍼레이션을 완료할 수 없는 경우
IllegalStateException
- 이 노드 (또는 상위 노드)가 removeNode()
메소드에 의해 삭제되었을 경우public abstract Preferences parent()
IllegalStateException
- 이 노드 (또는 상위 노드)가 removeNode()
메소드에 의해 삭제되었을 경우public abstract Preferences node(String pathName)
반환되는 노드가 이 호출 이전에 존재하지 않았던 경우, 이 호출에 의해 작성된 노드와 게다가 위노드는, 반환되는 노드 (혹은 게다가 위노드 또는 하위 노드) 상에서 flush 메소드가 불려 갔을 때에, 지속적이 됩니다.
pathName
- 반환되는 설정 노드의 경로명
IllegalArgumentException
- 경로명이 무효인 경우 (즉, 경로명에 연속한 복수의 slash 문자가 포함되어 있는지, 경로명이 slash 문자로 끝나 있어 그 길이가 2 문자 이상의 경우)
NullPointerException
- 경로명이 null 의 경우
IllegalStateException
- 이 노드 (또는 상위 노드)가 removeNode()
메소드에 의해 삭제되었을 경우flush()
public abstract boolean nodeExists(String pathName) throws BackingStoreException
이 노드 (또는 상위 노드)가 removeNode()
메소드에 의해 벌써 삭제되고 있는 경우는, 경로명이 "" 때에만 이 메소드의 호출이 정당하게 되어,false 를 돌려줍니다. 즉, 관용어 p.nodeExists("") 는,p 가 삭제되고 있는지 어떤지를 테스트하는 경우에 사용합니다.
pathName
- 존재가 확인되는 노드의 경로명
BackingStoreException
- 배킹 스토어에서 장해가 발생했는지 스토어와의 통신을 실시할 수 없기 위해(때문에), 이 오퍼레이션을 완료할 수 없는 경우
IllegalArgumentException
- 경로명이 무효인 경우 (즉, 경로명에 연속한 복수의 slash 문자가 포함되어 있는지, 경로명이 slash 문자로 끝나 있어 그 길이가 2 문자 이상의 경우)
NullPointerException
- 경로명이 null 의 경우
IllegalStateException
- 이 노드 (또는 상위 노드)가 removeNode()
메소드에 의해 삭제되고 있어pathName 가 빈 상태(empty)의 캐릭터 라인 (「」)이 아닌 경우public abstract void removeNode() throws BackingStoreException
name()
,absolutePath()
,isUserNode()
,flush()
,nodeExists("")
이외의 메소드를 호출하면(자), 모두 실패해 IllegalStateException 가 throw 됩니다. Object
에 정의된 메소드는, 노드가 삭제된 후에도 호출할 수가 있어IllegalStateException 는 throw 되지 않습니다.
이 삭제는, 이 노드 (또는 상위 노드) 상에서 flush 메소드를 호출했을 때에, 지속적이 됩니다.
이 구현이 「포함이 끝난 디폴트」를 지원하고 있는 경우는, 노드를 삭제하면(자), 이 노드 또는 그 하위 노드에 포함이 끝난 디폴트가 사용됩니다. 즉, 그 이후에 이 노드의 경로명상에서 nodeExists 를 호출하면(자),true 가 돌려주어집니다. 또,node 를 호출하면(자), 설정 또는 아이, 혹은 그 양쪽 모두의 빈 상태(empty)이 아닌 컬렉션을 나타내는 (다른) Preferences 인스턴스가 돌려주어집니다.
BackingStoreException
- 배킹 스토어에서 장해가 발생했는지 스토어와의 통신을 실시할 수 없기 위해(때문에), 이 오퍼레이션을 완료할 수 없는 경우
IllegalStateException
- 이 노드 (또는 상위 노드)가 removeNode()
메소드에 의해 벌써 삭제되고 있는 경우
UnsupportedOperationException
- 이 메소드가 루트 노드상에서 불려 갔을 경우flush()
public abstract String name()
public abstract String absolutePath()
public abstract boolean isUserNode()
public abstract String toString()
Object
내의 toString
public abstract void flush() throws BackingStoreException
이 구현을 사용하면, 임의의 타이밍에 지속 스토어로 변경을 플래시 할 수 있습니다. 이 메소드가 불려 갈 때까지 대기할 필요는 없습니다.
새롭게 작성된 노드로 플래시가 발생하면(자), 그 노드가 지속적이 되어, 아직 지속적으로 되어 있지 않은 상위 노드 ( 및 하위 노드)도 지속적이 됩니다. 다만, 상위 노드에 대한 설정치의 변경은, 지속적이 되지 않습니다.
이 메소드를,removeNode()
메소드를 사용해 삭제된 노드상에서 호출하면(자), flushSpi()가 이 노드상에서 불려 갑니다만, 다른 노드에서는 불려 가지 않습니다.
BackingStoreException
- 배킹 스토어에서 장해가 발생했는지 스토어와의 통신을 실시할 수 없기 위해(때문에), 이 오퍼레이션을 완료할 수 없는 경우sync()
public abstract void sync() throws BackingStoreException
BackingStoreException
- 배킹 스토어에서 장해가 발생했는지 스토어와의 통신을 실시할 수 없기 위해(때문에), 이 오퍼레이션을 완료할 수 없는 경우
IllegalStateException
- 이 노드 (또는 상위 노드)가 removeNode()
메소드에 의해 삭제되었을 경우flush()
public abstract void addPreferenceChangeListener(PreferenceChangeListener pcl)
removeNode()
메소드에서는 생성되지 않습니다. 이 메소드에서는, 「노드 변경 이벤트」가 생성됩니다. 설정 변경 이벤트는 clear 메소드에 의해 생성됩니다.
노드 변경 이벤트는, 등록된 청취자와 같은 JVM 내에서 변경을 했을 때에만, 생성됩니다. 다만, 일부의 구현에서는, 현재의 JVM 의 외부에서 행해진 변경에 대해서, 이벤트가 생성되는 일이 있습니다. 이벤트가 생성된 시점에서, 변경이 지속적으로 되어 있지 않은 것이 있습니다. 현재의 노드의 하위 노드로 설정이 변경되었을 때는, 이벤트는 생성되지 않습니다. 그러한 이벤트가 필요한 경우는, 그 노드를 등록할 필요가 있습니다.
pcl
- 추가하는 설정 변경 청취자
NullPointerException
- pcl 가 null 의 경우
IllegalStateException
- 이 노드 (또는 상위 노드)가 removeNode()
메소드에 의해 삭제되었을 경우removePreferenceChangeListener(PreferenceChangeListener)
,
addNodeChangeListener(NodeChangeListener)
public abstract void removePreferenceChangeListener(PreferenceChangeListener pcl)
pcl
- 삭제하는 설정 변경 청취자
IllegalArgumentException
- pcl 가 이 노드상에서 등록된 설정 변경 청취자는 아니었던 경우
IllegalStateException
- 이 노드 (또는 상위 노드)가 removeNode()
메소드에 의해 삭제되었을 경우addPreferenceChangeListener(PreferenceChangeListener)
public abstract void addNodeChangeListener(NodeChangeListener ncl)
removeNode()
호출에 의해, 복수의 「노드 변경 이벤트」가 생성됩니다. 즉, 삭제된 노드를 루트로 하는 서브 트리내의 각 노드에 1 개씩 생성됩니다.
노드 변경 이벤트는, 등록된 청취자와 같은 JVM 내에서 변경을 했을 때에만, 생성됩니다. 다만, 일부의 구현에서는, 현재의 JVM 의 외부에서 행해진 변경에 대해서, 이벤트가 생성되는 일이 있습니다. 이벤트가 생성된 시점에서, 변경이 지속적으로 되어 있지 않은 것이 있습니다. 현재의 노드의 부하에 없는 하위 노드가 추가 또는 삭제되었을 때는, 이벤트는 생성되지 않습니다. 그러한 이벤트가 필요한 경우는, 그 노드를 등록할 필요가 있습니다.
작성된 노드는, 즉시 유효하게 되지 않습니다. 이러한 노드는, 액세스 되었을 때에 암묵적으로 작성됩니다. 이 때문에, 액세스 되기 전에, 자식(child) 노드가 배킹 스토어에 존재할지 어떨지를 구현이 판단할 수 없는 경우가 있습니다 (예를 들어, 배킹 스토어가 도달 불능인 경우나, 캐쉬된 정보가 최신이 아닌 경우 등). 이러한 상황에서의 노드 변경 이벤트의 생성은, 특히 정의되고 있지 않습니다.
ncl
- 추가하는 NodeChangeListener
NullPointerException
- ncl 가 null 의 경우
IllegalStateException
- 이 노드 (또는 상위 노드)가 removeNode()
메소드에 의해 삭제되었을 경우removeNodeChangeListener(NodeChangeListener)
,
addPreferenceChangeListener(PreferenceChangeListener)
public abstract void removeNodeChangeListener(NodeChangeListener ncl)
ncl
- 삭제하는 NodeChangeListener
IllegalArgumentException
- ncl 가 이 노드상에서 등록된 NodeChangeListener 는 아니었던 경우
IllegalStateException
- 이 노드 (또는 상위 노드)가 removeNode()
메소드에 의해 삭제되었을 경우addNodeChangeListener(NodeChangeListener)
public abstract void exportNode(OutputStream os) throws IOException , BackingStoreException
이 XML 문서에서는, 다음의 DOCTYPE 가 선언됩니다.
<! DOCTYPE preferences SYSTEM "http://java.sun.com/dtd/preferences.dtd">UTF-8 문자 인코딩이 사용됩니다.
이 메소드는 일반적으로의 규칙과 달리, 이 클래스의 복수의 메소드를 병행해 실행하면(자), 순서대로 실행했을 경우와 같은 결과가 생성됩니다. 이 메소드의 1 회의 호출로 이 노드의 설정이 병행해 변경되었을 경우, export 된 설정이 이 노드에 포함되는 설정과 일치하고 있지 않는 것이 있습니다. 즉, 병행해 행해진 변경은, export 된 데이터에 반영되어 있지 않은 것이 있습니다.
os
- XML 문서의 발행처의 출력 스트림
IOException
- 지정된 출력 스트림에의 기입해 때에 IOException 가 발생했을 경우
BackingStoreException
- 설정 데이터가 배킹 스토어로부터 읽어낼 수 없는 경우
IllegalStateException
- 이 노드 (또는 상위 노드)가 removeNode()
메소드에 의해 삭제되었을 경우importPreferences(InputStream)
public abstract void exportSubtree(OutputStream os) throws IOException , BackingStoreException
이 XML 문서에서는, 다음의 DOCTYPE 가 선언됩니다.
<! DOCTYPE preferences SYSTEM "http://java.sun.com/dtd/preferences.dtd">UTF-8 문자 인코딩이 사용됩니다.
이 메소드는 일반적으로의 규칙과 달리, 이 클래스의 복수의 메소드를 병행해 실행하면(자), 순서대로 실행했을 경우와 같은 결과가 생성됩니다. 이 메소드의 1 회의 호출로 이 노드를 루트로 하는 서브 트리의 설정 또는 노드가 병행해 변경되었을 경우, export 된 설정이 서브 트리와 일치하고 있지 않는 것이 있습니다. 즉, 병행해 행해진 변경은, export 된 데이터에 반영되어 있지 않은 것이 있습니다.
os
- XML 문서의 발행처의 출력 스트림
IOException
- 지정된 출력 스트림에의 기입해 때에 IOException 가 발생했을 경우
BackingStoreException
- 설정 데이터가 배킹 스토어로부터 읽어낼 수 없는 경우
IllegalStateException
- 이 노드 (또는 상위 노드)가 removeNode()
메소드에 의해 삭제되었을 경우importPreferences(InputStream)
,
exportNode(OutputStream)
public static void importPreferences(InputStream is) throws IOException , InvalidPreferencesFormatException
XML 문서에는, 다음의 DOCTYPE 선언이 필요합니다.
<! DOCTYPE preferences SYSTEM "http://java.sun.com/dtd/preferences.dtd">(이 메소드는,
exportNode(OutputStream)
및 exportSubtree(OutputStream)
와 조합해 사용하도록(듯이) 설계되고 있다)
이 메소드는 일반적으로의 규칙과 달리, 이 클래스의 복수의 메소드를 병행해 실행하면(자), 순서대로 실행했을 경우와 같은 결과가 생성됩니다. 이 메소드를 실행하면(자), 이 클래스외의 public 메소드 (node(String)
,put(String, String)
등)를 오버라이드(override) 해 구현했을 경우와 같은 결과가 생성됩니다.
is
- XML 문서의 read원의 입력 스트림
IOException
- 지정된 입력 스트림로부터의 읽기시에 IOException 가 발생했을 경우
InvalidPreferencesFormatException
- 입력 스트림상의 데이터가, 요구된 문서형을 가지는 유효한 XML 문서가 되지 않는 경우
SecurityException
- 시큐리티 매니저가 존재해, 그것이 RuntimePermission("preferences") 를 거부했을 경우RuntimePermission
|
JavaTM Platform Standard Ed. 6 |
|||||||||
전의 클래스 다음의 클래스 | 프레임 있어 프레임 없음 | |||||||||
개요: 상자 | 필드 | 생성자 | 메소드 | 상세 : 필드 | 생성자 | 메소드 |
Copyright 2006 Sun Microsystems, Inc. All rights reserved. Use is subject to license terms . Documentation Redistribution Policy 도 참조해 주세요.