package com.eksad.masterdata.domain.assembler; import com.eksad.ddms.common.dto.CreationalSpecificationDTO; import com.eksad.ddms.common.util.object.IObjectAssembler; import com.eksad.ddms.common.util.status.DataStatus; import com.eksad.masterdata.common.dto.PromoAreaDTO; import com.eksad.masterdata.domain.CreationalSpecification; import com.eksad.masterdata.domain.PromoArea; import java.util.*; public class PromoAreaAssembler implements IObjectAssembler<PromoArea, PromoAreaDTO> { @Override public PromoAreaDTO toDTO(PromoArea x) { return new PromoAreaDTO( x.getPromoAreaID(), x.getAreaID(), x.getAreaName(), x.getPromoID(), x.getPromoAreaStatus(), x.getPromoAreaCreational() == null ? new CreationalSpecificationDTO() : new CreationalSpecificationDTOAssembler().toDTO(x.getPromoAreaCreational()) ); } @Override public PromoArea toDomain(PromoAreaDTO y) { return new PromoArea( UUID.randomUUID().toString().substring(0, 8).toUpperCase(), y.getAreaID(), y.getAreaName(), y.getPromoID(), y.getPromoAreaStatus(), y.getPromoAreaCreationalDTO() == null ? new CreationalSpecification() : new CreationalSpecificationDTOAssembler().toDomain(y.getPromoAreaCreationalDTO()) ); } public List<PromoAreaDTO> toDTOs(Set<PromoArea> arg0) { List<PromoAreaDTO> res = new ArrayList<>(); arg0.stream().filter(o -> DataStatus.ACTIVE.equals(o.getPromoAreaStatus())).forEach((o) -> { res.add(toDTO(o)); }); return res; } public List<PromoAreaDTO> toDTOs(List<PromoArea> arg0) { List<PromoAreaDTO> res = new ArrayList<>(); arg0.stream().filter(o -> DataStatus.ACTIVE.equals(o.getPromoAreaStatus())).forEach((o) -> { res.add(toDTO(o)); }); return res; } public Set<PromoArea> toDomains(List<PromoAreaDTO> arg0) { Set<PromoArea> res = new HashSet<>(); arg0.stream().forEach((o) -> { res.add(toDomain(o)); }); return res; } }