@@ -0,0 +1,1672 @@
+package seedu.taskell.model.task;%0A%0Aimport seedu.taskell.commons.exceptions.IllegalValueException;%0A%0A/**%0A * Represents a Task's description in the task manager.%0A * Guarantees: immutable; is valid as declared in %7B@link #isValidDescription(String)%7D%0A */%0Apublic class Description %7B%0A%0A    public static final String MESSAGE_DESCRIPTION_CONSTRAINTS = %22Task descriptions should be spaces or alphanumeric characters%22;%0A    public static final String DESCRIPTION_VALIDATION_REGEX = %22%5B%5C%5Cp%7BAlnum%7D %5D+%22;%0A%0A    public final String description;%0A%0A    /**%0A     * Validates given description.%0A     *%0A     * @throws IllegalValueException if given description string is invalid.%0A     */%0A    public Description(String description) throws IllegalValueException %7B%0A        assert description != null;%0A        description = description.trim();%0A        if (!isValidDescription(description)) %7B%0A            throw new IllegalValueException(MESSAGE_DESCRIPTION_CONSTRAINTS);%0A        %7D%0A        this.description = description;%0A    %7D%0A%0A    /**%0A     * Returns true if a given string is a valid task description.%0A     */%0A    public static boolean isValidDescription(String test) %7B%0A        return test.matches(DESCRIPTION_VALIDATION_REGEX);%0A    %7D%0A%0A%0A    @Override%0A    public String toString() %7B%0A        return description;%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 Description // instanceof handles nulls%0A                && this.description.equals(((Description) other).description)); // state check%0A    %7D%0A%0A    @Override%0A    public int hashCode() %7B%0A        return description.hashCode();%0A    %7D%0A%7D%0A

Add Description class to replace name class