de.svws_nrw.data.DTOMapper Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of svws-db-utils Show documentation
Show all versions of svws-db-utils Show documentation
Diese Bibliothek unterstützt bei dem Zugriff auf Datenbanken für die Schulverwaltungssoftware in NRW
package de.svws_nrw.data;
import java.util.ArrayList;
import java.util.Collection;
import java.util.List;
import de.svws_nrw.db.utils.ApiOperationException;
/**
* Das funktionale Interface für ein einfaches DTO-Mapping
*
* @param der DB-DTO-Typ
* @param der Core-DTO-Typ
*/
@FunctionalInterface
public interface DTOMapper {
/**
* Applies this function to the given argument.
*
* @param t the function argument
* @return the function result
*
* @throws ApiOperationException im Fehlerfall
*/
R apply(T t) throws ApiOperationException;
/**
* Führt ein Mapping von den DB-DTOs vom Typ D auf die Core-DTOs vom Typ C auf alle
* DB-DTOs der übergebenen Collection durch und gibt die Ergebnisse in einer Liste zurück.
*
* @param der DB-DTO-Typ
* @param der Core-DTO-Typ
* @param dtoCollection die Collection der DB-DTOs
* @param mapper der dto-Mapper
*
* @return die Liste der Core-DTOs
*
* @throws ApiOperationException im Fehlerfall
*/
static List mapList(final Collection dtoCollection, final DTOMapper mapper) throws ApiOperationException {
final List daten = new ArrayList<>();
for (final D dto : dtoCollection)
daten.add(mapper.apply(dto));
return daten;
}
}