package seedu.address.storage;

import java.util.ArrayList;
import java.util.List;

import javax.xml.bind.annotation.XmlElement;

import seedu.address.commons.exceptions.IllegalValueException;
import seedu.address.model.person.Deadline;
import seedu.address.model.person.Name;
import seedu.address.model.person.ReadOnlyTask;
import seedu.address.model.person.Task;
import seedu.address.model.tag.Tag;
import seedu.address.model.tag.UniqueTagList;

/**
 * JAXB-friendly version of the Task.
 */
public class XmlAdaptedTask {

    @XmlElement(required = true)
    private String name;
    @XmlElement
    private String deadline;
    @XmlElement
    private List<XmlAdaptedTag> tagged = new ArrayList<>();

    /**
     * Constructs an XmlAdaptedTask.
     * This is the no-arg constructor that is required by JAXB.
     */
    public XmlAdaptedTask() {}


    /**
     * Converts a given Task into this class for JAXB use.
     *
     * @param source future changes to this will not affect the created XmlAdaptedTask
     */
    public XmlAdaptedTask(ReadOnlyTask source) {
        name = source.getName().fullName;
        deadline = source.getDeadline().value;
        tagged = new ArrayList<>();
        for (Tag tag : source.getTags()) {
            tagged.add(new XmlAdaptedTag(tag));
        }
    }

    /**
     * Converts this jaxb-friendly adapted person object into the model's Task object.
     *
     * @throws IllegalValueException if there were any data constraints violated in the adapted person
     */
    public Task toModelType() throws IllegalValueException {
        final List<Tag> taskTags = new ArrayList<>();
        for (XmlAdaptedTag tag : tagged) {
            taskTags.add(tag.toModelType());
        }
        final Name name = new Name(this.name);
        final Deadline deadline = new Deadline(this.deadline);
        final UniqueTagList tags = new UniqueTagList(taskTags);
        return new Task(name, deadline, tags);
    }
}

@@ -314,24 +314,65 @@
 adOnlyTask;%0A
+import seedu.address.model.person.Start;%0A
 import seedu
@@ -395,24 +395,24 @@
 erson.Task;%0A
-
 import seedu
@@ -625,32 +625,74 @@
     @XmlElement%0A
+    private String start;%0A    @XmlElement%0A
     private Stri
@@ -1187,24 +1187,65 @@
 ).fullName;%0A
+        start = source.getStart().value;%0A
         dead
@@ -1892,24 +1892,75 @@
 this.name);%0A
+        final Start start = new Start(this.start);%0A
         fina
@@ -2070,24 +2070,24 @@
 (taskTags);%0A
-
         retu
@@ -2103,16 +2103,23 @@
 sk(name,
+ start,
  deadlin

Update XmlAdaptedTask with Start