package net.petrikainulainen.springdata.jpa.todo; import org.springframework.data.domain.Page; import org.springframework.data.domain.PageImpl; import org.springframework.data.domain.Pageable; import java.util.List; import static java.util.stream.Collectors.toList; /** * @author Petri Kainulainen */ final class TodoMapper { static List<TodoDTO> mapEntitiesIntoDTOs(List<Todo> entities) { return entities.stream() .map(TodoMapper::mapEntityIntoDTO) .collect(toList()); } static TodoDTO mapEntityIntoDTO(Todo entity) { TodoDTO dto = new TodoDTO(); dto.setCreatedByUser(entity.getCreatedByUser()); dto.setCreationTime(entity.getCreationTime()); dto.setDescription(entity.getDescription()); dto.setId(entity.getId()); dto.setModifiedByUser(entity.getModifiedByUser()); dto.setModificationTime(entity.getModificationTime()); dto.setTitle(entity.getTitle()); return dto; } static Page<TodoDTO> mapEntityPageIntoDTOPage(Pageable page, Page<Todo> source) { List<TodoDTO> dtos = mapEntitiesIntoDTOs(source.getContent()); return new PageImpl<>(dtos, page, source.getTotalElements()); } }