@@ -0,0 +1,1428 @@
+package seedu.ezdo.model.todo;%0A%0A%0Aimport seedu.ezdo.commons.exceptions.IllegalValueException;%0A%0A%0A/**%0A * Represents the due date of a todo.%0A */%0Apublic class DueDate %7B%0A%0A    public static final String MESSAGE_DUEDATE_CONSTRAINTS =%0A            %22Due dates should be in the format DD/MM/YYYY, and it should not be blank%22;%0A%0A    public static final String DUEDATE_VALIDATION_REGEX = %22.+%22;%0A%0A    public final String value;%0A%0A    /**%0A     * Validates given due date.%0A     *%0A     * @throws IllegalValueException if given due date string is invalid.%0A     */%0A    public DueDate(String dueDate) throws IllegalValueException %7B%0A        assert dueDate != null;%0A        if (!isValidDueDate(dueDate)) %7B%0A            throw new IllegalValueException(MESSAGE_DUEDATE_CONSTRAINTS);%0A        %7D%0A        this.value = dueDate;%0A    %7D%0A%0A    /**%0A     * Returns true if a given string is a valid due date.%0A     */%0A    public static boolean isValidDueDate(String test) %7B%0A        return test.matches(DUEDATE_VALIDATION_REGEX);%0A    %7D%0A%0A    @Override%0A    public String toString() %7B%0A        return value;%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 DueDate // instanceof handles nulls%0A                && this.value.equals(((DueDate) other).value)); // state check%0A    %7D%0A%0A    @Override%0A    public int hashCode() %7B%0A        return value.hashCode();%0A    %7D%0A%0A%7D%0A

Add DueDate.java