From 701f2b211b1eeb0dc7d40a3c12b373000a835a80 Mon Sep 17 00:00:00 2001 From: Chengcheng Date: Wed, 22 Feb 2017 10:04:24 +0800 Subject: [PATCH 01/10] Create Tagging class --- src/seedu/addressbook/data/tag/Tagging.java | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) create mode 100644 src/seedu/addressbook/data/tag/Tagging.java diff --git a/src/seedu/addressbook/data/tag/Tagging.java b/src/seedu/addressbook/data/tag/Tagging.java new file mode 100644 index 000000000..fc2881a0a --- /dev/null +++ b/src/seedu/addressbook/data/tag/Tagging.java @@ -0,0 +1,16 @@ +package seedu.addressbook.data.tag; +import seedu.addressbook.data.person.Person; + +public class Tagging { + private enum TaggingType {ADD, DELETE}; + + private Person _person; + private Tag _tag; + private TaggingType _taggingType; + + public Tagging(Person person, Tag tag, TaggingType taggingType){ + _person = person; + _tag = tag; + _taggingType = taggingType; + } +} From 02813e9804fcea7391bf1c78f2b49f610ba4cc02 Mon Sep 17 00:00:00 2001 From: Chengcheng Date: Wed, 22 Feb 2017 10:07:14 +0800 Subject: [PATCH 02/10] Change TaggingType to public for Person Class to access --- src/seedu/addressbook/data/tag/Tagging.java | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/src/seedu/addressbook/data/tag/Tagging.java b/src/seedu/addressbook/data/tag/Tagging.java index fc2881a0a..7c67d5325 100644 --- a/src/seedu/addressbook/data/tag/Tagging.java +++ b/src/seedu/addressbook/data/tag/Tagging.java @@ -1,16 +1,20 @@ package seedu.addressbook.data.tag; import seedu.addressbook.data.person.Person; +import java.util.ArrayList; public class Tagging { - private enum TaggingType {ADD, DELETE}; + public enum TaggingType {ADD, DELETE}; private Person _person; private Tag _tag; private TaggingType _taggingType; + public static ArrayList Taggings; + public Tagging(Person person, Tag tag, TaggingType taggingType){ _person = person; _tag = tag; _taggingType = taggingType; + Taggings.add(this); } } From 8dfa669c9a9316c6ae4b683ec7d97f8e3e1d3c02 Mon Sep 17 00:00:00 2001 From: Chengcheng Date: Wed, 22 Feb 2017 10:13:25 +0800 Subject: [PATCH 03/10] Accidentally reversed hunk --- src/seedu/addressbook/data/tag/Tagging.java | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/src/seedu/addressbook/data/tag/Tagging.java b/src/seedu/addressbook/data/tag/Tagging.java index 7c67d5325..6bb3a95d4 100644 --- a/src/seedu/addressbook/data/tag/Tagging.java +++ b/src/seedu/addressbook/data/tag/Tagging.java @@ -8,13 +8,12 @@ public enum TaggingType {ADD, DELETE}; private Person _person; private Tag _tag; private TaggingType _taggingType; - - public static ArrayList Taggings; - + public static ArrayList Taggings; + public Tagging(Person person, Tag tag, TaggingType taggingType){ _person = person; _tag = tag; _taggingType = taggingType; - Taggings.add(this); + Taggings.add(this); } } From 1df4ec3bef130caba2beb82d56a12047ce91f4d0 Mon Sep 17 00:00:00 2001 From: Chengcheng Date: Wed, 22 Feb 2017 10:17:26 +0800 Subject: [PATCH 04/10] Add header comment for Tagging.java --- src/seedu/addressbook/data/AddressBook.java | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/src/seedu/addressbook/data/AddressBook.java b/src/seedu/addressbook/data/AddressBook.java index 6a37d752d..7bbff2798 100644 --- a/src/seedu/addressbook/data/AddressBook.java +++ b/src/seedu/addressbook/data/AddressBook.java @@ -4,7 +4,10 @@ import seedu.addressbook.data.person.UniquePersonList.*; import seedu.addressbook.data.tag.UniqueTagList; import seedu.addressbook.data.tag.UniqueTagList.*; +import seedu.addressbook.data.tag.Tagging; +import seedu.addressbook.data.tag.Tagging.TaggingType; import seedu.addressbook.data.tag.Tag; +import java.util.ArrayList; import java.util.HashMap; import java.util.HashSet; @@ -22,13 +25,14 @@ public class AddressBook { private final UniquePersonList allPersons; private final UniqueTagList allTags; // can contain tags not attached to any person - + private static ArrayList allTaggings; /** * Creates an empty address book. */ public AddressBook() { allPersons = new UniquePersonList(); allTags = new UniqueTagList(); + allTaggings = new ArrayList(); } /** From 2ef731bfd81df4826b4b7d5cd4fe958c77c59969 Mon Sep 17 00:00:00 2001 From: Chengcheng Date: Wed, 22 Feb 2017 10:18:33 +0800 Subject: [PATCH 05/10] Add Header comments for Tagging --- src/seedu/addressbook/data/tag/Tagging.java | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/src/seedu/addressbook/data/tag/Tagging.java b/src/seedu/addressbook/data/tag/Tagging.java index 6bb3a95d4..92e0c57d0 100644 --- a/src/seedu/addressbook/data/tag/Tagging.java +++ b/src/seedu/addressbook/data/tag/Tagging.java @@ -1,7 +1,13 @@ package seedu.addressbook.data.tag; import seedu.addressbook.data.person.Person; import java.util.ArrayList; - +/** + * Association Class + * represent an adding or deleting of a tag + * for a specific person that happened during a specific session + * @author LiChengcheng + * + */ public class Tagging { public enum TaggingType {ADD, DELETE}; From 9aca93b5fcca5678062bab71c6ca48e3a50b8d97 Mon Sep 17 00:00:00 2001 From: Chengcheng Date: Wed, 22 Feb 2017 10:22:08 +0800 Subject: [PATCH 06/10] Remove tagging list from tagging class --- src/seedu/addressbook/data/tag/Tagging.java | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/src/seedu/addressbook/data/tag/Tagging.java b/src/seedu/addressbook/data/tag/Tagging.java index 92e0c57d0..9da318ee4 100644 --- a/src/seedu/addressbook/data/tag/Tagging.java +++ b/src/seedu/addressbook/data/tag/Tagging.java @@ -14,12 +14,10 @@ public enum TaggingType {ADD, DELETE}; private Person _person; private Tag _tag; private TaggingType _taggingType; - public static ArrayList Taggings; - + public Tagging(Person person, Tag tag, TaggingType taggingType){ _person = person; _tag = tag; _taggingType = taggingType; - Taggings.add(this); } } From 8a49a4c594f06bb368fd6323d7276e18415884e7 Mon Sep 17 00:00:00 2001 From: Chengcheng Date: Wed, 22 Feb 2017 10:29:59 +0800 Subject: [PATCH 07/10] Add addTagging method in Addressbook to keep track of tags added/deleted --- src/seedu/addressbook/data/AddressBook.java | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/src/seedu/addressbook/data/AddressBook.java b/src/seedu/addressbook/data/AddressBook.java index 7bbff2798..7855be6eb 100644 --- a/src/seedu/addressbook/data/AddressBook.java +++ b/src/seedu/addressbook/data/AddressBook.java @@ -93,6 +93,17 @@ public void addPerson(Person toAdd) throws DuplicatePersonException { public void addTag(Tag toAdd) throws DuplicateTagException { allTags.add(toAdd); } + + /** + * Adds a tagging to the list of taggings present in the address book + * @param person + * @param tag + * @param taggingType + */ + public void addTagging(Person person, Tag tag, TaggingType taggingType){ + Tagging toAdd = new Tagging(person, tag, taggingType); + allTaggings.add(toAdd); + } /** * Checks if an equivalent person exists in the address book. From 27c7f8ce781f38cbddb3c36eade57a538361155e Mon Sep 17 00:00:00 2001 From: Chengcheng Date: Wed, 22 Feb 2017 10:48:07 +0800 Subject: [PATCH 08/10] Add to String method for tagging --- src/seedu/addressbook/data/tag/Tagging.java | 36 +++++++++++++++++++++ 1 file changed, 36 insertions(+) diff --git a/src/seedu/addressbook/data/tag/Tagging.java b/src/seedu/addressbook/data/tag/Tagging.java index 9da318ee4..3da020081 100644 --- a/src/seedu/addressbook/data/tag/Tagging.java +++ b/src/seedu/addressbook/data/tag/Tagging.java @@ -14,10 +14,46 @@ public enum TaggingType {ADD, DELETE}; private Person _person; private Tag _tag; private TaggingType _taggingType; + + public static final String ADD_TAGGING_EXPRESSION = "+"; + public static final String DELETE_TAGGING_EXPRESSION = "-"; public Tagging(Person person, Tag tag, TaggingType taggingType){ _person = person; _tag = tag; _taggingType = taggingType; } + + /** + * @return the _person + */ + public Person get_person() { + return _person; + } + + /** + * @return the _tag + */ + public Tag get_tag() { + return _tag; + } + + /** + * @return the _taggingType + */ + public TaggingType get_taggingType() { + return _taggingType; + } + + private String getTypeExpression(){ + if(this.get_taggingType().equals(TaggingType.ADD)){ + return ADD_TAGGING_EXPRESSION; + } + return DELETE_TAGGING_EXPRESSION; + } + + public String toString(){ + return this.getTypeExpression()+ " " + this.get_person().getName() + " " + + this.get_tag(); + } } From 4cf0c8c9a48691e2e27b64cfc73e774cdbc4c977 Mon Sep 17 00:00:00 2001 From: Chengcheng Date: Wed, 22 Feb 2017 10:57:02 +0800 Subject: [PATCH 09/10] Add printTaggings method and clearTaggings method for Addressbook --- src/seedu/addressbook/data/AddressBook.java | 20 ++++++++++++++++++-- 1 file changed, 18 insertions(+), 2 deletions(-) diff --git a/src/seedu/addressbook/data/AddressBook.java b/src/seedu/addressbook/data/AddressBook.java index 7855be6eb..0b4e3927f 100644 --- a/src/seedu/addressbook/data/AddressBook.java +++ b/src/seedu/addressbook/data/AddressBook.java @@ -138,13 +138,29 @@ public void removeTag(Tag toRemove) throws TagNotFoundException { } /** - * Clears all persons and tags from the address book. + * Clears all persons, tags and taggings from the address book. */ public void clear() { allPersons.clear(); allTags.clear(); + allTaggings.clear(); } - + /** + * Print the list of taggings + */ + public void printTaggings(){ + for(Tagging tagging: allTaggings){ + System.out.println(tagging.toString()); + } + } + + /** + * Clear the list of taggings + */ + public void clearTaggings(){ + allTaggings.clear(); + } + /** * Defensively copied UniquePersonList of all persons in the address book at the time of the call. */ From 73898124a51463297e60542acbfebe9e4b3dad9b Mon Sep 17 00:00:00 2001 From: Chengcheng Date: Wed, 22 Feb 2017 11:02:50 +0800 Subject: [PATCH 10/10] Modify existCommand to print out tagging added during this session and clear the tagging list for another session --- src/seedu/addressbook/commands/ExitCommand.java | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/seedu/addressbook/commands/ExitCommand.java b/src/seedu/addressbook/commands/ExitCommand.java index 2f280395c..0ec095d0c 100644 --- a/src/seedu/addressbook/commands/ExitCommand.java +++ b/src/seedu/addressbook/commands/ExitCommand.java @@ -13,6 +13,8 @@ public class ExitCommand extends Command { @Override public CommandResult execute() { + addressBook.printTaggings(); + addressBook.clearTaggings(); return new CommandResult(MESSAGE_EXIT_ACKNOWEDGEMENT); }