Klasse FunktionBuilder
java.lang.Object
de.svws_nrw.module.reporting.sortierung.FunktionBuilder
Die Klasse FunktionenBuilder stellt Methoden zur Verfügung, um Transformationen
und Verarbeitungsschritte für Wertermittlungsfunktionen bei der Sortierung zu erzeugen.
Diese Klasse ist nicht instanziierbar und dient ausschließlich als Utility-Klasse.
Mit ihr können null-sichere Verarbeitungsfunktionen erstellt und verkettet werden.
-
Verschachtelte Klassen - Übersicht
Verschachtelte KlassenModifizierer und TypKlasseBeschreibungstatic final record
Die Klasse Sortierschritt dient als Baustein für die Erstellung einer transformierenden Sortierlogik. -
Methodenübersicht
Modifizierer und TypMethodeBeschreibungstatic <T,
R> Function <T, R> firstNonNull
(Function<T, R>... alternativfunktionen) Nimmt eine Reihe von Funktionen und versucht, den ersten nicht-null
Rückgabewert zurückzugeben, den eine der Funktionen liefert.static <T> FunktionBuilder.Teilfunktion
<T, T> identity()
Gibt eine neue Teilfunktion für eine zusammengesetze Wertermittlungsfunktion bei der Sortierung zurück.static <T,
A> FunktionBuilder.Teilfunktion <T, A> Startet einen null-sicheren Sortierpfad mit einer ersten Getter-/Extraktionsfunktion.
-
Methodendetails
-
identity
Gibt eine neue Teilfunktion für eine zusammengesetze Wertermittlungsfunktion bei der Sortierung zurück. Diese kapselt die Identitätsfunktion. Diese Funktion gibt den Eingabewert unverändert zurück.- Typparameter:
T
- Der Typ des Eingabewerts und des Rückgabewerts- Gibt zurück:
- Ein neuer Sortierschritt, der die Identitätsfunktion repräsentiert
-
start
Startet einen null-sicheren Sortierpfad mit einer ersten Getter-/Extraktionsfunktion. Dies ist der Einstiegspunkt für verschachtelte Sortierkriterien. Ab hier können weitere Getter mit then(...) angehängt werden (z. B. auswahlLernabschnitt → klasse → kuerzel). Ist das Eingabeobjekt null, liefert der Pfad null als Sortierschlüssel, wodurch der Comparator (z. B. nullsLast) das finale Verhalten bestimmt. Beispiel: Comparatorcmp = Comparator.comparing(Sortierungsfunktion.start(Schueler::auswahlLernabschnitt).then(Lernabschnitt::klasse).then(Klasse::kuerzel).toFunction(), Comparator.nullsLast(deutscherCollator)); - Typparameter:
T
- Der Typ des Eingabeobjekts der TransformationA
- Der Typ des Ausgabeobjekts nach der Transformations- Parameter:
f1
- Erste Getter-/Transformationsfunktion (z. B. obj -> obj.getAuswahlLernabschnitt())- Gibt zurück:
- Ein neuer Sortierschritt, der die angegebene Transformation null-sicher ausführt
-
firstNonNull
Nimmt eine Reihe von Funktionen und versucht, den ersten nicht-null
Rückgabewert zurückzugeben, den eine der Funktionen liefert. Falls alle Funktionennull
zurückgeben, wirdnull
zurückgegeben. Beispiel: registry.registiereString("klasseMitFallback", FunktionBuilder.firstNonNull( FunktionBuilder.start(ReportingSchueler::auswahlLernabschnitt) .then(ReportingSchuelerLernabschnitt::klasse) .then(ReportingKlasse::kuerzel) .toFunction(), FunktionBuilder.start(ReportingSchueler::aktuellerLernabschnitt) .then(ReportingSchuelerLernabschnitt::klasse) .then(ReportingKlasse::kuerzel) .toFunction())- Typparameter:
T
- Der Typ des Eingabewerts, den die Funktionen akzeptierenR
- Der Typ des Rückgabewerts, den die Funktionen liefern- Parameter:
alternativfunktionen
- Die Funktionen, die nacheinander ausgewertet werden, bis eine Funktion einen nicht-null
Rückgabewert liefert- Gibt zurück:
- Eine Funktion, die den ersten nicht-
null
Rückgabewert der gegebenen Funktionen zurückgibt odernull
, falls alle Funktionennull
zurückgeben
-