@@ -0,0 +1,1457 @@
+package seedu.taskman.model.event;%0A%0Aimport seedu.taskman.model.tag.UniqueTagList;%0A%0Aimport java.util.Optional;%0A%0A/**%0A * Wrapper for both ReadOnlyEvent and ReadOnlyTask%0A *%0A * May i%0A */%0Apublic class Activity%7B%0A%0A    public enum ActivityType %7BEVENT, TASK%7D;%0A%0A    private ReadOnlyEvent activity;%0A    private ActivityType type;%0A%0A    public Activity(ReadOnlyEvent event)%7B%0A        activity = event;%0A        type = ActivityType.EVENT;%0A    %7D%0A%0A    public Activity(ReadOnlyTask task)%7B%0A        activity = task;%0A        type = ActivityType.TASK;%0A    %7D%0A%0A    public ActivityType getType()%7B%0A        return type;%0A    %7D%0A%0A    public Optional%3CStatus%3E getStatus() %7B%0A        switch(type)%7B%0A            case TASK:%0A                return Optional.ofNullable(((ReadOnlyTask)activity).getStatus());%0A            case EVENT:%0A            default:%0A                return null;%0A        %7D%0A    %7D%0A%0A    public Optional%3CDeadline%3E getDeadline() %7B%0A        switch(type)%7B%0A            case TASK:%0A                return ((ReadOnlyTask)activity).getDeadline();%0A            case EVENT:%0A            default:%0A                return Optional.empty();%0A        %7D%0A    %7D%0A%0A%0A    public Title getTitle() %7B%0A        return activity.getTitle();%0A    %7D%0A%0A    public Optional%3CFrequency%3E getFrequency() %7B%0A        return activity.getFrequency();%0A    %7D%0A%0A    public Optional%3CSchedule%3E getSchedule() %7B%0A        return activity.getSchedule();%0A    %7D%0A%0A    public UniqueTagList getTags() %7B%0A        return activity.getTags();%0A    %7D%0A%0A%7D%0A

Add Activity Class