Klasse SortierungRegistry<T>

java.lang.Object
de.svws_nrw.module.reporting.sortierung.SortierungRegistry<T>
Typparameter:
T - Der Typ, der sortiert werden soll.

public final class SortierungRegistry<T> extends Object
Verwaltung erlaubter Attribute bzw. Attributspfade und Bereitstellung passender Comparatoren (inkl. Sortierrichtung) für die Sortierung von Reporting-Objekten. Mit dieser KLasse können Attributnamen (z. B. "nachname" oder "auswahlLernabschnitt.klasse.kuerzel") registriert werden und sie ordnet ihnen typsichere Wertermittlungsfunktionen (Extraktorfunktionen) zu. Zudem liefert sie für einen angefragten Attributnamen einen Comparator in gewünschter Richtung, basierend auf String-/Comparable-Vergleich (inkl. Null-Handling über Comparators). Die Namen werden beim Registrieren und Suchen normalisiert (trim + toLowerCase), Zugriff ist case-insensitiv. Hinweis: Sortierreihenfolgen werden über typsichere Funktionen (z. B. mit Sortierungsfunktion.start(...).then(...)) aufgebaut.
  • Konstruktordetails

    • SortierungRegistry

      public SortierungRegistry()
  • Methodendetails

    • registiereString

      public SortierungRegistry<T> registiereString(String attributName, Function<T,String> wertermittlungsfunktion)
      Registriert ein Attribut, das als String behandelt werden soll, in der Registry. Der gegebene Name wird normalisiert, und eine Funktion wird gespeichert, die den String-Wert aus einem Objekt extrahiert.
      Parameter:
      attributName - Der Name des Attributs, das registriert werden soll. Dieser wird normalisiert.
      wertermittlungsfunktion - Eine Funktion, die für ein gegebenes Objekt den entsprechenden String-Wert extrahiert.
      Gibt zurück:
      Die aktuelle Instanz der AttributeRegistry, um method chaining zu ermöglichen.
    • registiereComparable

      public SortierungRegistry<T> registiereComparable(String attributName, Function<T,? extends Comparable<?>> wertermittlungsfunktion)
      Registriert ein Attribut, das als Comparable behandelt werden soll, in der Registry. Der gegebene Name wird normalisiert, und eine Funktion wird gespeichert, die den vergleichbaren Wert aus einem Objekt extrahiert.
      Parameter:
      attributName - Der Name des Attributs, das registriert werden soll. Dieser wird normalisiert.
      wertermittlungsfunktion - Eine Funktion, die für ein gegebenes Objekt den entsprechenden vergleichbaren Wert extrahiert.
      Gibt zurück:
      Die aktuelle Instanz der AttributeRegistry, um method chaining zu ermöglichen.
    • attributeintragAsOptional

      public Optional<SortierungRegistry.Attributeintrag<T>> attributeintragAsOptional(String attributName)
      Sucht nach einem registrierten Attribut in der Registry anhand des übergebenen Namens. Der Name wird vor der Suche normalisiert. Falls ein entsprechender Eintrag gefunden wird, liefert die Methode ihn als Optional. Andernfalls wird ein leeres Optional zurückgegeben.
      Parameter:
      attributName - Der Name des Attributs, das gesucht wird. Dieser wird vor der Suche normalisiert.
      Gibt zurück:
      Ein Optional, das den Eintrag des gesuchten Attributs enthält, falls ein solcher existiert, oder ein leeres Optional, falls kein entsprechender Eintrag gefunden wurde.
    • unterstuetzteAttribute

      public Set<String> unterstuetzteAttribute()
      Gibt die Menge der unterstützten Attributnamen in der Registry zurück. Die Attributnamen sind die Schlüssel, die in der internen Datenstruktur gespeichert wurden.
      Gibt zurück:
      Ein unveränderliches Set von Strings, das die Namen der unterstützten Attribute enthält.
    • importiereRegistryEintraege

      public <P> void importiereRegistryEintraege(String prefix, SortierungRegistry<P> quellregistry, Function<T,P> quellwertermittlungsfunktion)
      Importiert Einträge aus einer Quell-Registry in die aktuelle Registry, indem Attribute mit entsprechend angegebenem Präfix ergänzt werden. Dabei werden die Attribute basierend auf ihrem Werttyp (z. B. STRING oder COMPARABLE) verarbeitet und registriert. So können bspw. alle Schülersortierungen in Registries, die ein Schülerobjekt enthalten, mit dem Prefix "schueler" importiert werden.
      Typparameter:
      P - Der Typ der Objekte in der Quell-Registry.
      Parameter:
      prefix - Das Präfix, das den Attributnamen der Quell-Registry hinzugefügt wird.
      quellregistry - Die Quell-Registry, deren Einträge importiert werden sollen. Wenn die Registry null ist, wird der Import abgebrochen.
      quellwertermittlungsfunktion - Eine Funktion, die den entsprechenden Quellwert für ein gegebenes Objekt in der Ziel-Registry ermittelt.
    • attributComparator

      public Optional<Comparator<T>> attributComparator(String attribut, boolean sortiereAufsteigend)
      Erstellt und gibt einen Comparator für ein bestimmtes Attribut zurück, falls das Attribut in der Registry registriert ist. Der Comparator kann entweder aufsteigend oder absteigend sortieren, je nach Wert des Parameters sortiereAufsteigend. Falls das Attribut nicht gefunden wird oder ungültig ist, wird ein leeres Optional zurückgegeben.
      Parameter:
      attribut - Der Name des Attributs, für das ein Comparator erstellt werden soll. Der Name darf nicht null oder leer sein.
      sortiereAufsteigend - Eine boolesche Angabe, ob die Sortierung aufsteigend (true) oder absteigend (false) sein soll.
      Gibt zurück:
      Ein Optional, das den Comparator für das angegebene Attribut enthält, falls das Attribut registriert ist. Ein leeres Optional, falls das Attribut nicht existiert oder ungültig ist.
    • methodeToString

      public <E, R> String methodeToString(SortierungRegistry.SerializableFunction<E,R> methodenreferenz)
      Hilfsmethode zur Ermittelung der Methodennamen als String einer übergebenen Methodenreferenz. Wird für die Attributnamen bei der Sortierung verwendet.
      Typparameter:
      E - Typ des Eingabeparameters der Funktion
      R - Rückgabetyp der Funktion
      Parameter:
      methodenreferenz - eine Methodenreferenz, z. B. ReportingKlasse::sortierung
      Gibt zurück:
      der Name der implementierenden Methode (z. B. "sortierung"). Bei einem Fehler wird ein leerer String zurückgegeben.