Files
tpjpa/src/main/java/fr/istic/taa/jaxrs/Mapper/SessionMapper.java
2025-10-02 14:03:25 +02:00

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;
}
}