package se.chalmers.dat255.grupp12;
import java.util.ArrayList;
import java.util.Calendar;
import java.util.List;
/**
* Created with IntelliJ IDEA.
* se.chalmers.dat255.grupp12.User: Hagej
* Date: 2013-09-12
* Time: 16:10
* To change this template use File | Settings | File Templates.
*/
public class Task extends DatabaseEntry {
private String title;
private String content = "";
private Priority priority;
private Calendar date;
private List<User> users = new ArrayList<User>();;
private boolean isDone = false;
public void removeUser(User user) {
users.remove(user);
}
enum Priority {
HIGH,
MEDIUM,
LOW
}
private Task() {} // Gson-required constructor
public Task(String title) {
this(title, 0);
}
public Task(String title, int priority){
this(title, priority, "", false);
}
public Task(String title,int priority, String content,boolean isDone){
this(title, Priority.HIGH, content, isDone);
this.priority = getPrio(priority); // Cannot be called on cunstructor call since call to this(), must be first
// call in constructor
}
public Task(String title, Priority priority, String content, boolean isDone) {
this.title = title;
this.priority = priority;
this.content = (content == null || content.equals("null")) ? "" : content;
this.isDone = isDone;
}
public Priority getPrio(int prio) {
switch (prio) {
case 0:
return Priority.HIGH;
case 1:
return Priority.MEDIUM;
case 2:
return Priority.LOW;
default:
return Priority.LOW;
}
}
public int getPriority(){
switch (priority){
case LOW:
return 2;
case MEDIUM:
return 1;
case HIGH:
return 0;
default:
return 0;
}
}
public void assignUser(User user){
users.add(user);
}
public List<User> getUsers(){
return users;
}
public void setPriority(Priority priority){
this.priority = priority;
}
public String getTitle(){
return title;
}
public void setTitle(String title){
this.title = title;
}
public String getContent(){
return content;
}
public void setContent(String content){
this.content = content;
}
public Calendar getDate(){
return date;
}
public void setDate(Calendar date){
this.date = date;
}
public boolean isDone() {
return isDone;
}
public void isDone(boolean isDone){
this.isDone = isDone;
}
@Override
public boolean equals(Object obj) {
if (obj instanceof Task) {
Task t2 = (Task) obj;
return t2.getTitle().equals(getTitle()) && t2.getContent().equals(getContent()) && t2.getId() == getId();
}
return false;
}
@Override
public String toString() {
return "(" + getId() + ")" + title + ":" + content;
}
}