package com.whatstodo.filter;
import java.io.Serializable;
import java.util.Calendar;
import com.whatstodo.manager.TaskManager;
import com.whatstodo.manager.TodoListManager;
import com.whatstodo.models.List;
import com.whatstodo.models.Task;
public abstract class Filter implements Serializable {
private static final long serialVersionUID = 2645671922210489484L;
public List getTask() {
List result = new List(getFilterName());
//TODO do not load all lists but query the db!
for (List list : TodoListManager.getInstance().findAll()) {
for (Task task : TaskManager.getInstance().findByListId(list.getId())) {
if (filter(task)) {
result.add(task);
}
}
}
return result;
}
protected abstract String getFilterName();
protected abstract boolean filter(Task task);
public static int compareDate(Calendar cal1, Calendar cal2) {
if (cal1.get(Calendar.YEAR) > cal2.get(Calendar.YEAR)) {
return 1;
}
if (cal1.get(Calendar.YEAR) < cal2.get(Calendar.YEAR)) {
return -1;
}
if (cal1.get(Calendar.MONTH) > cal2.get(Calendar.MONTH)) {
return 1;
}
if (cal1.get(Calendar.MONTH) < cal2.get(Calendar.MONTH)) {
return -1;
}
if (cal1.get(Calendar.DATE) > cal2.get(Calendar.DATE)) {
return 1;
}
if (cal1.get(Calendar.DATE) < cal2.get(Calendar.DATE)) {
return -1;
}
return 0;
}
}