diff --git a/doc/DeveloperGuide.md b/doc/DeveloperGuide.md old mode 100644 new mode 100755 diff --git a/doc/Diagrams.pptx b/doc/Diagrams.pptx old mode 100644 new mode 100755 diff --git a/doc/LearningOutcomes.md b/doc/LearningOutcomes.md old mode 100644 new mode 100755 diff --git a/doc/UserGuide.md b/doc/UserGuide.md old mode 100644 new mode 100755 diff --git a/doc/images/AddressClasses.png b/doc/images/AddressClasses.png old mode 100644 new mode 100755 diff --git a/doc/images/ContactClassHierarchy.png b/doc/images/ContactClassHierarchy.png old mode 100644 new mode 100755 diff --git a/doc/images/PrintableInterface.png b/doc/images/PrintableInterface.png old mode 100644 new mode 100755 diff --git a/doc/images/ReadOnlyPersonUsage.png b/doc/images/ReadOnlyPersonUsage.png old mode 100644 new mode 100755 diff --git a/doc/images/TaggingClass.png b/doc/images/TaggingClass.png old mode 100644 new mode 100755 diff --git a/doc/images/TaggingsInTagging.png b/doc/images/TaggingsInTagging.png old mode 100644 new mode 100755 diff --git a/doc/images/mainClassDiagram.png b/doc/images/mainClassDiagram.png old mode 100644 new mode 100755 diff --git a/src/seedu/addressbook/Main.java b/src/seedu/addressbook/Main.java old mode 100644 new mode 100755 diff --git a/src/seedu/addressbook/commands/AddCommand.java b/src/seedu/addressbook/commands/AddCommand.java old mode 100644 new mode 100755 diff --git a/src/seedu/addressbook/commands/ClearCommand.java b/src/seedu/addressbook/commands/ClearCommand.java old mode 100644 new mode 100755 diff --git a/src/seedu/addressbook/commands/Command.java b/src/seedu/addressbook/commands/Command.java old mode 100644 new mode 100755 diff --git a/src/seedu/addressbook/commands/CommandResult.java b/src/seedu/addressbook/commands/CommandResult.java old mode 100644 new mode 100755 diff --git a/src/seedu/addressbook/commands/DeleteCommand.java b/src/seedu/addressbook/commands/DeleteCommand.java old mode 100644 new mode 100755 diff --git a/src/seedu/addressbook/commands/ExitCommand.java b/src/seedu/addressbook/commands/ExitCommand.java old mode 100644 new mode 100755 diff --git a/src/seedu/addressbook/commands/FindCommand.java b/src/seedu/addressbook/commands/FindCommand.java old mode 100644 new mode 100755 diff --git a/src/seedu/addressbook/commands/HelpCommand.java b/src/seedu/addressbook/commands/HelpCommand.java old mode 100644 new mode 100755 diff --git a/src/seedu/addressbook/commands/IncorrectCommand.java b/src/seedu/addressbook/commands/IncorrectCommand.java old mode 100644 new mode 100755 diff --git a/src/seedu/addressbook/commands/ListCommand.java b/src/seedu/addressbook/commands/ListCommand.java old mode 100644 new mode 100755 diff --git a/src/seedu/addressbook/commands/ViewAllCommand.java b/src/seedu/addressbook/commands/ViewAllCommand.java old mode 100644 new mode 100755 diff --git a/src/seedu/addressbook/commands/ViewCommand.java b/src/seedu/addressbook/commands/ViewCommand.java old mode 100644 new mode 100755 diff --git a/src/seedu/addressbook/common/Messages.java b/src/seedu/addressbook/common/Messages.java old mode 100644 new mode 100755 diff --git a/src/seedu/addressbook/common/Utils.java b/src/seedu/addressbook/common/Utils.java old mode 100644 new mode 100755 diff --git a/src/seedu/addressbook/data/AddressBook.java b/src/seedu/addressbook/data/AddressBook.java old mode 100644 new mode 100755 diff --git a/src/seedu/addressbook/data/exception/DuplicateDataException.java b/src/seedu/addressbook/data/exception/DuplicateDataException.java old mode 100644 new mode 100755 diff --git a/src/seedu/addressbook/data/exception/IllegalValueException.java b/src/seedu/addressbook/data/exception/IllegalValueException.java old mode 100644 new mode 100755 diff --git a/src/seedu/addressbook/data/person/Address.java b/src/seedu/addressbook/data/person/Address.java old mode 100644 new mode 100755 diff --git a/src/seedu/addressbook/data/person/Email.java b/src/seedu/addressbook/data/person/Email.java old mode 100644 new mode 100755 diff --git a/src/seedu/addressbook/data/person/Name.java b/src/seedu/addressbook/data/person/Name.java old mode 100644 new mode 100755 diff --git a/src/seedu/addressbook/data/person/Person.java b/src/seedu/addressbook/data/person/Person.java old mode 100644 new mode 100755 diff --git a/src/seedu/addressbook/data/person/Phone.java b/src/seedu/addressbook/data/person/Phone.java old mode 100644 new mode 100755 diff --git a/src/seedu/addressbook/data/person/ReadOnlyPerson.java b/src/seedu/addressbook/data/person/ReadOnlyPerson.java old mode 100644 new mode 100755 diff --git a/src/seedu/addressbook/data/person/UniquePersonList.java b/src/seedu/addressbook/data/person/UniquePersonList.java old mode 100644 new mode 100755 diff --git a/src/seedu/addressbook/data/tag/Tag.java b/src/seedu/addressbook/data/tag/Tag.java old mode 100644 new mode 100755 diff --git a/src/seedu/addressbook/data/tag/Tagging.java b/src/seedu/addressbook/data/tag/Tagging.java new file mode 100644 index 000000000..fa6d0bbc9 --- /dev/null +++ b/src/seedu/addressbook/data/tag/Tagging.java @@ -0,0 +1,93 @@ +package seedu.addressbook.data.tag; + +import seedu.addressbook.data.person.Person; + +import java.util.ArrayList; +import java.util.Objects; + +/** + * Represents addition or deletion of tag for a person during a session + * + * Used for displaying tags changed at the end of a session + */ + +public class Tagging { + private static ArrayList taggings; + + public enum Action { + ADD, DELETE + } + + private static final String ADD_TAG_SIGN = "+"; + private static final String DELETE_TAG_SIGN = "-"; + + private final Person person; + private final Tag tag; + private final Action action; + + /** + * @param person person whose tag was changed + * @param tag tag that was changed + * @param action type of action executed + */ + public Tagging(Person person, Tag tag, Action action) { + this.person = person; + this.tag = tag; + this.action = action; + } + + /** + * Adds tagging to class-level variable that stores all taggings + */ + public static void addTagging(Tagging tagging) { + taggings.add(tagging); + } + + /** + * Accessor method for obtaining taggings. + * @return all Taggings, representing all changes made to tags since start of session + */ + public static ArrayList getTaggings() { + return taggings; + } + + public Person getPerson() { + return person; + } + + public Tag getTag() { + return tag; + } + + public Action getAction() { + return action; + } + + @Override + public boolean equals(Object obj) { + return obj == this // short circuit if same object + || obj instanceof Tagging // instanceof handles null + && ((Tagging) obj).getPerson().equals(this.person) + && ((Tagging) obj).getTag().equals(this.tag) + && ((Tagging) obj).getAction().equals(this.getAction()); + } + + @Override + public int hashCode() { + return Objects.hash(person, tag, action); + } + + @Override + public String toString() { + StringBuilder builder = new StringBuilder(); + + if (this.action == Action.ADD) { + builder.append(ADD_TAG_SIGN); + } else { + builder.append(DELETE_TAG_SIGN); + } + + builder.append(" " + person.getName() + " " + tag); + return builder.toString(); + } +} \ No newline at end of file diff --git a/src/seedu/addressbook/data/tag/UniqueTagList.java b/src/seedu/addressbook/data/tag/UniqueTagList.java old mode 100644 new mode 100755 diff --git a/src/seedu/addressbook/parser/Parser.java b/src/seedu/addressbook/parser/Parser.java old mode 100644 new mode 100755 diff --git a/src/seedu/addressbook/storage/StorageFile.java b/src/seedu/addressbook/storage/StorageFile.java old mode 100644 new mode 100755 diff --git a/src/seedu/addressbook/storage/jaxb/AdaptedAddressBook.java b/src/seedu/addressbook/storage/jaxb/AdaptedAddressBook.java old mode 100644 new mode 100755 diff --git a/src/seedu/addressbook/storage/jaxb/AdaptedPerson.java b/src/seedu/addressbook/storage/jaxb/AdaptedPerson.java old mode 100644 new mode 100755 diff --git a/src/seedu/addressbook/storage/jaxb/AdaptedTag.java b/src/seedu/addressbook/storage/jaxb/AdaptedTag.java old mode 100644 new mode 100755 diff --git a/src/seedu/addressbook/ui/TextUi.java b/src/seedu/addressbook/ui/TextUi.java old mode 100644 new mode 100755 diff --git a/test/data/StorageFileTest/InvalidData.xml b/test/data/StorageFileTest/InvalidData.xml old mode 100644 new mode 100755 diff --git a/test/data/StorageFileTest/ValidData.xml b/test/data/StorageFileTest/ValidData.xml old mode 100644 new mode 100755 diff --git a/test/expected.txt b/test/expected.txt old mode 100644 new mode 100755 diff --git a/test/input.txt b/test/input.txt old mode 100644 new mode 100755 diff --git a/test/java/seedu/addressbook/commands/AddCommandTest.java b/test/java/seedu/addressbook/commands/AddCommandTest.java old mode 100644 new mode 100755 diff --git a/test/java/seedu/addressbook/commands/DeleteCommandTest.java b/test/java/seedu/addressbook/commands/DeleteCommandTest.java old mode 100644 new mode 100755 diff --git a/test/java/seedu/addressbook/commands/FindCommandTest.java b/test/java/seedu/addressbook/commands/FindCommandTest.java old mode 100644 new mode 100755 diff --git a/test/java/seedu/addressbook/commands/ViewAllCommandTest.java b/test/java/seedu/addressbook/commands/ViewAllCommandTest.java old mode 100644 new mode 100755 diff --git a/test/java/seedu/addressbook/commands/ViewCommandTest.java b/test/java/seedu/addressbook/commands/ViewCommandTest.java old mode 100644 new mode 100755 diff --git a/test/java/seedu/addressbook/common/UtilsTest.java b/test/java/seedu/addressbook/common/UtilsTest.java old mode 100644 new mode 100755 diff --git a/test/java/seedu/addressbook/data/AddressBookTest.java b/test/java/seedu/addressbook/data/AddressBookTest.java old mode 100644 new mode 100755 diff --git a/test/java/seedu/addressbook/parser/ParserTest.java b/test/java/seedu/addressbook/parser/ParserTest.java old mode 100644 new mode 100755 diff --git a/test/java/seedu/addressbook/storage/StorageFileTest.java b/test/java/seedu/addressbook/storage/StorageFileTest.java old mode 100644 new mode 100755 diff --git a/test/java/seedu/addressbook/util/TestUtil.java b/test/java/seedu/addressbook/util/TestUtil.java old mode 100644 new mode 100755 diff --git a/test/java/seedu/addressbook/util/TypicalPersons.java b/test/java/seedu/addressbook/util/TypicalPersons.java old mode 100644 new mode 100755 diff --git a/test/runtests.bat b/test/runtests.bat old mode 100644 new mode 100755