package com.megatim.fdxconsultation.core.impl.stats; import com.megatim.fdxcommons.model.dtos.referentiel.ReferentielSlimDto; import com.megatim.fdxcommons.model.dtos.referentiel.TypeFichierSlimDto; import com.megatim.fdxcommons.model.referentiel.Referentiel; import com.megatim.fdxcommons.model.referentiel.TypeFichier; import com.megatim.fdxconsultation.model.stats.TableauBord; import com.megatim.fdxconsultation.model.stats.dto.TableConfigurationResponse; import com.megatim.fdxconsultation.model.stats.dto.TableauBordFlatResponse; import com.megatim.fdxconsultation.model.stats.dto.TableauBordResponse; import java.util.Set; import java.util.stream.Collectors; /** * * @author Gabuntu */ public class ConvertedTableauBordResponse { private final TableauBord tableauBord; public ConvertedTableauBordResponse(TableauBord tableauBord) { this.tableauBord = tableauBord; } public TableauBordResponse tableauBordResponse() { TableauBordResponse tableauBordResponse = new TableauBordResponse( tableauBord.getDescription(), typeFichierSlimDto(tableauBord.getTypeFichier()), referentielSlimDto(tableauBord.getReferentiel()), tableauBord.getTypeConfiguration(), tableConfigurationResponses() ); return tableauBordResponse; } public TableauBordFlatResponse tableauBordFlatResponse() { TableauBordFlatResponse tableauBordFlatResponse = new TableauBordFlatResponse( tableauBord.getDescription(), typeFichierSlimDto(tableauBord.getTypeFichier()), referentielSlimDto(tableauBord.getReferentiel()), tableauBord.getTypeConfiguration() ); return tableauBordFlatResponse; } private Set tableConfigurationResponses() { return tableauBord.getTableConfigurations() .stream() .map(t -> new ConvertedTableConfigurationResponse(t).tableConfigurationResponse()) .collect(Collectors.toSet()); } private TypeFichierSlimDto typeFichierSlimDto(TypeFichier typeFichier) { TypeFichierSlimDto typeFichierSlimDto = new TypeFichierSlimDto(); typeFichierSlimDto.setCategorieFichier(typeFichier.getCategorieFichier()); typeFichierSlimDto.setCode(typeFichier.getCode()); typeFichierSlimDto.setDescription(typeFichier.getDescription()); typeFichierSlimDto.setLibelle(typeFichier.getLibelle()); typeFichierSlimDto.setCreateBy(typeFichier.getCreateBy()); typeFichierSlimDto.setDateCreation(typeFichier.getDateCreation()); typeFichierSlimDto.setLastModifiedBy(typeFichier.getLastModifiedBy()); typeFichierSlimDto.setDateMiseAjour(typeFichier.getDateMiseAjour()); return typeFichierSlimDto; } private ReferentielSlimDto referentielSlimDto(Referentiel referentiel) { ReferentielSlimDto referentielSlimDto = new ReferentielSlimDto(); referentielSlimDto.setVersion(referentiel.getVersion()); referentielSlimDto.setDateGeneration(referentiel.getDateGeneration()); referentielSlimDto.setStatutReferentiel(referentiel.getStatutReferentiel()); referentielSlimDto.setDescription(referentiel.getDescription()); referentielSlimDto.setCreateBy(referentiel.getCreateBy()); referentielSlimDto.setDateCreation(referentiel.getDateCreation()); referentielSlimDto.setLastModifiedBy(referentiel.getLastModifiedBy()); referentielSlimDto.setDateMiseAjour(referentiel.getDateMiseAjour()); return referentielSlimDto; } }