@@ -0,0 +1,2427 @@
+package utask.model.task;%0A%0Aimport utask.commons.exceptions.IllegalValueException;%0A%0A/**%0A * Represents the boolean value of the isCompleted attribute in the uTask.%0A * Guarantees: immutable; is valid as declared in%0A * %7B@link #isValidBoolean(String)%7D%0A */%0A// @@author A0138423J%0Apublic class IsCompleted %7B%0A    public static final String MESSAGE_NAME_CONSTRAINTS = %22Task status should be true/false or %22%0A            + %22yes/no case insensitive, and it should not be blank%22;%0A%0A    /*%0A     * The first character of the status must not be a whitespace, otherwise %22 %22%0A     * (a blank string) becomes a valid input.%0A     */%0A    public static final String ISCOMPLETED_VALIDATION_REGEX = %22%5E(YES%7Cyes%7CY%7Cy%7CTRUE%7Ctrue%7CT%7Ct%7CNO%7Cno%7CN%7Cn%7CFALSE%7Cfalse%7CF%7Cf)$%22;%0A    //%0A    public final Boolean isCompleted;%0A%0A    /**%0A     * Validates given name.%0A     *%0A     * @throws IllegalValueException%0A     *             if given name string is invalid.%0A     */%0A    public IsCompleted(String input) throws IllegalValueException %7B%0A        assert input != null;%0A        String trimmedName = input.trim();%0A        if (!isValidBoolean(trimmedName)) %7B%0A            throw new IllegalValueException(MESSAGE_NAME_CONSTRAINTS);%0A        %7D%0A        char value = input.toLowerCase().charAt(0);%0A        Boolean valToBool = false;%0A        switch (value) %7B%0A        case 't':%0A            valToBool = true;%0A            break;%0A        case 'y':%0A            valToBool = true;%0A            break;%0A        case 'f':%0A            valToBool = false;%0A            break;%0A        case 'n':%0A            valToBool = false;%0A            break;%0A        %7D%0A        this.isCompleted = valToBool;%0A    %7D%0A%0A    /**%0A     * Returns true if a given string is a valid true/false or yes/no.%0A     */%0A    public static boolean isValidBoolean(String test) %7B%0A        return test.matches(ISCOMPLETED_VALIDATION_REGEX);%0A    %7D%0A%0A    @Override%0A    public String toString() %7B%0A        return isCompleted.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 IsCompleted // instanceof handles nulls%0A                        && this.isCompleted%0A                                .equals(((IsCompleted) other).isCompleted)); // state%0A                                                                             // check%0A    %7D%0A%0A    @Override%0A    public int hashCode() %7B%0A        return isCompleted.hashCode();%0A    %7D%0A%7D%0A

Create isCompleted class for task status