|
JavaTM Platform Standard Ed. 6 |
|||||||||
전의 클래스 다음의 클래스 | 프레임 있어 프레임 없음 | |||||||||
개요: 상자 | 필드 | 생성자 | 메소드 | 상세 : 필드 | 생성자 | 메소드 |
java.lang.Objectjava.util.prefs.Preferences
java.util.prefs.AbstractPreferences
public abstract class AbstractPreferences
이 클래스는,Preferences
클래스의 스켈리턴 구현을 제공합니다. 이 클래스를 사용하면, 간단하게 구현할 수가 있습니다.
이 클래스는,Preferences 를 구현할 경우에만 사용합니다. Preferences 의 기능을 사용할 뿐(만큼)의 사용자는, 이 문서를 참조할 필요는 없습니다. Preferences
의 문서를 참조해 주세요.
Preferences 를 구현할 때는,getSpi(String)
,putSpi(String, String)
,removeSpi(String)
,childSpi(String)
,removeNodeSpi()
,keysSpi()
,childrenNamesSpi()
,syncSpi()
, 및 flushSpi()
의 9 개의 abstract 서비스 프로바이더 인터페이스 (SPI) 메소드를 오버라이드(override) 할 필요가 있습니다. 오버라이드(override) 하는 구상 메소드에는, 이러한 SPI 메소드상에 구현하는 방법을 정확하게 지정할 필요가 있습니다. 퍼포먼스등의 이유로써 디폴트의 구현으로 변경을 더하고 싶은 경우는, 임의의 구상 메소드를 오버라이드(override) 합니다.
SPI 메소드는, 예외 처리에 대해 3 개의 그룹으로 분류됩니다. getSpi 메소드는, 예외를 throw 하지 않습니다. 이것은 문제는 아니고, 이 메소드가 throw 하는 예외는 모두 get(String, String)
에 의해 포획 되어 지정된 디폴트 값가 호출해 측에 돌려주어집니다. removeNodeSpi,keysSpi,childrenNamesSpi,syncSpi, 및 flushSpi 메소드는,BackingStoreException
를 throw 하도록(듯이) 지정되고 있습니다. Preferences 의 구현은, 조작을 실행할 수 없는 경우에 이 체크가 끝난 예외를 throw 할 필요가 있습니다. throw 된 예외는 외부에 보내져 대응하는 API 메소드가 실패합니다.
나머지의 SPI 메소드 (putSpi(String, String)
,removeSpi(String)
, 및 childSpi(String)
)는, 보다 복잡한 예외 처리를 실시합니다. 이러한 메소드는 일반적으로, 배킹 스토어를 이용할 수 없는 경우에서도 그 규약에 따라 동작할 수 있기 (위해)때문에,BackingStoreException 를 throw 하도록(듯이) 지정되고 있지 않습니다. 이러한 메소드는,Preferences.flush()
또는 Preferences.sync()
가 다음에 불려 갔을 때에, 정보를 돌려주어, 효과가 적용되기 (위해)때문에입니다. 일반적으로, 이러한 SPI 메소드는 예외를 throw 하지 않습니다. 일부의 구현에서는, 이러한 호출이 요구한 조작을, 나중에 처리하기 위해서 큐에 넣을 수가 없는 경우가 있습니다. 이러한 경우에서도, 일반적으로은 예외를 throw 하지 않고 , 호출이나 반환값을 무시해 주세요. 다만, 후속의 flush() 나 sync 의 호출에서는 false 를 돌려줄 필요가 있습니다. true 를 돌려주었을 때에, 지금까지의 모든 조작이 정상적으로 적용되고 있는 것을 나타내기 (위해)때문에입니다.
putSpi,removeSpi, 및 childSpi 가 예외를 throw 할 필요가 있는 경우가 1 개만 있습니다. 기본이 되는 operating system상에서, 요구한 조작의 실행에 필요한 특권을 호출해 옆이 가지고 있지 않은 경우입니다. 예를 들어, 대부분의 시스템에서는, 비특권 사용자가 시스템 설정을 변경하려고 하면(자) 예외가 발생합니다. 필요한 특권은, 구현 마다 다릅니다. 예를 들어, 파일 시스템내의 디렉토리의 내용을 변경하는 권한이 필요한 경우나, 레지스트리내의 키의 내용을 변경하는 권한이 필요한 경우가 있습니다. 이러한 환경의 경우, 프로그램의 실행은 속행하지 말아 주세요. 속행해도, 이러한 조작은 적용되는 것이 없기 때문입니다. 이러한 환경에서는, 가능한 한 예외를 throw 하는 것을 추천합니다. 그 경우,SecurityException
를 throw 해 주세요.
대부분의 SPI 메소드의 구현에서는, 설정 노드로 정보의 읽어들여 또는 기입을 실시할 필요가 있습니다. 설정 노드는, 다른 VM 에 의해 배킹 스토어로부터 병행해 삭제되고 있는 경우가 있습니다. 이 노드가 삭제되고 있는 경우는, 구현하는 사용자가 재작성해 주세요.
구현상의 주의 :Sun 의 디폴트의 Preferences 구현에서는, 사용자 ID 는 기본이 되는 operating system로부터 상속되어 가상 머신의 수명중으로 바뀔 것은 없습니다. 서버측의 Preferences 구현에서는, 요구 마다 사용자 ID 가 바뀌어, 정적인 ThreadLocal
인스턴스를 사용해 Preferences 메소드에 암묵적으로 건네받습니다. 서버측의 구현의 작성자는, 설정에 액세스 할 경우에, 예를 들어 get(String, String)
나 put(String, String)
메소드등을 사용해 사용자를 판단하는 것을 강하게 추천합니다. 가능한 한, 사용자와 각 Preferences 인스턴스를 영속적으로 관련짓지 말아 주세요. 사용자를 영속적으로 관련지었을 경우,Preferences 의 정상적인 사용법에 준거하고 있지 않기 때문에, 큰 혼란을 부르게 됩니다.
Preferences
필드의 개요 | |
---|---|
protected Object |
lock
이 객체에는, 이 노드를 잠그었을 때에 사용되는 모니터가 짜넣어지고 있습니다. |
protected boolean |
newNode
이 객체를 작성하기 전에 이 노드가 배킹 스토어에 존재하지 않았던 경우, 이 필드는 true 로 해 주세요. |
클래스 java.util.prefs. Preferences 로부터 상속된 필드 |
---|
MAX_KEY_LENGTH , MAX_NAME_LENGTH , MAX_VALUE_LENGTH |
생성자 의 개요 | |
---|---|
protected |
AbstractPreferences (AbstractPreferences parent,
String name)
지정된 부모와 그 부모를 기점으로서 상대명을 사용해, 설정 노드를 작성합니다. |
메소드의 개요 | |
---|---|
String |
absolutePath ()
Preferences.absolutePath() 의 스펙에 따라,absolutePath 메소드를 구현합니다. |
void |
addNodeChangeListener (NodeChangeListener ncl)
지정된 청취자가 이 노드의 「노드 변경 이벤트」를 수신하도록(듯이) 등록합니다. |
void |
addPreferenceChangeListener (PreferenceChangeListener pcl)
지정된 청취자가 이 설정 노드에 대한 「설정 변경 이벤트」를 수신하도록(듯이) 등록합니다. |
protected AbstractPreferences [] |
cachedChildren ()
이 노드의 삭제되어 있지 않은 기존의 아이를 모두 돌려줍니다. |
String [] |
childrenNames ()
Preferences.childrenNames() 의 스펙에 따라,children 메소드를 구현합니다. |
protected abstract String [] |
childrenNamesSpi ()
이 설정 노드의 아이의 이름을 돌려줍니다. |
protected abstract AbstractPreferences |
childSpi (String name)
이 설정 노드의 이름 첨부의 아이를 돌려줍니다. |
void |
clear ()
Preferences.clear() , 의 스펙에 따라,clear 메소드를 구현합니다. |
void |
exportNode (OutputStream os)
Preferences.exportNode(OutputStream) 의 스펙에 따라,exportNode 메소드를 구현합니다. |
void |
exportSubtree (OutputStream os)
Preferences.exportSubtree(OutputStream) 의 스펙에 따라,exportSubtree 메소드를 구현합니다. |
void |
flush ()
Preferences.flush() 의 스펙에 따라,flush 메소드를 구현합니다. |
protected abstract void |
flushSpi ()
이 메소드가 불려 갈 때는, 이 노드가 락 됩니다. |
String |
get (String key,
String def)
Preferences.get(String, String) 의 스펙에 따라,get 메소드를 구현합니다. |
boolean |
getBoolean (String key,
boolean def)
이 구현에서는 get(key, null) 를 호출합니다. |
byte[] |
getByteArray (String key,
byte[] def)
Preferences.getByteArray(String, byte[]) 의 스펙에 따라,getByteArray 메소드를 구현합니다. |
protected AbstractPreferences |
getChild (String nodeName)
이름 첨부의 아이가 존재하는 경우는 그것을 돌려주어, 존재하지 않는 경우는 null 를 돌려줍니다. |
double |
getDouble (String key,
double def)
Preferences.getDouble(String, double) 의 스펙에 따라,getDouble 메소드를 구현합니다. |
float |
getFloat (String key,
float def)
Preferences.getFloat(String, float) 의 스펙에 따라,getFloat 메소드를 구현합니다. |
int |
getInt (String key,
int def)
Preferences.getInt(String, int) 의 스펙에 따라,getInt 메소드를 구현합니다. |
long |
getLong (String key,
long def)
Preferences.getLong(String, long) 의 스펙에 따라,getLong 메소드를 구현합니다. |
protected abstract String |
getSpi (String key)
이 설정 노드의 지정된 키에 관련지을 수 있었던 값을 돌려줍니다. |
protected boolean |
isRemoved ()
이 노드 (또는 상위 노드)가 removeNode() 메소드에 의해 삭제되었을 경우에,true 를 돌려줍니다. |
boolean |
isUserNode ()
Preferences.isUserNode() 의 스펙에 따라,isUserNode 메소드를 구현합니다. |
String [] |
keys ()
Preferences.keys() 의 스펙에 따라,keys 메소드를 구현합니다. |
protected abstract String [] |
keysSpi ()
이 설정 노드내에 관련지을 수 있었던 값을 가지는 키를 모두 돌려줍니다. |
String |
name ()
Preferences.name() 의 스펙에 따라,name 메소드를 구현합니다. |
Preferences |
node (String path)
Preferences.node(String) 의 스펙에 따라,node 메소드를 구현합니다. |
boolean |
nodeExists (String path)
Preferences.nodeExists(String) 의 스펙에 따라,nodeExists 메소드를 구현합니다. |
Preferences |
parent ()
Preferences.parent() 의 스펙에 따라,parent 메소드를 구현합니다. |
void |
put (String key,
String value)
Preferences.put(String, String) 의 스펙에 따라,put 메소드를 구현합니다. |
void |
putBoolean (String key,
boolean value)
Preferences.putBoolean(String, boolean) 의 스펙에 따라,putBoolean 메소드를 구현합니다. |
void |
putByteArray (String key,
byte[] value)
Preferences.putByteArray(String, byte[]) 의 스펙에 따라,putByteArray 메소드를 구현합니다. |
void |
putDouble (String key,
double value)
Preferences.putDouble(String, double) 의 스펙에 따라,putDouble 메소드를 구현합니다. |
void |
putFloat (String key,
float value)
Preferences.putFloat(String, float) 의 스펙에 따라,putFloat 메소드를 구현합니다. |
void |
putInt (String key,
int value)
Preferences.putInt(String, int) 의 스펙에 따라,putInt 메소드를 구현합니다. |
void |
putLong (String key,
long value)
Preferences.putLong(String, long) 의 스펙에 따라,putLong 메소드를 구현합니다. |
protected abstract void |
putSpi (String key,
String value)
지정된 키와 값의 페어를 이 설정 노드에 관련짓습니다. |
void |
remove (String key)
removeSpi(String) 의 스펙에 따라,remove(String) 메소드를 구현합니다. |
void |
removeNode ()
Preferences.removeNode() 의 스펙에 따라,removeNode() 메소드를 구현합니다. |
void |
removeNodeChangeListener (NodeChangeListener ncl)
지정된 NodeChangeListener 를 삭제해, 이벤트의 수신을 정지합니다. |
protected abstract void |
removeNodeSpi ()
이 호출을 실시하면, 이름 첨부의 아이의 하위 노드가 모두 삭제됩니다. |
void |
removePreferenceChangeListener (PreferenceChangeListener pcl)
지정된 설정 변경 청취자를 삭제해, 설정 변경 이벤트의 수신을 정지합니다. |
protected abstract void |
removeSpi (String key)
이 설정 노드의 지정된 키에 관련짓고가 있는 경우는, 그것을 삭제합니다. |
void |
sync ()
Preferences.sync() 의 스펙에 따라,sync 메소드를 구현합니다. |
protected abstract void |
syncSpi ()
이 메소드가 불려 갈 때는, 이 노드가 락 됩니다. |
String |
toString ()
이 설정 노드의 절대 경로명을 돌려줍니다. |
클래스 java.util.prefs. Preferences 로부터 상속된 메소드 |
---|
importPreferences , systemNodeForPackage , systemRoot , userNodeForPackage , userRoot |
클래스 java.lang. Object 로부터 상속된 메소드 |
---|
clone , equals , finalize , getClass , hashCode , notify , notifyAll , wait , wait , wait |
필드의 상세 |
---|
protected boolean newNode
protected final Object lock
생성자 의 상세 |
---|
protected AbstractPreferences(AbstractPreferences parent, String name)
parent
- 이 설정 노드의 부모. 이 노드가 루트의 경우는 nullname
- 이 설정 노드의 부모에 대한 상대명. 이것이 루트의 경우는「」
IllegalArgumentException
- name 에 slash (「/」)가 포함되어 있는지,parent 가 null 로 name 가「」이 아닌 경우메소드의 상세 |
---|
public void put(String key, String value)
Preferences.put(String, String)
의 스펙에 따라,put 메소드를 구현합니다.
이 구현에서는, 키와 값이 정당한 것을 확인해, 이 설정 노드의 락을 취득해, 설정 노드가 삭제되어 있지 않은 것을 확인해,putSpi(String, String)
를 호출합니다. 또, 설정 변경 청취자가 있는 경우는, 이벤트발송쓰레드에 건네주기 위해서(때문에) 통지 이벤트를 큐에 넣습니다.
Preferences
내의 put
key
- 지정된 값을 관련지을 수 있는 키value
- 지정된 키에 관련지을 수 있는 값
NullPointerException
- 키 또는 값이 null 의 경우
IllegalArgumentException
- key.length() 가 MAX_KEY_LENGTH 를 넘는 경우, 또는 value.length 가 MAX_VALUE_LENGTH 를 넘는 경우
IllegalStateException
- 이 노드 (또는 상위 노드)가 removeNode()
메소드에 의해 삭제되었을 경우public String get(String key, String def)
Preferences.get(String, String)
의 스펙에 따라,get 메소드를 구현합니다.
이 구현은 우선,key 가 null 화도인지를 체크해, 그런 경우는 NullPointerException 를 throw 합니다. 다음에, 이 설정 노드의 락을 취득해, 그 노드가 삭제되어 있지 않은 것을 확인해,getSpi(String)
를 호출합니다. getSpi 의 호출이 정상 종료했을 경우는, 그 결과를 돌려줍니다. null 가 돌려주어질까 예외가 throw 되었을 경우는,def 를 돌려줍니다.
Preferences
내의 get
key
- 관련지을 수 있었던 값이 반환되는 키def
- 이 설정 노드를 key 에 관련지을 수 있었던 값을 가지지 않는 경우에 돌려주어야 할 값
IllegalStateException
- 이 노드 (또는 상위 노드)가 removeNode()
메소드에 의해 삭제되었을 경우
NullPointerException
- key 가 null 의 경우 (null 디폴트는 허가된다. )public void remove(String key)
removeSpi(String)
의 스펙에 따라,remove(String) 메소드를 구현합니다.
이 구현에서는, 이 설정 노드의 락을 취득해, 설정 노드가 삭제되어 있지 않은 것을 확인해,removeSpi(String)
를 호출합니다. 또, 설정 변경 청취자가 있는 경우는, 이벤트발송쓰레드에 건네주기 위해서(때문에) 통지 이벤트를 큐에 넣습니다.
Preferences
내의 remove
key
- 매핑이 설정 노드로부터 삭제되는 키
IllegalStateException
- 이 노드 (또는 상위 노드)가 removeNode()
메소드에 의해 삭제되었을 경우public void clear() throws BackingStoreException
Preferences.clear()
, 의 스펙에 따라,clear 메소드를 구현합니다.
이 구현에서는, 이 설정 노드의 락을 취득해,keys()
를 호출해 키의 배열을 가져옵니다. 다음에, 각 키에 대해서 반복해 remove(String)
를 호출합니다.
Preferences
내의 clear
BackingStoreException
- 배킹 스토어에서 장해가 발생했는지 스토어와의 통신을 실시할 수 없기 위해(때문에), 이 오퍼레이션을 완료할 수 없는 경우
IllegalStateException
- 이 노드 (또는 상위 노드)가 removeNode()
메소드에 의해 삭제되었을 경우Preferences.removeNode()
public void putInt(String key, int value)
Preferences.putInt(String, int)
의 스펙에 따라,putInt 메소드를 구현합니다.
이 구현에서는,Integer.toString(int)
를 사용해 value 를 캐릭터 라인으로 변환해, 그 결과에 대해서 put(String, String)
를 호출합니다.
Preferences
내의 putInt
key
- 캐릭터 라인 형식의 값을 관련지을 수 있는 키value
- 키에 관련지을 수 있는 캐릭터 라인 형식의 값
NullPointerException
- 키가 null 의 경우
IllegalArgumentException
- key.length() 가 MAX_KEY_LENGTH 를 넘는 경우
IllegalStateException
- 이 노드 (또는 상위 노드)가 removeNode()
메소드에 의해 삭제되었을 경우Preferences.getInt(String, int)
public int getInt(String key, int def)
Preferences.getInt(String, int)
의 스펙에 따라,getInt 메소드를 구현합니다.
이 구현은,get(key, null)
를 호출합니다. 반환값이 null 가 아닌 경우는,Integer.parseInt(String)
를 사용해 그 값을 int 로 변환하려고 합니다. 정상적으로 변환되었을 경우는, 이 메소드에 의해 반환값이 돌려주어집니다. 정상적으로 변환되지 않았던 경우는,def 가 돌려주어집니다.
Preferences
내의 getInt
key
- 관련지을 수 있었던 값이 int 로서 반환되는 키def
- 이 설정 노드를 key 에 관련지을 수 있었던 값을 가지지 않는가, 관련지을 수 있었던 값을 int 로서 해석할 수 없는 경우에 돌려주어야 할 값
IllegalStateException
- 이 노드 (또는 상위 노드)가 removeNode()
메소드에 의해 삭제되었을 경우
NullPointerException
- key 가 null 의 경우Preferences.putInt(String, int)
,
Preferences.get(String, String)
public void putLong(String key, long value)
Preferences.putLong(String, long)
의 스펙에 따라,putLong 메소드를 구현합니다.
이 구현에서는,Long.toString(long)
를 사용해 value 를 캐릭터 라인으로 변환해, 그 결과에 대해서 put(String, String)
를 호출합니다.
Preferences
내의 putLong
key
- 캐릭터 라인 형식의 값을 관련지을 수 있는 키value
- 키에 관련지을 수 있는 캐릭터 라인 형식의 값
NullPointerException
- 키가 null 의 경우
IllegalArgumentException
- key.length() 가 MAX_KEY_LENGTH 를 넘는 경우
IllegalStateException
- 이 노드 (또는 상위 노드)가 removeNode()
메소드에 의해 삭제되었을 경우Preferences.getLong(String, long)
public long getLong(String key, long def)
Preferences.getLong(String, long)
의 스펙에 따라,getLong 메소드를 구현합니다.
이 구현은,get(key, null)
를 호출합니다. 반환값이 null 가 아닌 경우는,Long.parseLong(String)
를 사용해 그 값을 long 로 변환하려고 합니다. 정상적으로 변환되었을 경우는, 이 메소드에 의해 반환값이 돌려주어집니다. 정상적으로 변환되지 않았던 경우는,def 가 돌려주어집니다.
Preferences
내의 getLong
key
- 관련지을 수 있었던 값이 long 로서 반환되는 키def
- 이 설정 노드를 key 에 관련지을 수 있었던 값을 가지지 않는가, 관련지을 수 있었던 값을 long 로서 해석할 수 없는 경우에 돌려주어야 할 값
IllegalStateException
- 이 노드 (또는 상위 노드)가 removeNode()
메소드에 의해 삭제되었을 경우
NullPointerException
- key 가 null 의 경우Preferences.putLong(String, long)
,
Preferences.get(String, String)
public void putBoolean(String key, boolean value)
Preferences.putBoolean(String, boolean)
의 스펙에 따라,putBoolean 메소드를 구현합니다.
이 구현에서는,String.valueOf(boolean)
를 사용해 value 를 캐릭터 라인으로 변환해, 그 결과에 대해서 put(String, String)
를 호출합니다.
Preferences
내의 putBoolean
key
- 캐릭터 라인 형식의 값을 관련지을 수 있는 키value
- 키에 관련지을 수 있는 캐릭터 라인 형식의 값
NullPointerException
- 키가 null 의 경우
IllegalArgumentException
- key.length() 가 MAX_KEY_LENGTH 를 넘는 경우
IllegalStateException
- 이 노드 (또는 상위 노드)가 removeNode()
메소드에 의해 삭제되었을 경우Preferences.getBoolean(String, boolean)
,
Preferences.get(String, String)
public boolean getBoolean(String key, boolean def)
get(key, null)
를 호출합니다.
이 구현은,get(key, null)
를 호출합니다. 반환값이 null 이외의 경우, 그 값이 String.equalsIgnoreCase(String)
를 사용해「true」라고 비교됩니다. 이 비교에 의해 true 가 돌려주어졌을 경우, 이 호출에 의해 true 가 돌려주어집니다. 그렇지 않은 경우는, 재차 String.equalsIgnoreCase(String)
를 사용해 원의 반환값이 "false" 라고 비교됩니다. 이 비교에 의해 true 가 돌려주어졌을 경우, 이 호출에 의해 false 가 돌려주어집니다. 그렇지 않은 경우는,def 가 돌려주어집니다.
Preferences
내의 getBoolean
key
- 관련지을 수 있었던 값이 boolean 로서 반환되는 키def
- 이 설정 노드를 key 에 관련지을 수 있었던 값을 가지지 않는가, 관련지을 수 있었던 값을 boolean 로서 해석할 수 없는 경우에 돌려주어야 할 값
IllegalStateException
- 이 노드 (또는 상위 노드)가 removeNode()
메소드에 의해 삭제되었을 경우
NullPointerException
- key 가 null 의 경우Preferences.get(String, String)
,
Preferences.putBoolean(String, boolean)
public void putFloat(String key, float value)
Preferences.putFloat(String, float)
의 스펙에 따라,putFloat 메소드를 구현합니다.
이 구현에서는,Float.toString(float)
를 사용해 value 를 캐릭터 라인으로 변환해, 그 결과에 대해서 put(String, String)
를 호출합니다.
Preferences
내의 putFloat
key
- 캐릭터 라인 형식의 값을 관련지을 수 있는 키value
- 키에 관련지을 수 있는 캐릭터 라인 형식의 값
NullPointerException
- 키가 null 의 경우
IllegalArgumentException
- key.length() 가 MAX_KEY_LENGTH 를 넘는 경우
IllegalStateException
- 이 노드 (또는 상위 노드)가 removeNode()
메소드에 의해 삭제되었을 경우Preferences.getFloat(String, float)
public float getFloat(String key, float def)
Preferences.getFloat(String, float)
의 스펙에 따라,getFloat 메소드를 구현합니다.
이 구현은,get(key, null)
를 호출합니다. 반환값이 null 가 아닌 경우는,Float.parseFloat(String)
를 사용해 그 값을 float 로 변환하려고 합니다. 정상적으로 변환되었을 경우는, 이 메소드에 의해 반환값이 돌려주어집니다. 정상적으로 변환되지 않았던 경우는,def 가 돌려주어집니다.
Preferences
내의 getFloat
key
- 관련지을 수 있었던 값이 float 로서 반환되는 키def
- 이 설정 노드를 key 에 관련지을 수 있었던 값을 가지지 않는가, 관련지을 수 있었던 값을 float 로서 해석할 수 없는 경우에 돌려주어야 할 값
IllegalStateException
- 이 노드 (또는 상위 노드)가 removeNode()
메소드에 의해 삭제되었을 경우
NullPointerException
- key 가 null 의 경우Preferences.putFloat(String, float)
,
Preferences.get(String, String)
public void putDouble(String key, double value)
Preferences.putDouble(String, double)
의 스펙에 따라,putDouble 메소드를 구현합니다.
이 구현에서는,Double.toString(double)
를 사용해 value 를 캐릭터 라인으로 변환해, 그 결과에 대해서 put(String, String)
를 호출합니다.
Preferences
내의 putDouble
key
- 캐릭터 라인 형식의 값을 관련지을 수 있는 키value
- 키에 관련지을 수 있는 캐릭터 라인 형식의 값
NullPointerException
- 키가 null 의 경우
IllegalArgumentException
- key.length() 가 MAX_KEY_LENGTH 를 넘는 경우
IllegalStateException
- 이 노드 (또는 상위 노드)가 removeNode()
메소드에 의해 삭제되었을 경우Preferences.getDouble(String, double)
public double getDouble(String key, double def)
Preferences.getDouble(String, double)
의 스펙에 따라,getDouble 메소드를 구현합니다.
이 구현은,get(key, null)
를 호출합니다. 반환값이 null 가 아닌 경우는,Double.parseDouble(String)
를 사용해 그 값을 double 로 변환하려고 합니다. 정상적으로 변환되었을 경우는, 이 메소드에 의해 반환값이 돌려주어집니다. 정상적으로 변환되지 않았던 경우는,def 가 돌려주어집니다.
Preferences
내의 getDouble
key
- 관련지을 수 있었던 값이 double 로서 반환되는 키def
- 이 설정 노드를 key 에 관련지을 수 있었던 값을 가지지 않는가, 관련지을 수 있었던 값을 double 로서 해석할 수 없는 경우에 돌려주어야 할 값
IllegalStateException
- 이 노드 (또는 상위 노드)가 removeNode()
메소드에 의해 삭제되었을 경우
NullPointerException
- key 가 null 의 경우Preferences.putDouble(String, double)
,
Preferences.get(String, String)
public void putByteArray(String key, byte[] value)
Preferences.putByteArray(String, byte[])
의 스펙에 따라,putByteArray 메소드를 구현합니다.
Preferences
내의 putByteArray
key
- 캐릭터 라인 형식의 값을 관련지을 수 있는 키value
- 키에 관련지을 수 있는 캐릭터 라인 형식의 값
NullPointerException
- 키 또는 값이 null 의 경우
IllegalArgumentException
- key.length()가 MAX_KEY_LENGTH 를 넘는 경우, 또는 value.length 가 MAX_VALUE_LENGTH*3/4 를 넘는 경우
IllegalStateException
- 이 노드 (또는 상위 노드)가 removeNode()
메소드에 의해 삭제되었을 경우Preferences.getByteArray(String, byte[])
,
Preferences.get(String, String)
public byte[] getByteArray(String key, byte[] def)
Preferences.getByteArray(String, byte[])
의 스펙에 따라,getByteArray 메소드를 구현합니다.
Preferences
내의 getByteArray
key
- 관련지을 수 있었던 값이 바이트 배열로서 반환되는 키def
- 이 설정 노드를 key 에 관련지을 수 있었던 값을 가지지 않는가, 관련지을 수 있었던 값을 바이트 배열로서 해석할 수 없는 경우에 돌려주어야 할 값
IllegalStateException
- 이 노드 (또는 상위 노드)가 removeNode()
메소드에 의해 삭제되었을 경우
NullPointerException
- key 가 null 의 경우 (def 에는 null 치를 지정할 수 있다. )Preferences.get(String, String)
,
Preferences.putByteArray(String, byte[])
public String [] keys() throws BackingStoreException
Preferences.keys()
의 스펙에 따라,keys 메소드를 구현합니다.
이 구현에서는, 이 설정 노드의 락을 취득해, 그 노드가 삭제되어 있지 않은 것을 확인해,keysSpi()
를 호출합니다.
Preferences
내의 keys
BackingStoreException
- 배킹 스토어에서 장해가 발생했는지 스토어와의 통신을 실시할 수 없기 위해(때문에), 이 오퍼레이션을 완료할 수 없는 경우
IllegalStateException
- 이 노드 (또는 상위 노드)가 removeNode()
메소드에 의해 삭제되었을 경우public String [] childrenNames() throws BackingStoreException
Preferences.childrenNames()
의 스펙에 따라,children 메소드를 구현합니다.
이 구현에서는, 이 설정 노드의 락을 취득해, 그 노드가 삭제되어 있지 않은 것을 확인해, 캐쉬 끝난 아이 (이 노드의 「아이 캐쉬」에 포함되고 있는 아이)의 이름에 초기화되고 있는 TreeSet 를 구축해,childrenNamesSpi()
를 호출해, 반환된 모든 아이의 이름을 그 세트내에 추가합니다. 다음에,childrenNamesSpi()
를 호출해, 반환된 아이의 이름을 모두 그 트리 세트에 추가합니다. 트리 세트의 요소는 toArray 메소드를 사용해 String 배열에 덤프 되어 이 배열이 돌려주어집니다.
Preferences
내의 childrenNames
BackingStoreException
- 배킹 스토어에서 장해가 발생했는지 스토어와의 통신을 실시할 수 없기 위해(때문에), 이 오퍼레이션을 완료할 수 없는 경우
IllegalStateException
- 이 노드 (또는 상위 노드)가 removeNode()
메소드에 의해 삭제되었을 경우cachedChildren()
protected final AbstractPreferences [] cachedChildren()
public Preferences parent()
Preferences.parent()
의 스펙에 따라,parent 메소드를 구현합니다.
이 구현에서는, 이 설정 노드의 락을 취득해, 설정 노드가 삭제되어 있지 않은 것을 확인해, 이 노드의 생성자 에게 건네진 부모의 값을 돌려줍니다.
Preferences
내의 parent
IllegalStateException
- 이 노드 (또는 상위 노드)가 removeNode()
메소드에 의해 삭제되었을 경우public Preferences node(String path)
Preferences.node(String)
의 스펙에 따라,node 메소드를 구현합니다.
이 구현은, 이 설정 노드의 락을 취득해, 설정 노드가 삭제되어 있지 않은 것을 확인합니다. path 가 "" 의 경우는, 이 노드가 돌려주어집니다. path 가 "/" 의 경우는, 이 노드의 루트가 돌려주어집니다. path 의 최초의 문자가 '/' 가 아닌 경우는,path 를 몇개의 토큰에 분할해, 이 노드로부터 이름 첨부 노드까지 패스를 재귀적으로 횡단(traverse) 합니다. path 는, 이름과 slash의 단위로 횡단(traverse) 됩니다. 횡단(traverse) 할 때는, 현재의 노드를 잠그어, 그 노드의 아이 캐쉬에 이름 첨부 노드가 있을지 어떨지를 확인합니다. 이름 첨부 노드가 발견되지 않는 경우는, 그 이름의 길이가 MAX_NAME_LENGTH 를 넘지 않은지 어떤지를 확인합니다. 다음에 childSpi(String)
메소드를 호출해, 그 결과를 이 노드의 아이 캐쉬에 포함합니다. 새롭게 작성한 Preferences 객체의 newNode
필드가 true 로, 노드 변경 청취자가 있는 경우는, 이벤트발송쓰레드에 건네주기 위해서(때문에) 통지 이벤트를 큐에 넣습니다.
토큰이 없어지면(자), 아이 캐쉬에 마지막에 발견된 값 또는 childSpi 로부터 마지막에 반환된 값을 돌려줍니다. 횡단(traverse)시에 2 개의 것 "/" 이 연속해 발생했을 경우, 또는 마지막 토큰이 이름은 아니고 "/" 의 경우는, 적절한 IllegalArgumentException 를 throw 합니다.
path 의 최초의 문자가 '/' (절대 경로명을 나타낸다)의 경우는, 이 설정 노드의 락을 해제하고 나서,path 를 몇개의 토큰에 분할해, 패스를 루트로부터 (이 노드로부터는 아니게) 재귀적으로 횡단(traverse) 합니다. 최초의 문자가 '/' 이외의 경우는, 상대 경로명과 같은 횡단(traverse)을 실시합니다. 루트 노드로 횡단(traverse)을 개시할 때는, 이 노드의 락을 반드시 해제해 주세요. 데드락의 발생을 막기 위해입니다 (locking invariant
를 참조).
Preferences
내의 node
path
- 반환되는 설정 노드의 경로명
IllegalArgumentException
- 경로명이 무효인 경우 (즉, 경로명에 연속한 복수의 slash 문자가 포함되어 있는지, 경로명이 slash 문자로 끝나 있어 그 길이가 2 문자 이상의 경우)
IllegalStateException
- 이 노드 (또는 상위 노드)가 removeNode()
메소드에 의해 삭제되었을 경우Preferences.flush()
public boolean nodeExists(String path) throws BackingStoreException
Preferences.nodeExists(String)
의 스펙에 따라,nodeExists 메소드를 구현합니다.
이 구현은,node(String)
와 닮아 있습니다만,childSpi(String)
는 아니고 getChild(String)
가 사용됩니다.
Preferences
내의 nodeExists
path
- 존재가 확인되는 노드의 경로명
BackingStoreException
- 배킹 스토어에서 장해가 발생했는지 스토어와의 통신을 실시할 수 없기 위해(때문에), 이 오퍼레이션을 완료할 수 없는 경우
IllegalArgumentException
- 경로명이 무효인 경우 (즉, 경로명에 연속한 복수의 slash 문자가 포함되어 있는지, 경로명이 slash 문자로 끝나 있어 그 길이가 2 문자 이상의 경우)
IllegalStateException
- 이 노드 (또는 상위 노드)가 removeNode()
메소드에 의해 삭제되고 있어pathname 가 빈 상태(empty)의 캐릭터 라인 (「」)이 아닌 경우public void removeNode() throws BackingStoreException
Preferences.removeNode()
의 스펙에 따라,removeNode() 메소드를 구현합니다.
이 구현은, 이 노드가 루트일지 어떨지를 확인합니다. 루트인 경우는, 해당하는 예외를 throw 합니다. 다음에, 이 노드의 부모를 잠그어, 이 노드를 루트로 한 서브 트리를 횡단(traverse) 하는 재귀적 헬퍼 메소드를 호출합니다. 이 재귀적 메소드는, 그 호출원의 노드를 잠그어, 그 노드가 삭제되어 있지 않은 것을 확인한 후에, 그 노드의 아이가 모두 캐쉬되고 있는 것을 확인합니다. 즉,childrenNamesSpi()
메소드를 호출해, 반환된 아이의 이름이 아이 캐쉬에 포함되고 있는지 어떤지를 확인합니다. 아이가 캐쉬되어 있지 않은 경우는,childSpi(String)
메소드를 호출해 Preferences 인스턴스를 작성해, 아이 캐쉬에 포함합니다. 이 헬퍼 메소드는, 그 아이 캐쉬에 포함되어 있는 노드 마다 자신을 재귀적으로 호출합니다. 다음에,removeNodeSpi()
를 호출해, 그 노드 자체를 삭제가 끝난 상태로서 지정해, 그 부모의 아이 캐쉬로부터 삭제합니다. 마지막으로, 노드 변경 청취자가 있는 경우는, 이벤트발송쓰레드에 건네주기 위해서(때문에) 통지 이벤트를 큐에 넣습니다.
헬퍼 메소드가 불려 갈 때는, 「삭제되어 있지 않은 것도 와도 가까운 상위 노드」까지의 모든 상위 노드가 항상 락 됩니다.
Preferences
내의 removeNode
IllegalStateException
- 이 노드 (또는 상위 노드)가 removeNode()
메소드에 의해 벌써 삭제되고 있는 경우
UnsupportedOperationException
- 이 메소드가 루트 노드상에서 불려 갔을 경우
BackingStoreException
- 배킹 스토어에서 장해가 발생했는지 스토어와의 통신을 실시할 수 없기 위해(때문에), 이 오퍼레이션을 완료할 수 없는 경우Preferences.flush()
public String name()
Preferences.name()
의 스펙에 따라,name 메소드를 구현합니다.
이 구현은, 노드의 생성자 에게 건네진 이름만을 돌려줍니다.
Preferences
내의 name
public String absolutePath()
Preferences.absolutePath()
의 스펙에 따라,absolutePath 메소드를 구현합니다.
이 구현은, 이 노드가 구축되었을 때에 산출된 절대 경로명만을 돌려줍니다 (이 노드의 생성자 에게 건네진 이름과 이 노드의 상위 노드의 생성자 에게 건네진 이름에 근거해 산출된다).
Preferences
내의 absolutePath
public boolean isUserNode()
Preferences.isUserNode()
의 스펙에 따라,isUserNode 메소드를 구현합니다.
이 구현은, 이 노드의 루트 노드 (private 필드에 포함되고 있다)와 Preferences.userRoot()
로부터 반환된 값을 비교합니다. 2 개의 객체 참조가 일치하는 경우는, true 를 돌려줍니다.
Preferences
내의 isUserNode
public void addPreferenceChangeListener(PreferenceChangeListener pcl)
Preferences
의 기술:Preferences.removeNode()
메소드에서는 생성되지 않습니다. 이 메소드에서는, 「노드 변경 이벤트」가 생성됩니다. 설정 변경 이벤트는 clear 메소드에 의해 생성됩니다.
노드 변경 이벤트는, 등록된 청취자와 같은 JVM 내에서 변경을 했을 때에만, 생성됩니다. 다만, 일부의 구현에서는, 현재의 JVM 의 외부에서 행해진 변경에 대해서, 이벤트가 생성되는 일이 있습니다. 이벤트가 생성된 시점에서, 변경이 지속적으로 되어 있지 않은 것이 있습니다. 현재의 노드의 하위 노드로 설정이 변경되었을 때는, 이벤트는 생성되지 않습니다. 그러한 이벤트가 필요한 경우는, 그 노드를 등록할 필요가 있습니다.
Preferences
내의 addPreferenceChangeListener
pcl
- 추가하는 설정 변경 청취자Preferences.removePreferenceChangeListener(PreferenceChangeListener)
,
Preferences.addNodeChangeListener(NodeChangeListener)
public void removePreferenceChangeListener(PreferenceChangeListener pcl)
Preferences
의 기술:
Preferences
내의 removePreferenceChangeListener
pcl
- 삭제하는 설정 변경 청취자Preferences.addPreferenceChangeListener(PreferenceChangeListener)
public void addNodeChangeListener(NodeChangeListener ncl)
Preferences
의 기술:Preferences.removeNode()
호출에 의해, 복수의 「노드 변경 이벤트」가 생성됩니다. 즉, 삭제된 노드를 루트로 하는 서브 트리내의 각 노드에 1 개씩 생성됩니다.
노드 변경 이벤트는, 등록된 청취자와 같은 JVM 내에서 변경을 했을 때에만, 생성됩니다. 다만, 일부의 구현에서는, 현재의 JVM 의 외부에서 행해진 변경에 대해서, 이벤트가 생성되는 일이 있습니다. 이벤트가 생성된 시점에서, 변경이 지속적으로 되어 있지 않은 것이 있습니다. 현재의 노드의 부하에 없는 하위 노드가 추가 또는 삭제되었을 때는, 이벤트는 생성되지 않습니다. 그러한 이벤트가 필요한 경우는, 그 노드를 등록할 필요가 있습니다.
작성된 노드는, 즉시 유효하게 되지 않습니다. 이러한 노드는, 액세스 되었을 때에 암묵적으로 작성됩니다. 이 때문에, 액세스 되기 전에, 자식(child) 노드가 배킹 스토어에 존재할지 어떨지를 구현이 판단할 수 없는 경우가 있습니다 (예를 들어, 배킹 스토어가 도달 불능인 경우나, 캐쉬된 정보가 최신이 아닌 경우 등). 이러한 상황에서의 노드 변경 이벤트의 생성은, 특히 정의되고 있지 않습니다.
Preferences
내의 addNodeChangeListener
ncl
- 추가하는 NodeChangeListenerPreferences.removeNodeChangeListener(NodeChangeListener)
,
Preferences.addPreferenceChangeListener(PreferenceChangeListener)
public void removeNodeChangeListener(NodeChangeListener ncl)
Preferences
의 기술:
Preferences
내의 removeNodeChangeListener
ncl
- 삭제하는 NodeChangeListenerPreferences.addNodeChangeListener(NodeChangeListener)
protected abstract void putSpi(String key, String value)
이 메소드가 불려 갈 때는, 이 노드가 락 됩니다.
protected abstract String getSpi(String key)
이 메소드는, 대부분의 상황으로 예외를 throw 하지 않습니다. 예외를 throw 했을 경우에서도, 그 예외는 포획 되어null 반환값으로서 다루어집니다.
이 메소드가 불려 갈 때는, 이 노드가 락 됩니다.
protected abstract void removeSpi(String key)
이 메소드가 불려 갈 때는, 이 노드가 락 됩니다.
protected abstract void removeNodeSpi() throws BackingStoreException
Preferences.removeNode()
메소드는, 노드의 최하정도 노드로부터 상위 노드 방향으로 이 메소드를 반복해 호출해, 하위 노드를 모두 삭제하고 나서, 노드 자체를 삭제합니다.
이 메소드가 불려 갈 때는, 이 노드와 그 친 ( 및 1 회의 Preferences.removeNode()
) 호출에 의해 삭제되는 모든 상위 노드)가 락 됩니다.
노드의 삭제는, 이 노드 (또는 상위 노드) 상에서 flush 메소드가 불려 갈 때까지, 지속적이 될 필요는 없습니다.
이 노드가 throw 한 BackingStoreException 예외는, 내포 하고 있는 removeNode()
의 호출을 넘어 보내집니다.
BackingStoreException
- 배킹 스토어에서 장해가 발생했는지 스토어와의 통신을 실시할 수 없기 위해(때문에), 이 오퍼레이션을 완료할 수 없는 경우protected abstract String [] keysSpi() throws BackingStoreException
이 메소드가 불려 갈 때는, 이 노드가 락 됩니다.
이 노드가 throw 한 BackingStoreException 예외는, 내포 하고 있는 keys()
의 호출을 넘어 보내집니다.
BackingStoreException
- 배킹 스토어에서 장해가 발생했는지 스토어와의 통신을 실시할 수 없기 위해(때문에), 이 오퍼레이션을 완료할 수 없는 경우protected abstract String [] childrenNamesSpi() throws BackingStoreException
이 메소드가 불려 갈 때는, 이 노드가 락 됩니다.
이 노드가 throw 한 BackingStoreException 예외는, 내포 하고 있는 childrenNames()
의 호출을 넘어 보내집니다.
BackingStoreException
- 배킹 스토어에서 장해가 발생했는지 스토어와의 통신을 실시할 수 없기 위해(때문에), 이 오퍼레이션을 완료할 수 없는 경우protected AbstractPreferences getChild(String nodeName) throws BackingStoreException
Preferences.MAX_NAME_LENGTH
문자 이하인 것이 보증되고 있습니다. 또, 이 노드가 삭제되어 있지 않은 것도 보증되고 있습니다. 이 메소드를 오버라이드(override) 할 경우에, 이러한 것을 확인할 필요는 없습니다.
또, 이름 첨부 노드가 마지막에 삭제된 후에, 이 메소드 또는 childSpi(java.lang.String)
가 전회 불려 갔을 때에, 그 노드가 돌려주어지지 않은 것도 보증되고 있습니다. 즉, 이 메소드가 불려 가기 전에, 캐쉬된 값이 항상 우선해 사용됩니다. 이 메소드를 오버라이드(override) 하는 경우, 이전에 반환된 아이의 캐쉬를 보관 유지할 필요는 없습니다.
이 구현은, 이 설정 노드의 락을 취득해,childrenNames()
를 호출해 아이의 이름의 배열을 취득해, 배열내의 자식(child) 노드의 이름과 지정된 노드명을 반복해 비교합니다. 자식(child) 노드의 이름이 올바른 경우는,childSpi(String)
메소드를 호출해, 그 노드를 돌려줍니다. 모든 자식(child) 노드를 비교해도 지정된 이름이 발견되지 않았던 경우는,null 가 돌려주어집니다.
nodeName
- 검색 대상이 되는 아이의 이름
BackingStoreException
- 배킹 스토어에서 장해가 발생했는지 스토어와의 통신을 실시할 수 없기 위해(때문에), 이 오퍼레이션을 완료할 수 없는 경우protected abstract AbstractPreferences childSpi(String name)
Preferences.MAX_NAME_LENGTH
문자 이하인 것이 보증되고 있습니다. 또, 이 노드가 삭제되어 있지 않은 것도 보증되고 있습니다. 구현할 경우에, 이러한 것을 확인할 필요는 없습니다.
또, 이름 첨부 노드가 마지막에 삭제된 후에, 이 메소드 또는 getChild(String)
가 전회 불려 갔을 때에, 그 노드가 돌려주어지지 않은 것도 보증되고 있습니다. 즉, 이 메소드가 불려 가기 전에, 캐쉬된 값이 항상 우선해 사용됩니다. 서브 클래스는, 이전에 반환된 아이의 캐쉬를 보관 유지할 필요는 없습니다.
구현할 때는, 반환된 노드가 삭제되어 있지 않은 것을 확인할 필요가 있습니다. 이 노드로부터 같은 이름인 아이가 삭제되고 있는 경우는,AbstractPreferences 노드를 새롭게 구축해, 그것을 돌려줄 필요가 있습니다. 한 번 삭제한 AbstractPreferences 노드는, 복구할 수 없습니다.
이 메소드에 의해 작성된 노드는, 이 노드 또는 게다가 위노드 (또는 하위 노드)로 flush 메소드가 불려 갔을 때에, 지속적이 됩니다.
이 메소드가 불려 갈 때는, 이 노드가 락 됩니다.
name
- 돌려주는 자식(child) 노드의 이름 (이 설정 노드를 기점으로서 상대명)
public String toString()
Preferences
내의 toString
public void sync() throws BackingStoreException
Preferences.sync()
의 스펙에 따라,sync 메소드를 구현합니다.
재귀적 헬퍼 메소드는, 이 노드를 잠그어, 이 노드상에서 syncSpi()를 호출합니다. 다음에, 이 노드의 락을 해제해, 「캐쉬된 아이」마다 재귀적으로 이 메소드를 호출합니다. 캐쉬된 아이란, 이 VM 내에서 작성되어 그 후 삭제되어 있지 않은 이 노드의 아이입니다. 즉, 이 메소드는, 이 노드를 루트로 하는 「캐쉬된 서브 트리」의 깊이 우선 횡단(traverse)을 실행해, 서브 트리내의 노드 마다 syncSpi()를 호출합니다. 이 때, 조작하고 있는 노드만이 락 됩니다. syncSpi()는 상위 노드로부터 하위 방향으로 불려 갑니다.
Preferences
내의 sync
BackingStoreException
- 배킹 스토어에서 장해가 발생했는지 스토어와의 통신을 실시할 수 없기 위해(때문에), 이 오퍼레이션을 완료할 수 없는 경우
IllegalStateException
- 이 노드 (또는 상위 노드)가 removeNode()
메소드에 의해 삭제되었을 경우flush()
protected abstract void syncSpi() throws BackingStoreException
이 노드가 throw 한 BackingStoreException 예외는, 내포 하고 있는 sync()
의 호출을 넘어 보내집니다.
BackingStoreException
- 배킹 스토어에서 장해가 발생했는지 스토어와의 통신을 실시할 수 없기 위해(때문에), 이 오퍼레이션을 완료할 수 없는 경우public void flush() throws BackingStoreException
Preferences.flush()
의 스펙에 따라,flush 메소드를 구현합니다.
재귀적 헬퍼 메소드는, 이 노드를 잠그어, 이 노드상에서 flushSpi()를 호출합니다. 캐쉬된 아이란, 이 VM 내에서 작성되어 그 후 삭제되어 있지 않은 이 노드의 아이입니다. 즉, 이 메소드는, 이 노드를 루트로 하는 「캐쉬된 서브 트리」의 깊이 우선 횡단(traverse)을 실행해, 서브 트리내의 노드 마다 flushSpi()를 호출합니다. 이 때, 조작하고 있는 노드만이 락 됩니다. flushSpi()는 상위 노드로부터 하위 방향으로 불려 갑니다.
이 메소드를,removeNode()
메소드를 사용해 삭제된 노드상에서 호출하면(자), flushSpi()가 이 노드상에서 불려 갑니다만, 다른 노드에서는 불려 가지 않습니다.
Preferences
내의 flush
BackingStoreException
- 배킹 스토어에서 장해가 발생했는지 스토어와의 통신을 실시할 수 없기 위해(때문에), 이 오퍼레이션을 완료할 수 없는 경우flush()
protected abstract void flushSpi() throws BackingStoreException
이 노드가 throw 한 BackingStoreException 예외는, 내포 하고 있는 flush()
의 호출을 넘어 보내집니다.
BackingStoreException
- 배킹 스토어에서 장해가 발생했는지 스토어와의 통신을 실시할 수 없기 위해(때문에), 이 오퍼레이션을 완료할 수 없는 경우protected boolean isRemoved()
removeNode()
메소드에 의해 삭제되었을 경우에,true 를 돌려줍니다. 이 메소드는, 이 노드를 잠그고 나서, 이 상태의 추적에 사용된 private 필드의 내용을 돌려줍니다.
removeNode()
메소드에 의해 삭제되었을 경우는 truepublic void exportNode(OutputStream os) throws IOException , BackingStoreException
Preferences.exportNode(OutputStream)
의 스펙에 따라,exportNode 메소드를 구현합니다.
Preferences
내의 exportNode
os
- XML 문서의 발행처의 출력 스트림
IOException
- 지정된 출력 스트림에의 기입해 때에 IOException 가 발생했을 경우
BackingStoreException
- 설정 데이터가 배킹 스토어로부터 읽어낼 수 없는 경우Preferences.importPreferences(InputStream)
public void exportSubtree(OutputStream os) throws IOException , BackingStoreException
Preferences.exportSubtree(OutputStream)
의 스펙에 따라,exportSubtree 메소드를 구현합니다.
Preferences
내의 exportSubtree
os
- XML 문서의 발행처의 출력 스트림
IOException
- 지정된 출력 스트림에의 기입해 때에 IOException 가 발생했을 경우
BackingStoreException
- 설정 데이터가 배킹 스토어로부터 읽어낼 수 없는 경우Preferences.importPreferences(InputStream)
,
Preferences.exportNode(OutputStream)
|
JavaTM Platform Standard Ed. 6 |
|||||||||
전의 클래스 다음의 클래스 | 프레임 있어 프레임 없음 | |||||||||
개요: 상자 | 필드 | 생성자 | 메소드 | 상세 : 필드 | 생성자 | 메소드 |
Copyright 2006 Sun Microsystems, Inc. All rights reserved. Use is subject to license terms . Documentation Redistribution Policy 도 참조해 주세요.