@@ -0,0 +1,1796 @@
+package savvytodo.model.task;%0A%0Aimport java.util.function.Predicate;%0A//@@author A0147827U%0A/**%0A * Represents a Task's type in the task manager%0A * @author jingloon%0A */%0Apublic class Type %7B%0A%0A    private TaskType type;%0A%0A    public Type(TaskType type) %7B%0A        this.type = type;%0A    %7D%0A%0A    public Type(DateTime dateTime) %7B%0A        if (dateTime.getStartDate() == null && dateTime.getEndDate() == null) %7B%0A            type = TaskType.FLOATING;%0A        %7D else if (dateTime.getStartDate() != null && dateTime.getEndDate() != null) %7B%0A            type = TaskType.EVENT;%0A        %7D else %7B%0A            type = TaskType.DEADLINE;%0A        %7D%0A    %7D%0A    public TaskType getType() %7B%0A        return type;%0A    %7D%0A%0A    public void setType(TaskType type) %7B%0A        this.type = type;%0A    %7D%0A%0A    /**%0A     * Return predicate of the priority to filter tasks%0A     * @return predicate expression to help filter tasks%0A     */%0A    public Predicate%3CReadOnlyTask%3E getPredicate() %7B%0A        return (ReadOnlyTask task) -%3E task.getType().equals(this);%0A    %7D%0A%0A    /**%0A     * Static methods to return fixed Types%0A     */%0A    public static Type getFloatingType() %7B%0A        return new Type (TaskType.FLOATING);%0A    %7D%0A    public static Type getEventType() %7B%0A        return new Type (TaskType.EVENT);%0A    %7D%0A    public static Type getDeadlineType() %7B%0A        return new Type (TaskType.DEADLINE);%0A    %7D%0A%0A    @Override%0A    public String toString() %7B%0A        return type.toString();%0A    %7D%0A%0A    @Override%0A    public boolean equals(Object other) %7B%0A        return other == this // short circuit if same object%0A                %7C%7C (other instanceof Type // instanceof handles nulls%0A                        && this.type.equals(((Type) other).type)); // state check%0A    %7D%0A%0A    @Override%0A    public int hashCode() %7B%0A        return type.hashCode();%0A    %7D%0A%7D%0A

resolve merge conflict