package com.eksad.masterdata.domain.assembler; import com.eksad.ddms.common.util.object.IObjectAssembler; import com.eksad.masterdata.common.dto.CreationalSpecificationDTO; import com.eksad.masterdata.common.dto.PODealerDTO; import com.eksad.masterdata.common.dto.PODealerDetailDTO; import com.eksad.masterdata.domain.PODealer; import com.eksad.masterdata.domain.PODealerDetail; import java.util.ArrayList; import java.util.HashSet; import java.util.List; import java.util.Set; public class PODealerAssembler implements IObjectAssembler<PODealer, PODealerDTO> { @Override public PODealerDTO toDTO(PODealer domainObject) { PODealerDTO dto = new PODealerDTO(); dto.setPoNumber(domainObject.getPoNumber()); dto.setPoDate(domainObject.getPoDate()); dto.setCustomerID(domainObject.getCustomerID()); dto.setDealerID(domainObject.getDealerID()); dto.setPoType(domainObject.getPoType()); dto.setTotalPart(domainObject.getTotalPart()); dto.setTotalQuantity(domainObject.getTotalQuantity()); dto.setPpn(domainObject.getPpn()); dto.setFinalPrice(domainObject.getFinalPrice()); dto.setPoDealerLastKnowState(domainObject.getPoDealerLastKnownState()); dto.setRefNumber(domainObject.getRefNumber()); dto.setDealerDestination(domainObject.getDealerDestination()); dto.setPoDealerCreationalDTO( domainObject.getPoDealerCreational() == null ? new CreationalSpecificationDTO() : new CreationalSpecificationDTOAssembler().toDTO(domainObject.getPoDealerCreational())); dto.setPoDealerDetailDTOs(new ArrayList(domainObject.getPoDealerDetails())); dto.setDraftNumber(domainObject.getDraftNumber()); dto.setUploadPO(domainObject.getUploadPO()); dto.setVersion(domainObject.getVersion()); dto.setPosServiceID(domainObject.getPosServiceID()); return dto; } @Override public PODealer toDomain(PODealerDTO dtoObject) { PODealer data = new PODealer(); data.setPoNumber(dtoObject.getPoNumber()); data.setPoDate(dtoObject.getPoDate()); data.setCustomerID(dtoObject.getCustomerID()); data.setDealerID(dtoObject.getDealerID()); data.setPoType(dtoObject.getPoType()); data.setTotalPart(dtoObject.getTotalPart()); data.setTotalQuantity(dtoObject.getTotalQuantity()); data.setTotalPrice(dtoObject.getTotalPrice()); data.setPpn(dtoObject.getPpn()); data.setFinalPrice(dtoObject.getFinalPrice()); data.setPoDealerLastKnownState(dtoObject.getPoDealerLastKnowState()); data.setPoDealerCreational( dtoObject.getPoDealerCreationalDTO() == null ? new CreationalSpecificationDTOAssembler().toDomain(new CreationalSpecificationDTO().getInstance()) : new CreationalSpecificationDTOAssembler().toDomain(dtoObject.getPoDealerCreationalDTO())); data.setPoDealerDetails(new HashSet<>(this.toDetailDomains(dtoObject.getPoDealerDetailDTOs()))); data.setRefNumber(dtoObject.getRefNumber()); data.setDealerDestination(dtoObject.getDealerDestination()); data.setDraftNumber(dtoObject.getDraftNumber()); data.setUploadPO(dtoObject.getUploadPO()); data.setVersion(dtoObject.getVersion()); data.setPosServiceID(dtoObject.getPosServiceID()); return data; } private PODealerDetailDTO toDTO(PODealerDetail domain) { PODealerDetailDTO dto = new PODealerDetailDTO(); dto.setPartID(domain.getPartID()); dto.setPoCustomerID(domain.getPoCustomerID()); dto.setQuantity(domain.getQuantity()); dto.setPrice(domain.getPrice()); dto.setDiscount(domain.getDiscount()); dto.setPoDealerDetailStatus(domain.getPoDealerDetailStatus()); dto.setPoDealerDetailCreationalDTO( domain.getPoDealerDetailCreational() == null ? new CreationalSpecificationDTO() : new CreationalSpecificationDTOAssembler().toDTO(domain.getPoDealerDetailCreational())); dto.setSalesPackageMDID(domain.getSalesPackageMDID()); return dto; } private PODealerDetail toDomain(PODealerDetailDTO dto) { PODealerDetail domain = new PODealerDetail(); domain.setPartID(dto.getPartID()); domain.setPoCustomerID(dto.getPoCustomerID()); domain.setQuantity(dto.getQuantity()); domain.setPrice(dto.getPrice()); domain.setDiscount(dto.getDiscount()); domain.setPoDealerDetailStatus(dto.getPoDealerDetailStatus()); domain.setPoDealerDetailCreational( dto.getPoDealerDetailCreationalDTO() == null ? new CreationalSpecificationDTOAssembler().toDomain(new CreationalSpecificationDTO().getInstance()) : new CreationalSpecificationDTOAssembler().toDomain(dto.getPoDealerDetailCreationalDTO())); domain.setSalesPackageMDID(dto.getSalesPackageMDID()); return domain; } public List<PODealerDTO> toDTOs(Set<PODealer> arg0) { List<PODealerDTO> res = new ArrayList<>(); arg0.stream().forEach((o) -> { res.add(toDTO(o)); }); return res; } public List<PODealerDTO> toDTOs(List<PODealer> arg0) { List<PODealerDTO> res = new ArrayList<>(); arg0.stream().forEach((o) -> { res.add(toDTO(o)); }); return res; } public List<PODealerDetailDTO> toDetailDTOs(List<PODealerDetail> arg0) { List<PODealerDetailDTO> res = new ArrayList<>(); arg0.stream().forEach((o) -> { res.add(toDTO(o)); }); return res; } public Set<PODealer> toDomains(List<PODealerDTO> arg0) { Set<PODealer> res = new HashSet<>(); arg0.stream().forEach((o) -> { res.add(toDomain(o)); }); return res; } public Set<PODealerDetail> toDetailDomains(List<PODealerDetailDTO> arg0) { Set<PODealerDetail> res = new HashSet<>(); arg0.stream().forEach((o) -> { res.add(toDomain(o)); }); return res; } }