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.PromoUnitBerlakuDTO; import com.eksad.masterdata.domain.CreationalSpecification; import com.eksad.masterdata.domain.PromoUnitBerlaku; import java.util.ArrayList; import java.util.HashSet; import java.util.List; import java.util.Set; public class PromoUnitBerlakuAssembler implements IObjectAssembler<PromoUnitBerlaku, PromoUnitBerlakuDTO> { @Override public PromoUnitBerlakuDTO toDTO(PromoUnitBerlaku x) { return new PromoUnitBerlakuDTO( x.getPromoUnitBerlakuID(), x.getUnitCategoryID(), x.getUnitCategoryName(), x.getUnitSeriesID(), x.getUnitSeriesName(), x.getUnitTypeID(), x.getUnitTypeName(), x.getPromoID(), x.getPromoUnitBerlakuStatus(), x.getSource(), x.getPromoUnitBerlakuCreational() == null ? new CreationalSpecificationDTO() : new CreationalSpecificationDTOAssembler().toDTO(x.getPromoUnitBerlakuCreational())); } @Override public PromoUnitBerlaku toDomain(PromoUnitBerlakuDTO y) { return new PromoUnitBerlaku( y.getPromoUnitBerlakuID(), y.getUnitCategoryID(), y.getUnitCategoryName(), y.getUnitSeriesID(), y.getUnitSeriesName(), y.getUnitTypeID(), y.getUnitTypeName(), y.getPromoID(), y.getPromoUnitBerlakuStatus(), y.getSource(), y.getPromoUnitBerlakuCreationalDTO() == null ? new CreationalSpecification() : new CreationalSpecificationDTOAssembler().toDomain(y.getPromoUnitBerlakuCreationalDTO()) ); } public List<PromoUnitBerlakuDTO> toDTOs(Set<PromoUnitBerlaku> arg0) { List<PromoUnitBerlakuDTO> res = new ArrayList<>(); arg0.stream().filter(o -> DataStatus.ACTIVE.equals(o.getPromoUnitBerlakuStatus())).forEach((o) -> { res.add(toDTO(o)); }); return res; } public List<PromoUnitBerlakuDTO> toDTOs(List<PromoUnitBerlaku> arg0) { List<PromoUnitBerlakuDTO> res = new ArrayList<>(); arg0.stream().filter(o -> DataStatus.ACTIVE.equals(o.getPromoUnitBerlakuStatus())).forEach((o) -> { res.add(toDTO(o)); }); return res; } public Set<PromoUnitBerlaku> toDomains(List<PromoUnitBerlakuDTO> arg0) { Set<PromoUnitBerlaku> res = new HashSet<>(); arg0.stream().forEach((o) -> { res.add(toDomain(o)); }); return res; } }