package com.redman.client.data.mapper; import com.redman.client.data.model.CompanyEntity; import com.redman.client.data.dto.CompanyDTO; import java.util.List; import org.springframework.data.domain.Page; import org.springframework.data.domain.PageImpl; import org.springframework.data.domain.Pageable; import static java.util.stream.Collectors.toList; public class CompanyMapper { public static List<CompanyDTO> mapEntitiesIntoDTOs(List<CompanyEntity> entities) { return entities.stream() .map(CompanyMapper::mapEntityIntoDTO) .collect(toList()); } public static CompanyEntity mapDTOIntoEntity(CompanyDTO dto, CompanyEntity entity) { entity.setName(dto.getName()); entity.setContactName(dto.getContactName()); entity.setContactEmail(dto.getContactEmail()); entity.setMaxAccounts(dto.getMaxAccounts()); entity.setMaxSize(dto.getMaxSize()); return entity; } public static CompanyEntity mapDTOIntoEntity(CompanyDTO dto) { return mapDTOIntoEntity(dto, new CompanyEntity()); } public static CompanyDTO mapEntityIntoDTO(CompanyEntity entity) { // Model is null, no entry found in the database if (entity == null) { return null; } CompanyDTO dto = new CompanyDTO(); dto.setName(entity.getName()); // TODO: Set field level permission dto.setContactName(entity.getContactName()); dto.setContactEmail(entity.getContactEmail()); dto.setMaxAccounts(entity.getMaxAccounts()); dto.setMaxSize(entity.getMaxSize()); return dto; } public static Page<CompanyDTO> mapEntityPageIntoDTOPage(Pageable page, Page<CompanyEntity> source) { List<CompanyDTO> dtos = mapEntitiesIntoDTOs(source.getContent()); return new PageImpl<>(dtos, page, source.getTotalElements()); } }