1 package info.ejava.examples.jaxrs.todos.ejb;
2
3 import java.util.List;
4 import java.util.stream.Collectors;
5
6 import info.ejava.examples.jaxrs.todos.bo.TodoItem;
7 import info.ejava.examples.jaxrs.todos.bo.TodoList;
8 import info.ejava.examples.jaxrs.todos.dto.TodoItemDTO;
9 import info.ejava.examples.jaxrs.todos.dto.TodoListDTO;
10 import info.ejava.examples.jaxrs.todos.dto.TodoListListDTO;
11
12 public class DtoMapper {
13 public TodoList map(TodoListDTO dto) {
14 TodoList bo = new TodoList();
15 bo.setName(dto.getName());
16
17 if (dto.getTodoItems()!=null) {
18 for (TodoItemDTO itemDTO: dto.getTodoItems()) {
19 TodoItem itemBO = map(itemDTO);
20 itemBO.setTodoList(bo);
21 bo.getTodoItems().add(itemBO);
22 }
23 }
24 return bo;
25 }
26
27 public TodoListDTO map(TodoList bo) {
28 if (bo==null) { return null; }
29 TodoListDTO dto = new TodoListDTO();
30 dto.setName(bo.getName());
31 List<TodoItemDTO> items = bo.getTodoItems().stream()
32 .map(item->map(item))
33 .collect(Collectors.toList());
34 dto.setTodoItems(items);
35 return dto;
36 }
37
38
39
40
41
42
43
44
45 public TodoItemDTO map(TodoItem bo) {
46 TodoItemDTO dto = new TodoItemDTO();
47 dto.setName(bo.getName());
48 dto.setPriority(bo.getPriority());
49 return dto;
50 }
51
52 public TodoListListDTO map(List<TodoList> bo) {
53 if (bo==null) { return null; }
54 List<TodoListDTO> todoLists = bo.stream()
55 .map(list->map(list))
56 .collect(Collectors.toList());
57 TodoListListDTO dto = new TodoListListDTO();
58 dto.setTodoLists(todoLists);
59 return dto;
60 }
61
62 public TodoItem map(TodoItemDTO dto) {
63 if (dto==null) { return null; }
64 TodoItem bo = new TodoItem();
65 bo.setName(dto.getName());
66 if (dto.getPriority()!=null) {
67 bo.setPriority(dto.getPriority());
68 }
69 return bo;
70 }
71 }