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 toDTOs(List sessions); //https://www.baeldung.com/mapstruct-map-source-object-target-list default List function_mapU(List utilisateurList) { List result = new ArrayList<>(); for (Utilisateur utilisateur : utilisateurList) { result.add(utilisateur.getId()); } return result; } default List function_mapQ(List quizzList) { List result = new ArrayList<>(); for (Quizz quizz : quizzList) { result.add(quizz.getId()); } return result; } }