Package pi.config
Class ConfigLoader
java.lang.Object
pi.config.ConfigLoader
- Direct Known Subclasses:
EngineConfiguration
Eine Konfigurationsklasse, die mehrere Konfigurationsgruppen verwaltet
und das Laden und Speichern von Einstellungen übernimmt.
- Since:
- 0.42.0
- Author:
- Steffen Wilke, Matthias Wilke, Josef Friedrich
-
Constructor Summary
ConstructorsConstructorDescriptionConfigLoader(String path, ConfigGroup... configurationGroups) Erstellt eine neue Instanz der KlasseConfigLoadermit dem angegebenen Dateinamen.ConfigLoader(Path path, ConfigGroup... configurationGroups) Erstellt eine neue Instanz der KlasseConfigLoader. -
Method Summary
Modifier and TypeMethodDescriptionvoidaddGroup(ConfigGroup... groups) Fügt die angegeben Konfigurationsgruppen zu dieser Konfigurationsinstanz hinzu.voidLöscht die Konfigurationsdatei, falls sie existiert.<T extends ConfigGroup>
TGibt die typisierte Konfigurationsgruppe zurück, sofern sie zuvor zur Konfiguration hinzugefügt wurde.Ruft eine Konfigurationsgruppe basierend auf ihrem Präfix ab.groups()Gibt alleKonfigurationsgruppenzurück.voidload()Lädt die Konfiguration aus der Datei im Anwendungsordner.onChanged(ConfigurationChangedListener listener) Fügt den angegebenen Beobachter, der Ereignisse über geänderte Konfigurationseigenschaften empfängt, zu allen Konfigurationsgruppen hinzu.path()Ruft den Pfad der Datei ab, in der diese Konfiguration gespeichert ist.voidremoveListener(ConfigurationChangedListener listener) Entfernt den angegebenen Beobachter von allen Konfigurationsgruppen.voidsave()Speichert diese Konfiguration in eine Datei mit dem für diese Instanz festgelegten Namen (engine-pi.properties ist die Standard-Konfigurationsdatei der Engine).
-
Constructor Details
-
ConfigLoader
Erstellt eine neue Instanz der KlasseConfigLoadermit dem angegebenen Dateinamen. Dieser Konstruktor wandelt den übergebenen Dateinamen-String in einPath-Objekt um und delegiert die Initialisierung an einen anderen Konstruktor.- Parameters:
path- Der Pfad der Datei, aus der die Einstellungen geladen werden.configurationGroups- Die von dieser Instanz verwalteten Konfigurationsgruppen.
-
ConfigLoader
Erstellt eine neue Instanz der KlasseConfigLoader.- Parameters:
path- Der Pfad der Datei, aus der die Einstellungen geladen werden.configurationGroups- Die von dieser Instanz verwalteten Konfigurationsgruppen.
-
-
Method Details
-
path
Ruft den Pfad der Datei ab, in der diese Konfiguration gespeichert ist.- Returns:
- Der Pfad zur Konfigurationsdatei.
- See Also:
-
load
public void load()Lädt die Konfiguration aus der Datei im Anwendungsordner.Ist keine Konfigurationsdatei vorhanden, wir einen neue Datei erstellt.
- Throws:
pi.config.ConfigException- Wenn das Laden der Konfigurationsdatei fehlgeschlagen ist.
-
save
public void save()Speichert diese Konfiguration in eine Datei mit dem für diese Instanz festgelegten Namen (engine-pi.properties ist die Standard-Konfigurationsdatei der Engine).- Throws:
pi.config.ConfigException- Wenn das Speichern der Konfigurationsdatei fehlgeschlagen ist.
-
deleteConfigFile
public void deleteConfigFile()Löscht die Konfigurationsdatei, falls sie existiert.Diese Methode versucht, die Konfigurationsdatei unter dem durch
path()definierten Pfad zu löschen. Falls die Datei nicht existiert, wird keine Aktion durchgeführt.- Throws:
pi.config.ConfigException- falls beim Löschen der Datei ein Fehler auftritt
-
groups
Gibt alleKonfigurationsgruppenzurück.- Returns:
- Alle Konfigurationsgruppen.
-
addGroup
Fügt die angegeben Konfigurationsgruppen zu dieser Konfigurationsinstanz hinzu.Eine bereits vorhandene
properties-Datei wird dabei geladen.save()muss jedoch manuell ausgeführt werden, falls aktualisierte Werte in dieproperties-Datei gespeichert werden sollen.- Parameters:
groups- Die Konfigurationsgruppen, die zu dieser Konfigurationsinstanz hinzugefügt werden sollen.
-
getGroup
Gibt die typisierte Konfigurationsgruppe zurück, sofern sie zuvor zur Konfiguration hinzugefügt wurde.- Type Parameters:
T- Der Typ der Konfigurationsgruppe.- Parameters:
groupClass- Die Klasse, die den generischen Typ für diese Methode bereitstellt.- Throws:
pi.config.ConfigException- wenn die Konfigurationsgruppe mit dem angegebenen Präfix gefunden wird.
-
getGroup
Ruft eine Konfigurationsgruppe basierend auf ihrem Präfix ab.- Parameters:
prefix- Das Präfix der gesuchten Konfigurationsgruppe- Returns:
- Die gefundene
ConfigGroup - Throws:
pi.config.ConfigException- wenn keine Konfigurationsgruppe mit dem angegebenen Präfix gefunden wird.
-
onChanged
Fügt den angegebenen Beobachter, der Ereignisse über geänderte Konfigurationseigenschaften empfängt, zu allen Konfigurationsgruppen hinzu.Das Ereignis wird für jede Eigenschaft unterstützt, die die Methode
ConfigGroup.set(String, Object)zum Setzen des Feldwerts verwendet.Das Ereignis liefert den Feldnamen des aufgerufenen Setters (z.B. "debug" für den Aufruf von "debug()").
- Parameters:
listener- Der hinzuzufügende Beobachter.- Returns:
- Der hinzugefügte Beobachter. Falls der Beobachter als
Lambda-Funktion angegeben wird, dann kann er mit diesem Rückgabewert
in eine Variable bzw. Attirubte gespeichert werden. Dieser kann dann
mit der
removeListener(ConfigurationChangedListener)-Methode entfernt werden. - See Also:
-
removeListener
Entfernt den angegebenen Beobachter von allen Konfigurationsgruppen.- Parameters:
listener- Der zu entfernende Beobachter.- See Also:
-