Package pi.config

Class ConfigGroup

java.lang.Object
pi.config.ConfigGroup
Direct Known Subclasses:
CoordinatesystemConfig, DebugConfig, GameConfig, GraphicsConfig, MyConfigGroup, SoundConfig

public abstract class ConfigGroup extends Object
Diese Klasse enthält grundlegende Funktionalität für alle Einstellungsgruppen.

Sie liest die ConfigGroupInfo-Annotation aus und ermittelt den Präfix, der beim Lesen und Schreiben der Einstellungen in eine Properties-Datei verwendet wird.

Since:
0.42.0
Author:
Steffen Wilke, Matthias Wilke
  • Constructor Details

    • ConfigGroup

      protected ConfigGroup()
      Erstellt eine neue Instanz der Klasse ConfigGroup.
  • Method Details

    • onChanged

      Fügt den angegebenen Beobachter, der Ereignisse über geänderte Konfigurationseigenschaften empfängt, hinzu.

      Das Ereignis wird für jede Eigenschaft unterstützt, die die Methode 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.
      Parameters:
      listener - Der zu entfernende Beobachter.
    • prefix

      @Getter public String prefix()
      Gibt den Präfix der Konfigurationsgruppe zurück.
      Returns:
      Der Präfix der Konfigurationsgruppe, oder ein leerer String, falls der Präfix null ist.
    • initializeByProperty

      protected void initializeByProperty(String key, String value)
      Initialisiert eine Eigenschaft anhand ihres Schlüssels und Werts.
      Parameters:
      key - Der Schlüssel der Eigenschaft.
      value - Der Wert der Eigenschaft.
    • storeProperties

      protected void storeProperties(Properties properties)
      Speichert die Eigenschaften. Standardmäßig werden folgende Typen unterstützt: boolean, int, double, float, String und Enum-Werte. Für andere Objekte sollte diese Methode sowie initializeByProperty(String, String) überschrieben und ein eigener Ansatz implementiert werden.
      Parameters:
      properties - Die zu befüllenden Properties.
    • set

      protected <T> void set(String fieldName, T value)
      Setzt eine Konfigurationseigenschaft und löst dabei das configurationChanged-Ereignis aus.
      Type Parameters:
      T - Der Typ des zu setzenden Werts.
      Parameters:
      fieldName - Der Name des zu setzenden Felds.
      value - Der zu setzende Wert.