Package pi.config

Class ConfigLoader

java.lang.Object
pi.config.ConfigLoader
Direct Known Subclasses:
EngineConfiguration

public class ConfigLoader extends Object
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 Details

    • ConfigLoader

      public ConfigLoader(String path, ConfigGroup... configurationGroups)
      Erstellt eine neue Instanz der Klasse ConfigLoader mit dem angegebenen Dateinamen. Dieser Konstruktor wandelt den übergebenen Dateinamen-String in ein Path-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

      public ConfigLoader(Path path, ConfigGroup... configurationGroups)
      Erstellt eine neue Instanz der Klasse ConfigLoader.
      Parameters:
      path - Der Pfad der Datei, aus der die Einstellungen geladen werden.
      configurationGroups - Die von dieser Instanz verwalteten Konfigurationsgruppen.
  • Method Details

    • path

      @Getter public Path 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

      @Getter public List<ConfigGroup> groups()
      Gibt alle Konfigurationsgruppen zurück.
      Returns:
      Alle Konfigurationsgruppen.
    • addGroup

      public void addGroup(ConfigGroup... groups)
      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 die properties-Datei gespeichert werden sollen.

      Parameters:
      groups - Die Konfigurationsgruppen, die zu dieser Konfigurationsinstanz hinzugefügt werden sollen.
    • getGroup

      public <T extends ConfigGroup> T getGroup(Class<T> groupClass)
      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

      public ConfigGroup getGroup(String prefix)
      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

      public void removeListener(ConfigurationChangedListener listener)
      Entfernt den angegebenen Beobachter von allen Konfigurationsgruppen.
      Parameters:
      listener - Der zu entfernende Beobachter.
      See Also: