-
Notifications
You must be signed in to change notification settings - Fork 1.7k
AddressBook needs to track tags properly #753
Comments
IIRC, the original intention was to have only one instance of each tag as a list of |
|
Tag renaming is one of the common extensions students do. Also, another possible extension is the ability to set/change color of a tag. As an OOP solution, we should treat tags as an object that is referenced by multiple other objects rather than a value that is being copied to multiple other objects? |
I dunno, I wonder if students in the CS2103 level still have trouble with pointers. Even some SE-EDU developers in the past had trouble deciphering the intent of |
How about we do it the simple way (i.e., no independent tag list) and give the other approach as a 'more OOP' alternative in the dev guide? |
As discussed here, we will be removing |
We keep track of a master tag list which holds all the tags in our address book. The tag list is not used at all. The original intention was for persons; tags to point to the tags in the master tag list. However, implementing it in this way may be too complex for CS2103 students to grasp, as discussed in se-edu#753. As discussed in se-edu#794, the tag list in its current state is not needed. Let's remove the master tag list in AddressBook.
We keep track of a master tag list which holds all the tags in our address book. The tag list is not used at all. The original intention was for persons; tags to point to the tags in the master tag list. However, implementing it in this way may be too complex for CS2103 students to grasp, as discussed in se-edu#753. As discussed in se-edu#794, the tag list in its current state is not needed. Let's remove the master tag list in AddressBook.
We keep track of a master tag list which holds all the tags in our address book. The tag list is not used at all. The original intention was for persons; tags to point to the tags in the master tag list. However, implementing it in this way may be too complex for CS2103 students to grasp, as discussed in se-edu#753. As discussed in se-edu#794, the tag list in its current state is not needed. Let's remove the master tag list in AddressBook.
We keep track of a master tag list which holds all the tags in our address book. The tag list is not used at all. The original intention was for persons; tags to point to the tags in the master tag list. However, implementing it in this way may be too complex for CS2103 students to grasp, as discussed in se-edu#753. As discussed in se-edu#794, the tag list in its current state is not needed. Let's remove the master tag list in AddressBook.
We keep track of a master tag list which holds all the tags in our address book. The tag list is not used at all. The original intention was for persons; tags to point to the tags in the master tag list. However, implementing it in this way may be too complex for new developers to grasp, as discussed in se-edu#753. Furthermore, from the discussion in se-edu#794, the tag list in its current state is not needed. Let's remove the master tag list in AddressBook.
We keep track of a master tag list which holds all the tags in our address book. The tag list is not used at all. The original intention was for persons; tags to point to the tags in the master tag list. However, implementing it in this way may be too complex for new developers to grasp, as discussed in se-edu#753. Furthermore, from the discussion in se-edu#794, the tag list in its current state is not needed. Let's remove the master tag list in AddressBook.
We keep track of a master tag list which holds all the tags in our address book. The tag list is not used at all. The original intention was for persons; tags to point to the tags in the master tag list. However, implementing it in this way may be too complex for new developers to grasp, as discussed in se-edu#753. Furthermore, from the discussion in se-edu#794, the tag list in its current state is not needed. Let's remove the master tag list in AddressBook. XmlSerializableAddressBook keeps a list of tags, which is used for storing the master tag list in the AddressBook object. Since AddressBook#resetData(ReadOnlyAddressBook) will restore the master tag list in a new AddressBook object through AddressBook#syncWithMasterList, it is unnecessary to store the master tag list in XmlSerializableAddressBook. Let's also remove tags from XmlSerializableAddressBook.
We keep track of a master tag list which holds all the tags in our address book. The tag list is not used at all. The original intention was for persons; tags to point to the tags in the master tag list. However, implementing it in this way may be too complex for new developers to grasp, as discussed in se-edu#753. Furthermore, from the discussion in se-edu#794, the tag list in its current state is not needed. Let's remove the master tag list in AddressBook.
We keep track of a master tag list which holds all the tags in AddressBook. The tag list is not used at all. The original intention was for tags in Person to point to the tags in the master tag list. However, implementing it in this way may be too complex for new developers to grasp, as discussed in se-edu#753. Furthermore, from the discussion in se-edu#794, the tag list in its current state is not needed. Let's remove the master tag list in AddressBook.
We keep track of a master tag list which holds all the tags in AddressBook. The tag list is not used at all. The original intention was for tags in Person to point to the tags in the master tag list. However, implementing it in this way may be too complex for new developers to grasp, as discussed in se-edu#753. Furthermore, from the discussion in se-edu#794, the tag list in its current state is not needed. Let's remove the master tag list in AddressBook.
We keep track of a master tag list which holds all the tags in AddressBook. The tag list is not used at all. The original intention was for tags in Person to point to the tags in the master tag list. However, implementing it in this way may be too complex for new developers to grasp, as discussed in se-edu#753. Furthermore, from the discussion in se-edu#794, the tag list in its current state is not needed. Let's remove the master tag list in AddressBook.
We keep track of a master tag list which holds all the tags in AddressBook. The tag list is not used at all. The original intention was for tags in Person to point to the tags in the master tag list. However, implementing it in this way may be too complex for new developers to grasp, as discussed in se-edu#753. Furthermore, from the discussion in se-edu#794, the tag list in its current state is not needed. Let's remove the master tag list in AddressBook.
We keep track of a master tag list which holds all the tags in AddressBook. The tag list is not used at all. The original intention was for tags in Person to point to the tags in the master tag list. However, implementing it in this way may be too complex for new developers to grasp, as discussed in se-edu#753. Furthermore, from the discussion in se-edu#794, the tag list in its current state is not needed. Let's remove the master tag list in AddressBook.
We keep track of a master tag list which holds all the tags in AddressBook. The tag list is not implemented correctly. The original intention was for tags in Person to point to the tags in the master tag list. However, implementing it in this way may be too complex for new developers to grasp, as discussed in se-edu#753. Furthermore, from the discussion in se-edu#794, the tag list in its current state is not needed. Let's remove the master tag list in AddressBook.
We keep track of a master tag list which holds all the tags in AddressBook. The tag list is not implemented correctly. The original intention was for tags in Person to point to the tags in the master tag list. However, implementing it in this way may be too complex for new developers to grasp, as discussed in #753. Furthermore, from the discussion in #794, the tag list in its current state is not needed. Let's remove the master tag list in AddressBook. Furthermore, without the master tag list in AddressBook, UniqueTagList is no longer necessary. Let's remove UniqueTagList.
We keep track of a master tag list which holds all the tags in AddressBook. As the master tag list was deemed unnecessary and may be too complex for new developers to grasp, as discussed in se-edu/addressbook-level4#753 and se-edu/addressbook-level4#794, the master tag list has already been removed in addressbook-level4 in se-edu/addressbook-level4#824. As such, the master tag list should also be removed here for consistency. Let's remove the master tag list in AddressBook.
We keep track of a master tag list which holds all the tags in AddressBook. As the master tag list was deemed unnecessary and may be too complex for new developers to grasp, as discussed in se-edu/addressbook-level4#753 and se-edu/addressbook-level4#794, the master tag list has already been removed in addressbook-level4 in se-edu/addressbook-level4#824. As such, the master tag list should also be removed here for consistency. Let's remove the master tag list in AddressBook.
We keep track of a master tag list which holds all the tags in AddressBook. As the master tag list was deemed unnecessary and may be too complex for new developers to grasp, as discussed in se-edu/addressbook-level4#753 and se-edu/addressbook-level4#794, the master tag list has already been removed in addressbook-level4 in se-edu/addressbook-level4#824. As such, the master tag list should also be removed here for consistency. Let's remove the master tag list in AddressBook.
We keep track of a master tag list which holds all the tags in AddressBook. As the master tag list was deemed unnecessary and may be too complex for new developers to grasp, as discussed in se-edu/addressbook-level4#753 and se-edu/addressbook-level4#794, the master tag list has already been removed in addressbook-level4 in se-edu/addressbook-level4#825. As such, the master tag list should also be removed here for consistency. Let's remove the master tag list in AddressBook. Similarly, it is now unnecessary for AdaptedAddressBook to store a master tag list as well. Let's remove the master tag list in AdaptedAddressBook.
We keep track of a master tag list which holds all the tags in AddressBook. As the master tag list was deemed unnecessary and may be too complex for new developers to grasp, as discussed in se-edu/addressbook-level4#753 and se-edu/addressbook-level4#794, the master tag list has already been removed in addressbook-level4 in se-edu/addressbook-level4#825. As such, the master tag list should also be removed here for consistency. Let's remove the master tag list in AddressBook. Similarly, it is now unnecessary for AdaptedAddressBook to store a master tag list as well. Let's remove the master tag list in AdaptedAddressBook.
We keep track of a master tag list which holds all the tags in AddressBook. As the master tag list was deemed unnecessary and may be too complex for new developers to grasp, as discussed in se-edu/addressbook-level4#753 and se-edu/addressbook-level4#794, the master tag list has already been removed in addressbook-level4 in se-edu/addressbook-level4#825. As such, the master tag list should also be removed here for consistency. Let's remove the master tag list in AddressBook. Similarly, it is now unnecessary for AdaptedAddressBook to store a master tag list as well. Let's remove the master tag list in AdaptedAddressBook.
We keep track of a master tag list which holds all the tags in AddressBook. As the master tag list was deemed unnecessary and may be too complex for new developers to grasp, as discussed in se-edu/addressbook-level4#753 and se-edu/addressbook-level4#794, the master tag list has already been removed in addressbook-level4 in se-edu/addressbook-level4#825. As such, the master tag list should also be removed here for consistency. Let's remove the master tag list in AddressBook. Similarly, it is now unnecessary for AdaptedAddressBook to store a master tag list as well. Let's remove the master tag list in AdaptedAddressBook.
We keep track of a master tag list which holds all the tags in AddressBook. As the master tag list was deemed unnecessary and may be too complex for new developers to grasp, as discussed in se-edu/addressbook-level4#753 and se-edu/addressbook-level4#794, the master tag list has already been removed in AB4 by se-edu/addressbook-level4#825. UniqueTagList was also deemed unnecessary and removed in addressbook-level4 after the master tag list is removed. As such, the master tag list and UniqueTagList class should also be removed in the lower level projects. Let's remove the master tag list in AddressBook and AdaptedAddressBook, as well as the UniqueTagList class. [1/3] AddressBook: remove master tag list [2/3] Remove UniqueTagList class [3/3] docs: update component on UniqueTagList
We keep track of a master tag list which holds all the tags in AddressBook. As the master tag list was deemed unnecessary and may be too complex for new developers to grasp, as discussed in se-edu/addressbook-level4#753 and se-edu/addressbook-level4#794, the master tag list has already been removed in addressbook-level4 in se-edu/addressbook-level4#825. As such, the master tag list should also be removed here for consistency. Let's remove the master tag list in AddressBook. Similarly, it is now unnecessary for AdaptedAddressBook to store a master tag list as well. Let's remove the master tag list in AdaptedAddressBook.
We keep track of a master tag list which holds all the tags in AddressBook. As the master tag list was deemed unnecessary and may be too complex for new developers to grasp, as discussed in se-edu/addressbook-level4#753 and se-edu/addressbook-level4#794, the master tag list has already been removed in addressbook-level4 in se-edu/addressbook-level4#825. As such, the master tag list should also be removed here for consistency. Let's remove the master tag list in AddressBook. Similarly, it is now unnecessary for AdaptedAddressBook to store a master tag list as well. Let's remove the master tag list in AdaptedAddressBook.
We keep track of a master tag list which holds all the tags in AddressBook. As the master tag list was deemed unnecessary and may be too complex for new developers to grasp, as discussed in se-edu/addressbook-level4#753 and se-edu/addressbook-level4#794, the master tag list has already been removed in addressbook-level4 in se-edu/addressbook-level4#825. As such, the master tag list should also be removed here for consistency. Let's remove the master tag list in AddressBook. Similarly, it is now unnecessary for AdaptedAddressBook to store a master tag list as well. Let's remove the master tag list in AdaptedAddressBook.
We keep track of a master tag list which holds all the tags in AddressBook. As the master tag list was deemed unnecessary and may be too complex for new developers to grasp, as discussed in se-edu/addressbook-level4#753 and se-edu/addressbook-level4#794, the master tag list has already been removed in addressbook-level4 in se-edu/addressbook-level4#825. As such, the master tag list should also be removed here for consistency. Let's remove the master tag list in AddressBook. Similarly, it is now unnecessary for AdaptedAddressBook to store a master tag list as well. Let's remove the master tag list in AdaptedAddressBook.
We keep track of a master tag list which holds all the tags in AddressBook. As the master tag list was deemed unnecessary and may be too complex for new developers to grasp, as discussed in se-edu/addressbook-level4#753 and se-edu/addressbook-level4#794, the master tag list has already been removed in addressbook-level4 in se-edu/addressbook-level4#825. As such, the master tag list should also be removed here for consistency. Let's remove the master tag list in AddressBook. Similarly, it is now unnecessary for AdaptedAddressBook to store a master tag list as well. Let's remove the master tag list in AdaptedAddressBook.
We keep track of a master tag list which holds all the tags in AddressBook. As the master tag list was deemed unnecessary and may be too complex for new developers to grasp, as discussed in se-edu/addressbook-level4#753 and se-edu/addressbook-level4#794, the master tag list has already been removed in AB4 by se-edu/addressbook-level4#825. UniqueTagList was also deemed unnecessary and removed in addressbook-level4 after the master tag list is removed. As such, the master tag list and UniqueTagList class should also be removed in the lower level projects. Let's remove the master tag list in AddressBook and AdaptedAddressBook, as well as the UniqueTagList class.
addressbook-level4/src/main/java/seedu/address/model/AddressBook.java
Lines 89 to 91 in edc42f0
addressbook-level4/src/main/java/seedu/address/model/AddressBook.java
Lines 111 to 113 in edc42f0
There's also the issue that tags are not removed once the last person using that tag is removed from the address book (i.e. the set of tags will just keep growing :-P)
The tag list is also actually not used at all. We should either find some use for it, or remove it.
The text was updated successfully, but these errors were encountered: