Package at.letto.tools
Class Listen
java.lang.Object
at.letto.tools.Listen
-
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionstatic <T extends IdEntity>
voidHinzufügen eines Elements mit einer ID.static <T extends IdEntity>
voidErsetzt in der ersten Liste alle Objekte mit Elementen aus der zweiten Liste, wo die IDs übereinstimmen (Wenn IDs passt, dann wird in der Liste change das Objekt mit der entsprechenden ID aus der Liste l2 ersetztstatic <T extends IdEntity>
ChangeLists<T> detectChanges
(List<T> save, List<T> orig, BiPredicate<T, T> eq) Ermittlung der Unterschiede von zwei Listen von Objektenstatic <T extends IdEntity,
T1 extends IdEntity>
ChangeLists<T> detectChanges
(List<T> save, List<T1> orig) Ermittlung von einzufügenden Objekten und zu Objekten, die zu löschen sind.static <T extends IdEntity>
TScuhen eines Elements in der Liste nach dessen IDstatic <T extends IdEntity>
Tstatic <T extends IdEntity>
intBestimmung des Indexes eines Objekts (IdEntity) in einer Listestatic <T extends IdEntity>
voidLöschen eines Objects mit IDstatic <T extends IdEntity>
voidLöschen von Objekten aus ListeremoveElementsNonUnique
(List<T> list, boolean first) Entfernen von Elementen, die den selben Unique-String haben.removeElementsNonUnique
(List<T> list, Function<T, String> unique, boolean first) Entfernen von Elementen, die den selben Unique-String haben ACHTUNG: Die URSPRUNGSLISTE wird NICHT verändert!removeElementsNonUniqueStatic
(List<T> list, Function<T, String> unique, boolean first) Entfernen von Elementen, die den selben Unique-String haben ACHTUNG: Die URSPRUNGSLISTE wird NICHT verändert!static <T extends IdEntity>
voidremoveNotContaing
(List<T> change, int id, Function<T, Integer> selId) Entfernen van allen Listen-Elementen, wo eine ID nicht passend iststatic <T extends IdEntity>
voidsortColumn
(List<T> list) static <T extends IdEntity>
voidsortColumn
(List<T> list, BiConsumer<T, Integer> setter) Nachtragen einer SortColumn im Objekt aufgrund der aktuellen ReihenfolgesqlUpdateSort
(List<T> list, Function<T, Integer> getter) Sortierung einer Liste in der Datenbank: Methode liefert ids und sort-Order für spätere Update-Querystatic <T> List
<T> vereinigungsmenge
(List<T> list1, List<T> list2)
-
Constructor Details
-
Listen
public Listen()
-
-
Method Details
-
change
Ersetzt in der ersten Liste alle Objekte mit Elementen aus der zweiten Liste, wo die IDs übereinstimmen (Wenn IDs passt, dann wird in der Liste change das Objekt mit der entsprechenden ID aus der Liste l2 ersetzt- Type Parameters:
T
- Objekte der Listen müssen Interface IdEntity implementiert haben- Parameters:
change
- zu ändernde ListenewVals
- Liste mit geänderten DTOs, die und andere Liste gespeichert werden sollen
-
remove
Löschen von Objekten aus Liste- Type Parameters:
T
- Interface IdEntity: Klasse muss Getter mit getId() haben- Parameters:
change
- Liste, aus der gelöscht werden solldel
- zu löschende Elemente
-
removeNotContaing
public static <T extends IdEntity> void removeNotContaing(List<T> change, int id, Function<T, Integer> selId) Entfernen van allen Listen-Elementen, wo eine ID nicht passend ist- Type Parameters:
T
- Elemented der Liste müssen Interface IdEntity implementiert haben- Parameters:
change
- List, die geändert/kontrolliert werden sollid
- ID, die erfüllt sein mussselId
- Getter-Methode des Objekts, die die zu kontrollierende ID liefert
-
remove
Löschen eines Objects mit ID- Type Parameters:
T
- Interface IdEntity: Klasse muss Getter mit getId() haben- Parameters:
change
- Liste, aus der gelöscht werden solll2
- zu löschendes Element
-
indexOf
Bestimmung des Indexes eines Objekts (IdEntity) in einer Liste- Type Parameters:
T
- Typ generisch- Parameters:
list
- Zu durchsuchende Liste von DTOsid
- ID, die gesucht wird- Returns:
- Index oder -1, wenn die ID nicht gefunden wurde
-
add
Hinzufügen eines Elements mit einer ID. Die ID in der Liste soll eindeutig sein. Deswegen wird bei gleicher ID das Element ersetzt, sonst hibzugefügt.- Type Parameters:
T
- Typ generisch- Parameters:
list
- List, zu der Element hinzugefügt wirditem
- Neuer Eintrag (Änderung oder neu)
-
get
Scuhen eines Elements in der Liste nach dessen ID- Type Parameters:
T
- Typ generisch- Parameters:
list
- Zu suchende Listeid
- ID des DTO-Objekts- Returns:
- gefundenes Listenelement oder null
-
get
-
detectChanges
public static <T extends IdEntity> ChangeLists<T> detectChanges(List<T> save, List<T> orig, BiPredicate<T, T> eq) Ermittlung der Unterschiede von zwei Listen von Objekten- Type Parameters:
T
- Klasse mit implementiertem Interface IdEntity (getId)- Parameters:
save
- Liste mit Objekten, die gespeichert gehörenorig
- Original-Liste, meistens Liste mit DTOs aus Datebnbank geladeneq
- Optional: BiPredicate-Funktion zum Vergleich von Objekten, ob im DTO eine Änderung erfolgte ist eq null, dann wird equals zurm Vergleich herangezogen- Returns:
- 3 Listen (add, del und change), geben an welche DTOs in DB hinzugefügt, gelöscht oder geändert werden sollen
-
detectChanges
public static <T extends IdEntity,T1 extends IdEntity> ChangeLists<T> detectChanges(List<T> save, List<T1> orig) Ermittlung von einzufügenden Objekten und zu Objekten, die zu löschen sind. Es erfolgt keine Gleichheitsprüfung. Die Listen können unterschiedliche Datentypen enthalten, verglichen werden die IDs der Objekte. (Alle Objekte müssen IdEntity implementiert haben!)- Type Parameters:
T
- Klasse mit implementiertem Interface IdEntity (getId)T1
- Klasse mit implementiertem Interface IdEntity (getId)- Parameters:
save
- Liste mit Objekten, die gespeichert gehörenorig
- Original-Liste, die an save angepasst werden soll- Returns:
- 3 Listen (add, del und change), geben an welche DTOs in DB hinzugefügt, gelöscht oder geändert werden sollen
-
removeElementsNonUnique
Entfernen von Elementen, die den selben Unique-String haben. ACHTUNG: Die URSPRUNGSLISTE wird NICHT verändert!- Type Parameters:
T
- Elemnte der Liste müssen das Interface Unique implementiert haben: Liefert einen String mit dem Unique-Beuzeichner, der eindeutig sein soll- Parameters:
list
- Zu bearbeitende Listefirst
- true: das erste gefundene Element bleibt erhalten, sonst das letzte- Returns:
- Liste mit Objekten, wobei alle mehrdeutigkeiten entfernt wurden
-
removeElementsNonUniqueStatic
public static <T extends IdEntity> List<T> removeElementsNonUniqueStatic(List<T> list, Function<T, String> unique, boolean first) Entfernen von Elementen, die den selben Unique-String haben ACHTUNG: Die URSPRUNGSLISTE wird NICHT verändert!- Type Parameters:
T
- Elemnte der Liste müssen das Interface Unique implementiert haben: Liefert einen String mit dem Unique-Beuzeichner, der eindeutig sein soll- Parameters:
list
- Zu bearbeitende Listeunique
- Statische Funktion mit Parameter IdEntity: Function-Interface, das aus dem Objekt einen UNIQUE-String zurückgibt, der eindeutig sein muss.first
- true: das erste gefundene Element bleibt erhalten, sonst das letzte- Returns:
- Liste mit Objekten, wobei alle mehrdeutigkeiten entfernt wurden
-
removeElementsNonUnique
public static <T extends IdEntity> List<T> removeElementsNonUnique(List<T> list, Function<T, String> unique, boolean first) Entfernen von Elementen, die den selben Unique-String haben ACHTUNG: Die URSPRUNGSLISTE wird NICHT verändert!- Type Parameters:
T
- Elemnte der Liste müssen das Interface Unique implementiert haben: Liefert einen String mit dem Unique-Beuzeichner, der eindeutig sein soll- Parameters:
list
- Zu bearbeitende Listeunique
- Function-Interface (Instanzmethode), das aus dem Objekt einen UNIQUE-String zurückgibt, der eindeutig sein mussfirst
- true: das erste gefundene Element bleibt erhalten, sonst das letzte- Returns:
- Liste mit Objekten, wobei alle mehrdeutigkeiten entfernt wurden
-
sqlUpdateSort
Sortierung einer Liste in der Datenbank: Methode liefert ids und sort-Order für spätere Update-Query- Type Parameters:
T
- Typ generisch- Parameters:
list
- sortierte Listegetter
- Getter auf Sortierungsspalte- Returns:
- String mit ids und sortOrter in der Form (id1, sort1),(id2,sort2),....
-
sortColumn
Nachtragen einer SortColumn im Objekt aufgrund der aktuellen Reihenfolge- Type Parameters:
T
- Typ generisch- Parameters:
list
- sortierte Listesetter
- Methodenreferenz auf Setter der sortColumn
-
vereinigungsmenge
-
sortColumn
-