Klasse SortierungRegistry<T>
java.lang.Object
de.svws_nrw.module.reporting.sortierung.SortierungRegistry<T>
- Typparameter:
T
- Der Typ, der sortiert werden soll.
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.
-
Verschachtelte Klassen - Übersicht
Verschachtelte KlassenModifizierer und TypKlasseBeschreibungstatic final record
Repräsentiert einen Eintrag in derAttributeRegistry
, der ein Attribut beschreibt.static interface
Functional Interface für serialisierbare Methodenreferenzen, damit der Methodenname über eine SerializedLambda ermittelt werden kann.static enum
Kennzeichnet den Typ der registrierten Werte (String vs. -
Konstruktorübersicht
Konstruktoren -
Methodenübersicht
Modifizierer und TypMethodeBeschreibungattributComparator
(String attribut, boolean sortiereAufsteigend) Erstellt und gibt einenComparator
für ein bestimmtes Attribut zurück, falls das Attribut in der Registry registriert ist.attributeintragAsOptional
(String attributName) Sucht nach einem registrierten Attribut in der Registry anhand des übergebenen Namens.<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.<E,
R> String methodeToString
(SortierungRegistry.SerializableFunction<E, R> methodenreferenz) Hilfsmethode zur Ermittelung der Methodennamen als String einer übergebenen Methodenreferenz.registiereComparable
(String attributName, Function<T, ? extends Comparable<?>> wertermittlungsfunktion) Registriert ein Attribut, das alsComparable
behandelt werden soll, in der Registry.registiereString
(String attributName, Function<T, String> wertermittlungsfunktion) Registriert ein Attribut, das als String behandelt werden soll, in der Registry.Gibt die Menge der unterstützten Attributnamen in der Registry zurück.
-
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 alsComparable
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 alsOptional
. Andernfalls wird ein leeresOptional
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 leeresOptional
, falls kein entsprechender Eintrag gefunden wurde.
-
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
Erstellt und gibt einenComparator
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 ParameterssortiereAufsteigend
. Falls das Attribut nicht gefunden wird oder ungültig ist, wird ein leeresOptional
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 denComparator
für das angegebene Attribut enthält, falls das Attribut registriert ist. Ein leeresOptional
, falls das Attribut nicht existiert oder ungültig ist.
-
methodeToString
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 FunktionR
- 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.
-