Klasse java.util.prefs.AbstractPreferences | 1.4 |
java.lang.Object | +--java.util.prefs.Preferences | +--java.util.prefs.AbstractPreferences
Datenelemente | |
---|---|
protected final Object | lock |
protected boolean | newNode |
Konstruktoren | |
---|---|
protected | AbstractPreferences(AbstractPreferences parent, String name) |
/de/dpunkt/runtime/prefsUm den absoluten Pfad zu ermitteln wird der Name des aktuellen Knotens und die Namen der Vorgänger-Knoten mit Schrägstrich getrennt zu einer Zeichenkette verknüpft.
Die Implementierung muss sicherstellen, dass der zurückgelieferte Knoten nicht bereits gelöscht wurde. Wenn ein Konten mit dem übergebenen Namen früher bereits gelöscht wurde, kann er nicht wiederverwendet werden, sondern es muss ein neuer Knoten erzeugt werden.Die Persistenz eines neuen Knotens, der durch die Implementierung dieser Methode erzeugt wird, ist erst sichergestellt, nach einem Aufruf von flush(). Es ist somit freigestellt, Knoten zunächst intern zwischenzuspeichern und erst später zu speichern, wenn dies explizit gewünscht wird.Vor dem Aufruf dieser Methode wird der Knoten mit dem internen Lock-Objekt gesperrt.
Die Namen der Knoten, die bereits intern zwischengespeichert werden, müssen nicht unbedingt zurückgeliefert werden. Es ist aber auch kein Fehler wenn Sie ebenfalls im Ergebnis enthalten sind.Vor dem Aufruf dieser Methode wird der Knoten mit dem internen Lock-Objekt gesperrt.
Die Implementierung dieser Methode sperrt den Knoten mit dem internen Lock-Objekt, ruft flushSpi() auf und gibt den Knoten wieder frei. Anschließend wird diese Vorgehensweise rekursiv auf alle zwischengespeicherten Kind-Knoten durchgeführt.
Wenn eine rekursive Speicherung über diese Methode effizient bewerkstelligt kann, ist es ratsam dies zu nutzen und auch flush() entsprechend zu redefinieren, da dort die rekursive Traversierung der Kind-Knoten durchgeführt wird.
Die Implementierung dieser Methode sperrt den Knoten mit dem internen Lock-Objekt, fragt die Namen der Kind-Knoten mit der Methode childrenNames() ab. Anschließend erfolgt eine Iteration über die Namen, wobei ein Vergleich der Namen durchgeführt wird. Wird der gesuchte Namen gefunden, wird der Knoten über die Methode childSpi(String) ermittelt und zurückgeliefert, ansonsten wird null zurückgeliefert.
Die Implementierung ruft get(key, null) und versucht das Ergebnis in einen double-Wert zu konvertieren. Bei Erfolg wird er zurückgeliefert, ansonsten gibt die Methode def zurück.
Die Implementierung ruft get(key, null) und versucht das Ergebnis in einen float-Wert zu konvertieren. Bei Erfolg wird er zurückgeliefert, ansonsten gibt die Methode def zurück.
Die Implementierung ruft get(key, null) und versucht das Ergebnis in einen int-Wert zu konvertieren. Bei Erfolg wird er zurückgeliefert, ansonsten gibt die Methode def zurück.
Die Implementierung ruft get(key, null) und versucht das Ergebnis in einen long-Wert zu konvertieren. Bei Erfolg wird er zurückgeliefert, ansonsten gibt die Methode def zurück.
Es wird sichergestellt, dass der Knoten nicht gelöscht wurde und dass der Schlüssel nicht null ist.Wenn die Methode eine Exception auslöst, wird dies vom Aufrufer genauso behandelt wie die Rückgabe von null.
Die Implementierung vergleicht den Wurzel-Knoten dieses Knotens mit dem Ergebnis von userRoot().
Die Implementierung dieser Methode sperrt den Knoten mit dem internen Lock-Objekt, prüft, ob der Knoten nicht bereits gelöscht wurde und ruft anschließend keysSpi() auf.
Vor Aufruf dieser Methode wird der Knoten mit dem internen Lock-Objekt gesperrt.
Die Implementierung dieser Methode sperrt den Knoten mit dem internen Lock-Objekt, prüft, ob der Knoten nicht bereits zuvor gelöscht wurde und liefert anschließend den Eltern-Knoten zurück, mit dem der Knoten über den Konstruktor initialisiert wurde.
Die Implementierung prüft zunächst, ob Schlüssel und Wert gültig sind. Anschließend wird der Knoten mit dem internen Lock-Objekt gesperrt und sichergestellt, dass der Knoten nicht zuvor gelöscht wurde, bevor die Methode putSpi(String,String) mit Schlüssel und Wert aufgerufen wird. Die registrierten PreferenceChangeListener werden danach über die geänderten Einstellungen informiert.
Die Implementierung konvertiert zunächst den übergebenen Wert über die Methode valueOf(boolean) der Klasse String und ruft mit dem Ergebnis put(String,String) auf.
Die Implementierung konvertiert zunächst den übergebenen Wert nach Base64 und ruft mit dem Ergebnis put(String,String) auf.
Die Implementierung konvertiert zunächst den übergebenen Wert über die Methode toString(double) der Klasse Double und ruft mit dem Ergebnis put(String,String) auf.
Die Implementierung konvertiert zunächst den übergebenen Wert über die Methode toString(float) der Klasse Float und ruft mit dem Ergebnis put(String,String) auf.
Die Implementierung konvertiert zunächst den übergebenen Wert über die Methode toString(int) der Klasse Integer und ruft mit dem Ergebnis put(String,String) auf.
Die Implementierung konvertiert zunächst den übergebenen Wert über die Methode toString(long) der Klasse Long und ruft mit dem Ergebnis put(String,String) auf.
Vor dem Aufruf dieser Methode wird der Knoten mit dem internen Lock-Objekt gesperrt.
Die Implementierung sperrt den Knoten mit dem internen Lock-Objekt, prüft, ob der Knoten nicht zuvor gelöscht wurde und ruft removeSpi(String) auf. Anschließend werden alle registrierten PreferenceChangeListener übe die Änderung informiert.
Wenn es sich beim Knoten um einen Wurzel-Knoten handelt, wird eine Exception ausgelöst, da die Wurzel-Knoten nicht gelöscht werden können. Sonst wird der Knoten mit dem internen Lock-Objekt gesperrt und sichergestellt, dass alle Knoten des Teilbaums rekursiv in den Cache geladen werden. Hierzu wird intern für Knoten mit childrenNamesSpi() die Namen der Kind-Knoten ermittelt und für jeden noch nicht geladenen Knoten childSpi(String) aufgerufen. Danach wird removeNodeSpi() aufgerufen, der Knoten merkt sich, dass er gelöscht wurde und entfernt sich aus dem Cache des Eltern-Knoten. Anschließend werden alle NodeChangeListener über die Änderung informiert.
Vor Aufruf der Methode wird der Knoten mit dem internen Lock-Objekt gesperrt.
Die Implementierung dieser Methode sperrt den Knoten mit dem internen Lock-Objekt, ruft syncSpi() auf, hebt die Sperre auf und wiederholt diesen Vorgang rekursiv bei jedem zwischengespeicherten Kind-Knoten.
Vor Aufruf dieser Methode wird der Knoten mit dem internen Lock-Objekt gesperrt.