All Downloads are FREE. Search and download functionalities are using the official Maven repository.

de.svws_nrw.data.DTOMapper Maven / Gradle / Ivy

Go to download

Diese Bibliothek unterstützt bei dem Zugriff auf Datenbanken für die Schulverwaltungssoftware in NRW

There is a newer version: 1.0.1
Show newest version
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;
	}

}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy