@@ -0,0 +1,1676 @@
+package seedu.taskitty.logic.commands;%0A%0Aimport seedu.taskitty.commons.core.Messages;%0Aimport seedu.taskitty.commons.core.UnmodifiableObservableList;%0Aimport seedu.taskitty.model.task.ReadOnlyTask;%0Aimport seedu.taskitty.model.task.UniqueTaskList.TaskNotFoundException;%0A%0A/**%0A * Deletes a person identified using it's last displayed index from the address book.%0A */%0Apublic class DoneCommand extends Command %7B%0A%0A    public static final String COMMAND_WORD = %22done%22;%0A%0A    public static final String MESSAGE_USAGE = COMMAND_WORD%0A            + %22: Marks the task identified by the index number used in the last task listing as done.%5Cn%22%0A            + %22Parameters: INDEX (must be a positive integer)%5Cn%22%0A            + %22Example: %22 + COMMAND_WORD + %22 1%22;%0A%0A    public static final String MESSAGE_MARK_TASK_AS_DONE_SUCCESS = %22Task done: %251$s%22;%0A%0A    public final int targetIndex;%0A%0A    public DoneCommand(int targetIndex) %7B%0A        this.targetIndex = targetIndex;%0A    %7D%0A%0A%0A    @Override%0A    public CommandResult execute() %7B%0A%0A        UnmodifiableObservableList%3CReadOnlyTask%3E lastShownList = model.getFilteredTaskList();%0A        if (lastShownList.size() %3C targetIndex) %7B%0A            indicateAttemptToExecuteIncorrectCommand();%0A            return new CommandResult(Messages.MESSAGE_INVALID_TASK_DISPLAYED_INDEX);%0A        %7D%0A%0A        ReadOnlyTask taskToBeMarkedDone = lastShownList.get(targetIndex - 1);%0A%0A        try %7B%0A            model.doneTask(taskToBeMarkedDone);%0A        %7D catch (TaskNotFoundException pnfe) %7B%0A            assert false : %22The target task cannot be missing%22;%0A        %7D%0A%0A        return new CommandResult(String.format(MESSAGE_MARK_TASK_AS_DONE_SUCCESS, taskToBeMarkedDone));%0A    %7D%0A%0A%7D%0A

Add DoneCommand.java