TodoListDTO.java
- package info.ejava.examples.jaxrs.todos.dto;
- import java.io.Serializable;
- import java.util.LinkedList;
- import java.util.List;
- import javax.json.bind.annotation.JsonbTransient;
- import javax.xml.bind.annotation.XmlRootElement;
- import com.fasterxml.jackson.annotation.JsonIgnore;
- @XmlRootElement(name="todoList", namespace="urn:ejava.jaxrs.todos")
- public class TodoListDTO implements Serializable {
- private static final long serialVersionUID = 1L;
- private String name;
- private List<TodoItemDTO> todoItems;
-
- public TodoListDTO() {}
-
- public TodoListDTO(String name) {
- this.name = name;
- }
- public String getName() {
- return name;
- }
- public void setName(String name) {
- this.name = name;
- }
-
- public List<TodoItemDTO> getTodoItems() {
- return todoItems;
- }
- public void setTodoItems(List<TodoItemDTO> todoItems) {
- this.todoItems = todoItems;
- }
- public void withTodoItem(TodoItemDTO todoItem) {
- if (todoItems==null && todoItem!=null) {
- todoItems = new LinkedList<>();
- }
- if (todoItem!=null) {
- todoItems.add(todoItem);
- }
- }
-
- @JsonbTransient
- @JsonIgnore
- public TodoItemDTO getListItem(String itemName) {
- if (todoItems==null) { return null; }
- return todoItems.stream()
- .filter(item->itemName.equalsIgnoreCase(item.getName()))
- .findFirst()
- .orElseGet(null);
- }
- @Override
- public String toString() {
- StringBuilder builder = new StringBuilder();
- builder.append("TodoList[name=").append(name)
- .append(", todoItems=");
- if (todoItems!=null) {
- boolean first=true;
- for (TodoItemDTO todo: todoItems) {
- if (!first) { builder.append(",").append(System.lineSeparator()); }
- builder.append(todo);
- first=false;
- }
- }
- builder.append("]");
- return builder.toString();
- }
- }