IDatapool-Interface =================== Das IDatapool Interface ist die wichtigste Datenpool-Klasse. Man erhält einen Zugriff über den Kernel bzw bei den optionalen Namespace-Datenpools über die Namespaces:: kernel.getDatapool(); Namespace.getDatapool(); Daten lesen *********** Die Schlüssel für einen bestimmten Pfad erhält man über:: Collection getKeys(String aPath); Alle Datapool Records eines bestimmten Pfades kann man so holen:: Collection getRecords(String aPath); Die Unterverzeichnisse eines Pfades erhält man über:: Collection getSubDirectories(String aPath); Alle Records der Unterverzeichnisse erhält man über:: Collection getSubRecords(String aPath); Einen einzelnen Wert bekommt man durch Aufruf von:: String getValue(String aPath, String aKey); oder so mit Angabe eines Default-Wertes, der zurückgegeben wird, wenn der Key nicht gefunden wird:: String getValue(String aPath, String aKey, String aDefaultValue); Daten schreiben *************** Das Schreiben eine einzelnen Wertes erfolgt über:: void setValue(String aPath, String aKey, String aValue); Einen komplett neuen Wert kann man auch mit folgender Methode schreiben. Dieses hat den Vorteil, dass auch die anderen Felder eines Records gesetzt werden können, z.B. der Beschreibung:: void addOrUpdateRecord(IDatapoolRecord aRecord, boolean aForce); Daten löschen ************* Einen einzelnen Wert kann mit folgender Methode gelöscht werden:: void remove(String aPath, String aKey); Folgende Methode entfernt alle Einträge eines Pfades, sowie auch die aller Unterverzeichnisse. Vorsicht!:: void remove(String aPath); Import ****** Der Inhalt einer Konfigurationsdatei (im XML-Format) lässt sich folgendermaßen importieren:: CResult importConfigFile(String aPath); Ist schon eine File verfügbar, geht es auch so:: void importXml(File aFile) throws CException; Statistik ********* Die Anzahl der Datensätze erhält man über:: int getCount(); Für einen bestimmten Pfad erhält man die Anzahl der Records über:: int getCount(String aPath); Listener/Observer ***************** Werte im Datenpool können beobachtet werden. Bei Änderung der Daten werden Messages verschickt, welche die Listener benachrichtigt. Die Anmeldung geschieht wie folgt:: IDatapool dp = getKernel().getDatapool(); dp.addListener("plugin/myapp", "mykey", getAddress()); Der Listener bekommt die Nachricht |CRecordNotifyDatapoolValueChanged|. Beim Startup des devel.one-Frameworks werden die Notifikationen abgeschaltet. Erst wenn das Framework vollständig gestartet wurde, werden die Notifikationen wieder ermöglicht. Das An- und Abschalten erfolgt über zwei Methoden:: boolean isNotificationEnabled(); void disableNotifications(); void enableNotifications(INamespace aNamespace) throws CException; Beim Einschalten der Notifikationen muss man noch einen Namespace mitgeben, da dort das entsprechende Datenpool-Target registriert wird. Debugging ********* Eine Liste aller Einträge im Format "Pfad/Key=Value" ist durch folgende Methode erhältlich:: Collection getDump(); Zum Loggen der Liste kann folgende Methode verwendet werden:: void dumpValues(Logger aLogger);