package com.whatstodo.models; import java.io.Serializable; import java.util.Date; import java.util.Random; import com.whatstodo.dtos.TaskDTO; public class Task implements Serializable, Comparable<Task> { private static final long serialVersionUID = -8335115914160527642L; private long id; private String name; private String notice; private Date date; private Date reminder; private Priority priority; private boolean done; private String address; private boolean calendarCreated; private long listId; public Task(){ id = Math.abs(new Random().nextLong()); priority = Priority.NORMAL; done = false; } public Task(String name) { this(); this.name = name; } public String getName() { return this.name; } public void setName(String name) { this.name = name; } public long getId() { return id; } public void setId(long id) { this.id = id; } public Priority getPriority() { return priority; } public void setPriority(Priority priority) { this.priority = priority; } public boolean isDone() { return done; } public void setDone(boolean done) { this.done = done; } public Date getDate() { return date; } public void setDate(Date date) { this.date = date; } public String getNotice() { return notice; } public void setNotice(String notice) { this.notice = notice; } public Date getReminder() { return reminder; } public void setReminder(Date reminder) { this.reminder = reminder; } public long getListId() { return listId; } public void setListId(long listId) { this.listId = listId; } public String getAddress() { return address; } public void setAddress(String address) { this.address = address; } @Override public int compareTo(Task another) { if (!isDone() && another.isDone()) { return -1; } if (isDone() && !another.isDone()) { return 1; } if (date == null && another.date == null) return 0; if (date != null) { if (another.date != null) return date.compareTo(another.date); else return -1; } return 0; } @Override public boolean equals(Object o) { if (o instanceof Task) { return id == ((Task) o).id; } return false; } public void setCalendarCreated(boolean calendarCreated) { this.calendarCreated = calendarCreated; } public boolean isCalendarCreated() { return calendarCreated; } public static TaskDTO toDTO(Task task){ TaskDTO taskDTO = new TaskDTO(); taskDTO.setId(task.id); taskDTO.setName(task.name); taskDTO.setNotice(task.notice); taskDTO.setDate(task.date); taskDTO.setReminder(task.reminder); taskDTO.setPriority(Priority.toDTO(task.priority)); taskDTO.setDone(task.done); taskDTO.setAddress(task.address); taskDTO.setCalendarCreated(task.calendarCreated); taskDTO.setListId(task.listId); return taskDTO; } public static Task fromDTO(TaskDTO taskDTO){ Task task = new Task(); task.id = taskDTO.getId(); task.name = taskDTO.getName(); task.notice = taskDTO.getNotice(); task.date = taskDTO.getDate(); task.reminder = taskDTO.getReminder(); task.priority = Priority.fromDTO(taskDTO.getPriority()); task.done = taskDTO.isDone(); task.address = taskDTO.getAddress(); task.calendarCreated = taskDTO.isCalendarCreated(); task.listId = taskDTO.getListId(); return task; } }