package com.eksad.masterdata.domain.assembler; import com.eksad.ddms.common.util.ConverterImageByte; import com.eksad.ddms.common.util.object.IObjectAssembler; import com.eksad.masterdata.common.dto.CreationalSpecificationDTO; import com.eksad.masterdata.common.dto.PartDTO; import com.eksad.masterdata.domain.Part; import java.util.ArrayList; import java.util.HashSet; import java.util.List; import java.util.Set; public class PartAssembler implements IObjectAssembler<Part, PartDTO> { @Override public PartDTO toDTO(Part domainObject) { PartDTO dto = new PartDTO(); dto.setPartID(domainObject.getCode()); dto.setLargePartGroup(domainObject.getLargePartGroup()); dto.setCurrentType(domainObject.getCurrentType()); dto.setPartType(domainObject.getPartType()); dto.setPartCategory(domainObject.getPartCategory()); dto.setPartDescription(domainObject.getPartDescription()); dto.setHet(domainObject.getHet()); dto.setHgpType(domainObject.getHgpType()); dto.setHotlinePart(domainObject.isHotlinePart()); dto.setHotlinePartDeliveryCost(domainObject.getHotlinePartDeliveryCost()); dto.setLifeTimeType(domainObject.getLifeTimeType()); dto.setMaxQtyHotline(domainObject.getMaxQtyHotline()); dto.setMinOrderBigDealer(domainObject.getMinOrderBigDealer()); dto.setMinOrderMiddleDealer(domainObject.getMinOrderMiddleDealer()); dto.setMinOrderSmallDealer(domainObject.getMinOrderSmallDealer()); dto.setPartOrigin(domainObject.getPartOrigin()); dto.setPartGroup(domainObject.getPartGroup()); dto.setPartNumber(domainObject.getCode()); dto.setPartPhotoURL(domainObject.getPartPhotoURL()); dto.setPartReference(domainObject.getPartReference()); dto.setPnt(domainObject.getPnt()); dto.setRank(domainObject.getRank()); dto.setBasicPrice(domainObject.getBasicPrice()); dto.setPartStockType(domainObject.getPartStockType()); dto.setStatus(domainObject.getStatus()); dto.setStatusMD(domainObject.getStatusMD()); dto.setSuperseed(domainObject.getSuperseed()); dto.setSupplierCode(domainObject.getSupplierCode()); dto.setItemSimiliar(domainObject.getItemSimilar()); dto.setPartStatus(domainObject.getPartStatus()); dto.setPartCreationalDTO(domainObject.getPartCreational() == null ? new CreationalSpecificationDTO() : new CreationalSpecificationDTOAssembler().toDTO(domainObject.getPartCreational())); dto.setPartTypeMotorDTOs(domainObject.getPartTypeMotors() == null ? new ArrayList<>() : new PartTypeMotorAssembler().toDTOs(domainObject.getPartTypeMotors())); dto.setPartLocalType(domainObject.getPartLocalType()); dto.setPartMainDealerID(domainObject.getPartMainDealerID()); dto.setPartLocalSaleable(domainObject.getPartLocalSaleable()); dto.setDealerID(domainObject.getDealerID()); dto.setImageByte(domainObject.getPartPhotoURL() == null ? new byte[10] : ConverterImageByte.readBytesFromFile(dto.getPartPhotoURL())); return dto; } @Override public Part toDomain(PartDTO dtoObject) { Part data = new Part(); data.setCode(dtoObject.getPartID()); data.setLargePartGroup(dtoObject.getLargePartGroup()); data.setCurrentType(dtoObject.getCurrentType()); data.setPartType(dtoObject.getPartType()); data.setPartCategory(dtoObject.getPartCategory()); data.setPartDescription(dtoObject.getPartDescription()); data.setHet(dtoObject.getHet()); data.setHgpType(dtoObject.getHgpType()); data.setHotlinePart(dtoObject.isHotlinePart()); data.setHotlinePartDeliveryCost(dtoObject.getHotlinePartDeliveryCost()); data.setLifeTimeType(dtoObject.getLifeTimeType()); data.setMaxQtyHotline(dtoObject.getMaxQtyHotline()); data.setMinOrderBigDealer(dtoObject.getMinOrderBigDealer()); data.setMinOrderMiddleDealer(dtoObject.getMinOrderMiddleDealer()); data.setMinOrderSmallDealer(dtoObject.getMinOrderSmallDealer()); data.setPartOrigin(dtoObject.getPartOrigin()); data.setPartGroup(dtoObject.getPartGroup()); data.setCode(dtoObject.getPartNumber()); data.setPartPhotoURL(dtoObject.getPartPhotoURL()); data.setPartReference(dtoObject.getPartReference()); data.setPnt(dtoObject.getPnt()); data.setRank(dtoObject.getRank()); data.setBasicPrice(dtoObject.getBasicPrice()); data.setPartStockType(dtoObject.getPartStockType()); data.setStatus(dtoObject.getStatus()); data.setStatusMD(dtoObject.getStatusMD()); data.setSuperseed(dtoObject.getSuperseed()); data.setSupplierCode(dtoObject.getSupplierCode()); data.setItemSimilar(dtoObject.getItemSimiliar()); data.setPartStatus(dtoObject.getPartStatus()); data.setPartCreational(dtoObject.getPartCreationalDTO() == null ? new CreationalSpecificationDTOAssembler().toDomain(new CreationalSpecificationDTO().getInstance()) : new CreationalSpecificationDTOAssembler().toDomain(dtoObject.getPartCreationalDTO())); data.setPartTypeMotors(dtoObject.getPartTypeMotorDTOs() == null ? new HashSet<>() : new PartTypeMotorAssembler().toDomains(dtoObject.getPartTypeMotorDTOs())); data.setPartMainDealerID(dtoObject.getPartMainDealerID()); data.setPartLocalType(dtoObject.getPartLocalType()); data.setPartLocalSaleable(dtoObject.getPartLocalSaleable()); data.setDealerID(dtoObject.getDealerID()); return data; } public List<PartDTO> toDTOs(Set<Part> arg0) { List<PartDTO> res = new ArrayList<>(); arg0.stream().forEach((o) -> { res.add(toDTO(o)); }); return res; } public List<PartDTO> toDTOs(List<Part> arg0) { List<PartDTO> res = new ArrayList<>(); arg0.stream().forEach((o) -> { res.add(toDTO(o)); }); return res; } public Set<Part> toDomains(List<PartDTO> arg0) { Set<Part> res = new HashSet<>(); arg0.stream().forEach((o) -> { res.add(toDomain(o)); }); return res; } }