@@ -0,0 +1,2464 @@
+package seedu.address.storage;%0A%0Aimport java.util.ArrayList;%0Aimport java.util.List;%0A%0Aimport javax.xml.bind.annotation.XmlElement;%0A%0Aimport seedu.address.commons.exceptions.IllegalValueException;%0Aimport seedu.address.model.task.Deadline;%0Aimport seedu.address.model.task.Description;%0Aimport seedu.address.model.task.Name;%0Aimport seedu.address.model.task.Task;%0Aimport seedu.address.model.task.IdentificationNumber;%0Aimport seedu.address.model.task.ReadOnlyTask;%0Aimport seedu.address.model.tag.Tag;%0Aimport seedu.address.model.tag.UniqueTagList;%0A%0A/**%0A * JAXB-friendly version of the Task.%0A */%0Apublic class XmlAdaptedTask %7B%0A%0A    @XmlElement(required = true)%0A    private String name;%0A    @XmlElement(required = true)%0A    private String deadline;%0A    @XmlElement(required = true)%0A    private String description;%0A    @XmlElement(required = true)%0A    private String id;%0A%0A    @XmlElement%0A    private List%3CXmlAdaptedTag%3E tagged = new ArrayList%3C%3E();%0A%0A    /**%0A     * Constructs an XmlAdaptedTask.%0A     * This is the no-arg constructor that is required by JAXB.%0A     */%0A    public XmlAdaptedTask() %7B%7D%0A%0A%0A    /**%0A     * Converts a given Task into this class for JAXB use.%0A     *%0A     * @param source future changes to this will not affect the created XmlAdaptedTask%0A     */%0A    public XmlAdaptedTask(ReadOnlyTask source) %7B%0A        name = source.getName().name;%0A        deadline = source.getDeadline().date.toString();%0A        description = source.getDescription().description;%0A        id = Integer.toString(source.getID().value);%0A        tagged = new ArrayList%3C%3E();%0A        for (Tag tag : source.getTags()) %7B%0A            tagged.add(new XmlAdaptedTag(tag));%0A        %7D%0A    %7D%0A%0A    /**%0A     * Converts this jaxb-friendly adapted task object into the model's Task object.%0A     *%0A     * @throws IllegalValueException if there were any data constraints violated in the adapted task%0A     */%0A    public Task toModelType() throws IllegalValueException %7B%0A        final List%3CTag%3E taskTags = new ArrayList%3C%3E();%0A        for (XmlAdaptedTag tag : tagged) %7B%0A            taskTags.add(tag.toModelType());%0A        %7D%0A        final Name name = new Name(this.name);%0A        final Deadline phone = new Deadline(this.deadline);%0A        final Description email = new Description(this.description);%0A        final IdentificationNumber address = new IdentificationNumber(this.id);%0A        final UniqueTagList tags = new UniqueTagList(taskTags);%0A        return new Task(name, phone, email, address, tags);%0A    %7D%0A%7D%0A

Add XmlAdaptedTask class