14.4.1 | Allgemeines |
Einstellungen werden über das Preferences-API in einer hierarchischen Struktur gespeichert, wobei in den Knoten Schlüssel-Wert-Paare abgelegt werden (analog zur Windows-Registry). Es gibt eine Unterteilung in System- und Benutzerbereich.Im Systembereich sollten einmalig verfügbare allgemeine programmbezogene Informationen abgelegt sein, wie z. B. das Installationsverzeichnis. Der Benutzerbereich sollte hingegen benutzerbezogene Einstellungen wie z. B. Font oder Fenstergröße enthalten. Für jeden Betriebssystembenutzer steht ein privater Benutzerbereich zur Verfügung, in dem die für den Benutzer spezifischen Einstellungen abgelegt werden können. Für jeden dieser Bereiche existiert ein eigener Wurzelknoten. Jeder Knoten in der Hierarchie hat einen Namen, wobei die Wurzelknoten durch den Schrägstrich identifiziert wird. Da Benutzer- und Systemknoten komplett getrennt sind, gibt es entsprechend auch zwei unterschiedliche Wurzelknoten. Ausgehend vom Wurzelknoten kann man über einen Pfad einzelne Einstellungsknoten auffinden (analog zu Verzeichnissen in einem Unix-Dateisystem). Im Vergleich zu einem Dateisystem nehmen die Knoten, die Rolle von Verzeichnissen und die Einstellungen die Rolle von Dateien ein, die in den Verzeichnissen abgelegt sind. Prinzipiell kann man in jedem Knoten Einstellungen ablegen, sofern die erforderlichen Rechte zur Verfügung stehen.
Das Preferences-API speichert intern grundsätzlich alle Einstellungen als Zeichenketten. Sie bietet dem Anwender zwar Methoden an, unterschiedliche Datentypen zu setzen, intern führt das API jedoch nach dem Aufruf wieder eine Konvertierung des Typs in eine Zeichenkette durch.
Auf welche Weise der Persistenz-Mechanismus zum Zugriff auf die Einstellungen implementiert ist, ist von dem Preferences-API nicht festgelegt. Theoretisch können Einstellungen lokal in Dateien gespeichert, aber auch über ein Netzwerk, z. B. in einem LDAP-Server, abgelegt werden. Aus diesem Grund können viele der Methoden des Preferences-API eine BackingStoreException auslösen. Das Auftreten dieser Exception zeigt an, dass es Probleme beim Zugriff auf die Einstellungen gibt und sie nicht ermittelt bzw. gespeichert werden können.