@@ -0,0 +1,2449 @@
+package utask.model.task;%0A%0Aimport java.util.Optional;%0A%0Aimport utask.commons.util.CollectionUtil;%0Aimport utask.model.tag.UniqueTagList;%0A%0Apublic class EditTaskDescriptor %7B%0A    private Optional%3CName%3E name = Optional.empty();%0A    private Optional%3CDeadline%3E deadLine = Optional.empty();%0A    private Optional%3CTimestamp%3E timeStamp = Optional.empty();%0A    private Optional%3CFrequency%3E frequency = Optional.empty();%0A    private Optional%3CUniqueTagList%3E tags = Optional.empty();%0A    private Optional%3CIsCompleted%3E isCompleted = Optional.empty();%0A%0A    public EditTaskDescriptor() %7B%0A    %7D%0A%0A    public EditTaskDescriptor(EditTaskDescriptor toCopy) %7B%0A        this.name = toCopy.getName();%0A        this.deadLine = toCopy.getDeadline();%0A        this.timeStamp = toCopy.getTimeStamp();%0A        this.frequency = toCopy.getFrequency();%0A        this.tags = toCopy.getTags();%0A        this.isCompleted = toCopy.getIsCompleted();%0A    %7D%0A%0A    /**%0A     * Returns true if at least one field is edited.%0A     */%0A    public boolean isAnyFieldEdited() %7B%0A        return CollectionUtil.isAnyPresent(this.name, this.deadLine,%0A                this.timeStamp, this.frequency, this.tags,%0A                this.isCompleted);%0A    %7D%0A%0A    public void setName(Optional%3CName%3E name) %7B%0A        assert name != null;%0A        this.name = name;%0A    %7D%0A%0A    public Optional%3CName%3E getName() %7B%0A        return name;%0A    %7D%0A%0A    public void setDeadline(Optional%3CDeadline%3E deadLine) %7B%0A        assert deadLine != null;%0A        this.deadLine = deadLine;%0A    %7D%0A%0A    public Optional%3CDeadline%3E getDeadline() %7B%0A        return deadLine;%0A    %7D%0A%0A    public void setTimeStamp(Optional%3CTimestamp%3E timeStamp) %7B%0A        assert timeStamp != null;%0A        this.timeStamp = timeStamp;%0A    %7D%0A%0A    public Optional%3CTimestamp%3E getTimeStamp() %7B%0A        return timeStamp;%0A    %7D%0A%0A    public void setFrequency(Optional%3CFrequency%3E frequency) %7B%0A        assert frequency != null;%0A        this.frequency = frequency;%0A    %7D%0A%0A    public Optional%3CFrequency%3E getFrequency() %7B%0A        return frequency;%0A    %7D%0A%0A    public void setTags(Optional%3CUniqueTagList%3E tags) %7B%0A        assert tags != null;%0A        this.tags = tags;%0A    %7D%0A%0A    public Optional%3CUniqueTagList%3E getTags() %7B%0A        return tags;%0A    %7D%0A%0A    public void setIsCompleted(Optional%3CIsCompleted%3E isCompleted) %7B%0A        assert isCompleted != null;%0A        this.isCompleted = isCompleted;%0A    %7D%0A%0A    public Optional%3CIsCompleted%3E getIsCompleted() %7B%0A        return isCompleted;%0A    %7D%0A%0A%7D%0A

Add EditTaskDescriptor as a new class