43 lines
1.3 KiB
Java
43 lines
1.3 KiB
Java
package fr.istic.taa.jaxrs.Mapper;
|
|
|
|
import fr.istic.taa.jaxrs.DTO.SessionDTO;
|
|
import fr.istic.taa.jaxrs.metier.Quizz;
|
|
import fr.istic.taa.jaxrs.metier.Session;
|
|
|
|
import fr.istic.taa.jaxrs.metier.Utilisateur;
|
|
import org.mapstruct.Mapper;
|
|
import org.mapstruct.Mapping;
|
|
import org.mapstruct.factory.Mappers;
|
|
|
|
import java.util.ArrayList;
|
|
import java.util.List;
|
|
|
|
@Mapper
|
|
public interface SessionMapper {
|
|
SessionMapper INSTANCE = Mappers.getMapper( SessionMapper.class );
|
|
|
|
@Mapping(target="utilisateursId",expression="java(function_mapU(session.getUtilisateurs()))")
|
|
@Mapping(target="quizzsId",expression="java(function_mapQ(session.getQuizzs()))")
|
|
SessionDTO toDTO(Session session);
|
|
Session toEntity(SessionDTO sessionDTO);
|
|
|
|
List<SessionDTO> toDTOs(List<Session> sessions);
|
|
|
|
//https://www.baeldung.com/mapstruct-map-source-object-target-list
|
|
default List<Integer> function_mapU(List<Utilisateur> utilisateurList) {
|
|
List<Integer> result = new ArrayList<>();
|
|
for (Utilisateur utilisateur : utilisateurList) {
|
|
result.add(utilisateur.getId());
|
|
}
|
|
return result;
|
|
}
|
|
|
|
default List<Integer> function_mapQ(List<Quizz> quizzList) {
|
|
List<Integer> result = new ArrayList<>();
|
|
for (Quizz quizz : quizzList) {
|
|
result.add(quizz.getId());
|
|
}
|
|
return result;
|
|
}
|
|
}
|