From bab97c801fea76251ec3a6b7e26a05c33c9463d2 Mon Sep 17 00:00:00 2001 From: ReflectiveObsidian Date: Sun, 14 Apr 2024 16:14:42 +0800 Subject: [PATCH 1/8] Add implementation text for person commands (exclude diagrams) --- docs/DeveloperGuide.md | 93 ++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 93 insertions(+) diff --git a/docs/DeveloperGuide.md b/docs/DeveloperGuide.md index b4c07aaefc3..17378b59271 100644 --- a/docs/DeveloperGuide.md +++ b/docs/DeveloperGuide.md @@ -272,6 +272,99 @@ Classes used by multiple components are in the `seedu.addressbook.commons` packa This section describes some noteworthy details on how certain features are implemented. +### Add Person feature + +This feature is the `Add` command that allows users to add a person to the address book. +This feature creates a person with 0 or more attributes, and then adds that person to the address book. + +#### Implementation + +Adding a person is carried out using `AddCommand` and `AddCommandParser`. +The `AddCommand` class extends the `Command` class. +The `AddCommandParser` class extends the `Parser` class. + +Given below is an example usage scenario and how adding a person works. + +Step 1: The user enters a command to add a person with `Name` attribute to their family tree in Gene-nie. +For example: `add /Name Bob`. + +Step 2: The `LogicManager` component receives this command as a string and passes it to the `AddressBookParser`. + +Step 3: The `AddressBookParser` recognizes the `add` keyword and creates a new `AddCommandParser`. + +Step 4: The `AddCommandParser` parses the rest of the command `/Name Bob`. +It creates a `HashMap` containing the attribute `Name` with value `Bob`. +It then creates a new `AddCommand` with this `HashMap`. + +Step 5: The `AddCommand` is executed. + +Step 6: `AddCommand#execute` calls the following method from `Attribute`: +* `Attribute#getName` It retrieves the name of all the attributes in the HashMap to check for duplicates. + +Step 7: If there are no duplicate attributes, `AddCommand#execute` calls the `Person` constructor to create a person with the requested attribute. + +Step 8: `AddCommand#execute` continues by calling the following method from `Model`: +* `Model#addPerson(Person)` It adds a given person to the address book. + +Step 9: The `AddCommand#execute` method returns the `CommandResult` object to the `LogicManager` component. + +The following sequence diagram shows how adding a person works: + + + +The following activity diagram sheds more light on exactly what happens when a user executes the 'add' command: + + + +#### Design Considerations + +##### Aspect: When to check for duplicate attributes +* Alternative 1 (current choice): `AddCommand#execute` checks for duplicates before adding the person to the addressbook. + * Pros: Makes the command more atomic - if there is an error, no changes are made. + * Cons: Less efficient as the program iterates through all attributes twice. +* Alternative 2: `AddCommand#execute` adds an empty person to the address book and then checks for duplicates while appending attributes to that person. + * Pros: Shorter code, less repetition of actions. + * Cons: Duplicate attributes would halt command and leave the address book in a partially edited state. Fixing this would result in less readable code. + +### Delete Person feature + +This feature is the `Delete` command that allows users to remove a person from the address book. + +#### Implementation + +Deleting a person is carried out using `DeleteCommand` and `DeleteCommandParser`. +The `DeleteCommand` class extends the `Command` class. +The `DeleteCommandParser` class extends the `Parser` class. + +Given below is an example usage scenario and how deleting a person works. + +Step 1: The user enters a command to delete a person with the UUID `0001`. +For example: `delete /0001`. + +Step 2: The `LogicManager` component receives this command as a string and passes it to the `AddressBookParser`. + +Step 3: The `AddressBookParser` recognizes the `delete` keyword and creates a new `DeleteCommandParser`. + +Step 4: The `DeleteCommandParser` parses the rest of the command `/0001`. +It then creates a new `DeleteCommand` with the UUID `0001`. + +Step 5: The `DeleteCommand` is executed. + +Step 6: `DeleteCommand#execute` continues by calling the following method from `Model`: +* `Model#getFullUuid(String)` It takes in the partial 4-character UUID provided by the user and converts it to the `UUID` object representative of the person to delete. +* `Model#getPersonByUuid(UUID)` It takes the full UUID obtained earlier and returns the corresponding `Person` object. +* `Model#deletePerson(Person)` It deletes the provided person from the address book. + +Step 7: The `DeleteCommand#execute` method returns the `CommandResult` object to the `LogicManager` component. + +The following sequence diagram shows how deleting a person works: + + + +The following activity diagram sheds more light on exactly what happens when a user executes the 'delete' command: + + + ### Add Attribute feature An `AddAttribute` feature that allows users to add attributes to a person in the address book. This feature ensures that only unique attributes are added to a person, maintaining data integrity. From 845936036c763b4a59136c81898381e77fc39e69 Mon Sep 17 00:00:00 2001 From: ReflectiveObsidian Date: Sun, 14 Apr 2024 21:12:31 +0800 Subject: [PATCH 2/8] Update DG of implementation of Person commands to match intended behaviour. --- docs/DeveloperGuide.md | 19 +++--- docs/diagrams/AddPersonActivityDiagram.puml | 24 ++++++++ docs/diagrams/AddPersonSequenceDiagram.puml | 57 ++++++++++++++++++ .../diagrams/DeletePersonActivityDiagram.puml | 25 ++++++++ .../diagrams/DeletePersonSequenceDiagram.puml | 49 +++++++++++++++ docs/images/AddPersonActivityDiagram.png | Bin 0 -> 36118 bytes docs/images/AddPersonSequenceDiagram.png | Bin 0 -> 41092 bytes docs/images/DeletePersonActivityDiagram.png | Bin 0 -> 39197 bytes docs/images/DeletePersonSequenceDiagram.png | Bin 0 -> 32759 bytes 9 files changed, 163 insertions(+), 11 deletions(-) create mode 100644 docs/diagrams/AddPersonActivityDiagram.puml create mode 100644 docs/diagrams/AddPersonSequenceDiagram.puml create mode 100644 docs/diagrams/DeletePersonActivityDiagram.puml create mode 100644 docs/diagrams/DeletePersonSequenceDiagram.puml create mode 100644 docs/images/AddPersonActivityDiagram.png create mode 100644 docs/images/AddPersonSequenceDiagram.png create mode 100644 docs/images/DeletePersonActivityDiagram.png create mode 100644 docs/images/DeletePersonSequenceDiagram.png diff --git a/docs/DeveloperGuide.md b/docs/DeveloperGuide.md index 17378b59271..3fdb14ce814 100644 --- a/docs/DeveloperGuide.md +++ b/docs/DeveloperGuide.md @@ -295,26 +295,22 @@ Step 3: The `AddressBookParser` recognizes the `add` keyword and creates a new ` Step 4: The `AddCommandParser` parses the rest of the command `/Name Bob`. It creates a `HashMap` containing the attribute `Name` with value `Bob`. It then creates a new `AddCommand` with this `HashMap`. +In this step, duplicate attribute names are also checked for, as part of the HashMap creation process in ParserUtil. Step 5: The `AddCommand` is executed. -Step 6: `AddCommand#execute` calls the following method from `Attribute`: -* `Attribute#getName` It retrieves the name of all the attributes in the HashMap to check for duplicates. - -Step 7: If there are no duplicate attributes, `AddCommand#execute` calls the `Person` constructor to create a person with the requested attribute. - -Step 8: `AddCommand#execute` continues by calling the following method from `Model`: +Step 6: `AddCommand#execute` continues by calling the following method from `Model`: * `Model#addPerson(Person)` It adds a given person to the address book. -Step 9: The `AddCommand#execute` method returns the `CommandResult` object to the `LogicManager` component. +Step 7: The `AddCommand#execute` method returns the `CommandResult` object to the `LogicManager` component. The following sequence diagram shows how adding a person works: - +![AddPersonSequenceDiagram](images/AddPersonSequenceDiagram.png) The following activity diagram sheds more light on exactly what happens when a user executes the 'add' command: - +![AddPersonActivityDiagram](images/AddPersonActivityDiagram.png) #### Design Considerations @@ -354,16 +350,17 @@ Step 6: `DeleteCommand#execute` continues by calling the following method from ` * `Model#getFullUuid(String)` It takes in the partial 4-character UUID provided by the user and converts it to the `UUID` object representative of the person to delete. * `Model#getPersonByUuid(UUID)` It takes the full UUID obtained earlier and returns the corresponding `Person` object. * `Model#deletePerson(Person)` It deletes the provided person from the address book. +* `Model#deleteRelationshipsOfPerson(UUID)` It deletes all relationships associated with the person being deleted. Step 7: The `DeleteCommand#execute` method returns the `CommandResult` object to the `LogicManager` component. The following sequence diagram shows how deleting a person works: - +![DeletePersonSequenceDiagram](images/DeletePersonSequenceDiagram.png) The following activity diagram sheds more light on exactly what happens when a user executes the 'delete' command: - +![DeletePersonActivityDiagram](images/DeletePersonActivityDiagram.png) ### Add Attribute feature diff --git a/docs/diagrams/AddPersonActivityDiagram.puml b/docs/diagrams/AddPersonActivityDiagram.puml new file mode 100644 index 00000000000..839f6264842 --- /dev/null +++ b/docs/diagrams/AddPersonActivityDiagram.puml @@ -0,0 +1,24 @@ +@startuml +skin rose +skinparam ActivityFontSize 15 +skinparam ArrowFontSize 12 +skinparam ArrowFontStyle plain + +start + +:User enters command; + +:Parse command for attributes of person to add; + +if (Are there duplicate attribute names?) then (no) +:Create a new person; +:Add the attributes to the person; +:Add the person to the model; +:Save the address book containing the new person to storage; +:Inform user: New person added. Details: ...; +else (yes) + :Inform user: Duplicate attributes found ...; +endif + +stop +@enduml diff --git a/docs/diagrams/AddPersonSequenceDiagram.puml b/docs/diagrams/AddPersonSequenceDiagram.puml new file mode 100644 index 00000000000..b0a641c7352 --- /dev/null +++ b/docs/diagrams/AddPersonSequenceDiagram.puml @@ -0,0 +1,57 @@ +@startuml +!include style.puml +skinparam ArrowFontStyle plain + +Actor User as user USER_COLOR +Participant ":UI" as ui UI_COLOR +Participant ":Logic" as logic LOGIC_COLOR +Participant ":Model" as model MODEL_COLOR +Participant ":Person" as person PERSON_COLOR +Participant ":Attribute" as attribute ATTRIBUTE_COLOR +Participant ":Storage" as storage STORAGE_COLOR + +user -[USER_COLOR]> ui : "add /Name Bob" +activate ui UI_COLOR + +ui -[UI_COLOR]> logic : execute("add /Name Bob") +activate logic LOGIC_COLOR + +loop all attributes in command + logic -[LOGIC_COLOR]> attribute : AttributeUtil.createAttribute(attributeName, attributeValue) + activate attribute ATTRIBUTE_COLOR + + attribute --[ATTRIBUTE_COLOR]> logic : return new Attribute + deactivate attribute +end + +logic -[LOGIC_COLOR]> person : Person(attributesToAdd) +activate person PERSON_COLOR + +person --[PERSON_COLOR]> logic : return new Person +deactivate person +destroy person + +logic -[LOGIC_COLOR]> model : addPerson(personToAdd) +activate model MODEL_COLOR + +model --[MODEL_COLOR]> logic : return added Person +deactivate model + +logic -[LOGIC_COLOR]> storage : saveAddressBook(addressBook) +activate storage STORAGE_COLOR + +storage -[STORAGE_COLOR]> storage : Save to file +activate storage STORAGE_COLOR_T1 +storage --[STORAGE_COLOR]> storage : file saved +deactivate storage STORAGE_COLOR_T1 + +storage --[STORAGE_COLOR]> logic : save complete +deactivate storage +destroy storage + +logic --[LOGIC_COLOR]> ui : CommandResult("New person added. Details: Name: Bob") +deactivate logic + +ui--[UI_COLOR]> user : display "New person added. Details: Name: Bob" +deactivate ui +@enduml diff --git a/docs/diagrams/DeletePersonActivityDiagram.puml b/docs/diagrams/DeletePersonActivityDiagram.puml new file mode 100644 index 00000000000..53a36208250 --- /dev/null +++ b/docs/diagrams/DeletePersonActivityDiagram.puml @@ -0,0 +1,25 @@ +@startuml +skin rose +skinparam ActivityFontSize 15 +skinparam ArrowFontSize 12 +skinparam ArrowFontStyle plain + +start + +:User enters command; + +:Parse command for 4-character UUID; +:Get full UUID; + +if (Does full UUID exist?) then (yes) +:Get the corresponding person from address book; +:Delete person from address book; +:Delete person's relationships from address book; +:Save updated address book with deleted person to storage; +:Inform user: Deleted Person: Details: ...; +else (no) + :Inform user: The UUID provided is invalid...; +endif + +stop +@enduml diff --git a/docs/diagrams/DeletePersonSequenceDiagram.puml b/docs/diagrams/DeletePersonSequenceDiagram.puml new file mode 100644 index 00000000000..d77c29dff46 --- /dev/null +++ b/docs/diagrams/DeletePersonSequenceDiagram.puml @@ -0,0 +1,49 @@ +@startuml +!include style.puml +skinparam ArrowFontStyle plain + +Actor User as user USER_COLOR +Participant ":UI" as ui UI_COLOR +Participant ":Logic" as logic LOGIC_COLOR +Participant ":Model" as model MODEL_COLOR +Participant ":Storage" as storage STORAGE_COLOR + +user -[USER_COLOR]> ui : "delete /0001" +activate ui UI_COLOR + +ui -[UI_COLOR]> logic : execute("delete /0001") +activate logic LOGIC_COLOR + +logic -[LOGIC_COLOR]> model : getFullUuid("0001") +activate model MODEL_COLOR + +model --[MODEL_COLOR]> logic : return UUID object +deactivate model + +logic -[LOGIC_COLOR]> model : person.getPersonbyUuid(targetUuid) +activate model MODEL_COLOR + +model --[MODEL_COLOR]> logic : return matching Person +deactivate model + +logic -[LOGIC_COLOR]> model : deletePerson(personToDelete) +logic -[LOGIC_COLOR]> model : deleteRelationshipsOfPerson(targetUuid) + +logic -[LOGIC_COLOR]> storage : saveAddressBook(addressBook) +activate storage STORAGE_COLOR + +storage -[STORAGE_COLOR]> storage : Save to file +activate storage STORAGE_COLOR_T1 +storage --[STORAGE_COLOR]> storage : file saved +deactivate storage STORAGE_COLOR_T1 + +storage --[STORAGE_COLOR]> logic : save complete +deactivate storage +destroy storage + +logic --[LOGIC_COLOR]> ui : CommandResult("Deleted Person: Details: ...") +deactivate logic + +ui--[UI_COLOR]> user : display "Deleted Person: Details: ..." +deactivate ui +@enduml diff --git a/docs/images/AddPersonActivityDiagram.png b/docs/images/AddPersonActivityDiagram.png new file mode 100644 index 0000000000000000000000000000000000000000..29b65a784f4bfacc5e00b7a22743e75685a51ec0 GIT binary patch literal 36118 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 literal 0 HcmV?d00001 diff --git a/docs/images/DeletePersonActivityDiagram.png b/docs/images/DeletePersonActivityDiagram.png new file mode 100644 index 0000000000000000000000000000000000000000..08ee5ac82cd3121fceed3d6aaedc8a1330c19f51 GIT binary patch literal 39197 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 literal 0 HcmV?d00001 diff --git a/docs/images/DeletePersonSequenceDiagram.png b/docs/images/DeletePersonSequenceDiagram.png new file mode 100644 index 0000000000000000000000000000000000000000..420492a43f8c7245fd6a2b73de47e3039d32186b GIT binary patch literal 32759 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 Date: Sun, 14 Apr 2024 21:12:49 +0800 Subject: [PATCH 3/8] Update behaviour of add person command to match intention --- src/main/java/seedu/address/logic/commands/AddCommand.java | 7 ------- src/main/java/seedu/address/logic/parser/ParserUtil.java | 5 ++++- 2 files changed, 4 insertions(+), 8 deletions(-) diff --git a/src/main/java/seedu/address/logic/commands/AddCommand.java b/src/main/java/seedu/address/logic/commands/AddCommand.java index 517ec53cd45..c9e58923715 100644 --- a/src/main/java/seedu/address/logic/commands/AddCommand.java +++ b/src/main/java/seedu/address/logic/commands/AddCommand.java @@ -59,13 +59,6 @@ public CommandResult execute(Model model) throws CommandException { requireNonNull(model); Attribute[] attributesToAdd = generateAttributeList(); - for (int i = 0; i < attributesToAdd.length; i++) { - for (int j = i; j < attributesToAdd.length; j++) { - if (i != j && attributesToAdd[i].getName().equalsIgnoreCase(attributesToAdd[j].getName())) { - throw new CommandException(Messages.MESSAGE_DUPLICATE_ATTRIBUTES); - } - } - } Person addedPerson = addPersonToModel(model, attributesToAdd); return new CommandResult(String.format(MESSAGE_SUCCESS, Messages.format(addedPerson))); diff --git a/src/main/java/seedu/address/logic/parser/ParserUtil.java b/src/main/java/seedu/address/logic/parser/ParserUtil.java index 8d60f9febee..0f97b60777f 100644 --- a/src/main/java/seedu/address/logic/parser/ParserUtil.java +++ b/src/main/java/seedu/address/logic/parser/ParserUtil.java @@ -47,8 +47,11 @@ public static HashMap getAttributeHashMapFromAttributeStrings(St HashMap attributeMap = new HashMap<>(); for (int i = 0; i < parts.length; i++) { String[] attribute = separateAttributeNamesAndValues(parts[i]); - String attributeName = attribute[0]; + String attributeName = attribute[0].toLowerCase(); String attributeValue = attribute[1]; + if (attributeMap.containsKey(attributeName.toLowerCase())) { + throw new ParseException(Messages.MESSAGE_DUPLICATE_ATTRIBUTES); + } attributeMap.put(attributeName, attributeValue); } return attributeMap; From cf016c9930e377a671b552bcc19a166b8b4cca53 Mon Sep 17 00:00:00 2001 From: ReflectiveObsidian Date: Sun, 14 Apr 2024 21:21:21 +0800 Subject: [PATCH 4/8] Update tests --- .../seedu/address/logic/commands/AddCommandTest.java | 10 +--------- .../address/logic/parser/AddCommandParserTest.java | 10 +++++----- .../address/logic/parser/AddressBookParserTest.java | 4 ++-- .../seedu/address/logic/parser/ParserUtilTest.java | 4 ++-- 4 files changed, 10 insertions(+), 18 deletions(-) diff --git a/src/test/java/seedu/address/logic/commands/AddCommandTest.java b/src/test/java/seedu/address/logic/commands/AddCommandTest.java index 28338906591..d9b72b5f919 100644 --- a/src/test/java/seedu/address/logic/commands/AddCommandTest.java +++ b/src/test/java/seedu/address/logic/commands/AddCommandTest.java @@ -19,6 +19,7 @@ import seedu.address.commons.core.GuiSettings; import seedu.address.commons.util.ResultContainer; import seedu.address.logic.commands.exceptions.CommandException; +import seedu.address.logic.parser.exceptions.ParseException; import seedu.address.model.AddressBook; import seedu.address.model.Model; import seedu.address.model.ModelManager; @@ -90,15 +91,6 @@ public void toStringMethod() { assertEquals(expected, addCommand.toString()); } - @Test - public void multipleSameAttributes() { - HashMap aliceHashMap = new HashMap<>(); - aliceHashMap.put("Name", "Alice"); - aliceHashMap.put("name", "Alice"); - AddCommand addCommand = new AddCommand(aliceHashMap); - assertThrows(CommandException.class, () -> addCommand.execute(model)); - } - /** * A default model stub that have all of the methods failing. */ diff --git a/src/test/java/seedu/address/logic/parser/AddCommandParserTest.java b/src/test/java/seedu/address/logic/parser/AddCommandParserTest.java index b5e5db1ee20..4daf35924a1 100644 --- a/src/test/java/seedu/address/logic/parser/AddCommandParserTest.java +++ b/src/test/java/seedu/address/logic/parser/AddCommandParserTest.java @@ -24,7 +24,7 @@ public class AddCommandParserTest { @Test public void parse_singleAttribute_success() { HashMap expectedAttributeMap = new HashMap<>(); - expectedAttributeMap.put("Name", VALID_NAME_BOB); + expectedAttributeMap.put("name", VALID_NAME_BOB); // whitespace only preamble assertParseSuccess(parser, "add /Name " + VALID_NAME_BOB, new AddCommand(expectedAttributeMap)); @@ -33,10 +33,10 @@ public void parse_singleAttribute_success() { @Test public void parse_multipleAttributes_success() { HashMap expectedAttributeMap = new HashMap<>(); - expectedAttributeMap.put("Name", VALID_NAME_BOB); - expectedAttributeMap.put("Phone", VALID_PHONE_BOB); - expectedAttributeMap.put("Email", VALID_EMAIL_BOB); - expectedAttributeMap.put("Address", VALID_ADDRESS_BOB); + expectedAttributeMap.put("name", VALID_NAME_BOB); + expectedAttributeMap.put("phone", VALID_PHONE_BOB); + expectedAttributeMap.put("email", VALID_EMAIL_BOB); + expectedAttributeMap.put("address", VALID_ADDRESS_BOB); assertParseSuccess(parser, "add /Name " + VALID_NAME_BOB + " /Phone " + VALID_PHONE_BOB + " /Email " diff --git a/src/test/java/seedu/address/logic/parser/AddressBookParserTest.java b/src/test/java/seedu/address/logic/parser/AddressBookParserTest.java index bbf1e074f5d..161ad504ed0 100644 --- a/src/test/java/seedu/address/logic/parser/AddressBookParserTest.java +++ b/src/test/java/seedu/address/logic/parser/AddressBookParserTest.java @@ -44,12 +44,12 @@ public class AddressBookParserTest { @Test public void parseCommand_add() throws Exception { Person person = new Person(new Attribute[0]); - person.updateAttribute(new NameAttribute("Name", "Amy Bee")); + person.updateAttribute(new NameAttribute("name", "Amy Bee")); AddCommand command = (AddCommand) parser.parseCommand( AddCommand.COMMAND_WORD + " /Name Amy Bee"); HashMap attributes = new HashMap<>(); - attributes.put("Name", "Amy Bee"); + attributes.put("name", "Amy Bee"); assertEquals(new AddCommand(attributes), command); } diff --git a/src/test/java/seedu/address/logic/parser/ParserUtilTest.java b/src/test/java/seedu/address/logic/parser/ParserUtilTest.java index 82a01d71755..1a42248754a 100644 --- a/src/test/java/seedu/address/logic/parser/ParserUtilTest.java +++ b/src/test/java/seedu/address/logic/parser/ParserUtilTest.java @@ -54,8 +54,8 @@ public void getAttributeHashMapFromAttributeStrings_emptyArray_emptyHashMap() { public void getAttributeHashMapFromAttributeStrings_validArray_validHashMap() { String[] parts = {"Name Rachel", " Phone 123456 "}; try { - assertEquals("Rachel", ParserUtil.getAttributeHashMapFromAttributeStrings(parts).get("Name")); - assertEquals("123456", ParserUtil.getAttributeHashMapFromAttributeStrings(parts).get("Phone")); + assertEquals("Rachel", ParserUtil.getAttributeHashMapFromAttributeStrings(parts).get("name")); + assertEquals("123456", ParserUtil.getAttributeHashMapFromAttributeStrings(parts).get("phone")); } catch (ParseException e) { e.printStackTrace(); } From aa3de73037d9120d5f4be3a50b0205184563ca17 Mon Sep 17 00:00:00 2001 From: ReflectiveObsidian Date: Sun, 14 Apr 2024 21:23:37 +0800 Subject: [PATCH 5/8] Fix unused import --- src/test/java/seedu/address/logic/commands/AddCommandTest.java | 1 - 1 file changed, 1 deletion(-) diff --git a/src/test/java/seedu/address/logic/commands/AddCommandTest.java b/src/test/java/seedu/address/logic/commands/AddCommandTest.java index d9b72b5f919..9878d7dbb94 100644 --- a/src/test/java/seedu/address/logic/commands/AddCommandTest.java +++ b/src/test/java/seedu/address/logic/commands/AddCommandTest.java @@ -19,7 +19,6 @@ import seedu.address.commons.core.GuiSettings; import seedu.address.commons.util.ResultContainer; import seedu.address.logic.commands.exceptions.CommandException; -import seedu.address.logic.parser.exceptions.ParseException; import seedu.address.model.AddressBook; import seedu.address.model.Model; import seedu.address.model.ModelManager; From 50dc19d8d173494e644166aa169730040c3d8e59 Mon Sep 17 00:00:00 2001 From: ReflectiveObsidian Date: Sun, 14 Apr 2024 21:31:40 +0800 Subject: [PATCH 6/8] Update dg architecture sequence diagram to match current behaviour --- docs/DeveloperGuide.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/DeveloperGuide.md b/docs/DeveloperGuide.md index 3fdb14ce814..4af84687232 100644 --- a/docs/DeveloperGuide.md +++ b/docs/DeveloperGuide.md @@ -98,9 +98,9 @@ The bulk of the app's work is done by the following four components: **How the architecture components interact with each other** -The *Sequence Diagram* below shows how the components interact with each other for the scenario where the user issues the command `delete 0000`, assuming that `0000` corresponds to a valid Person UUID. +The *Sequence Diagram* below shows how the components interact with each other for the scenario where the user issues the command `delete /0001`, assuming that `0001` corresponds to a valid Person UUID. - + Each of the four main components (also shown in the diagram above), From ffc78fdc4964c46e04d5d3df9519668e913f9539 Mon Sep 17 00:00:00 2001 From: ReflectiveObsidian Date: Sun, 14 Apr 2024 21:41:53 +0800 Subject: [PATCH 7/8] Add lifeline disclaimer for person commands --- docs/DeveloperGuide.md | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/docs/DeveloperGuide.md b/docs/DeveloperGuide.md index 4af84687232..9745e8f64f5 100644 --- a/docs/DeveloperGuide.md +++ b/docs/DeveloperGuide.md @@ -308,6 +308,8 @@ The following sequence diagram shows how adding a person works: ![AddPersonSequenceDiagram](images/AddPersonSequenceDiagram.png) +

:information_source: **Note:** The lifelines should end at the destroy marker (X) but due to a limitation of PlantUML, the lifeline reaches the end of diagram. + The following activity diagram sheds more light on exactly what happens when a user executes the 'add' command: ![AddPersonActivityDiagram](images/AddPersonActivityDiagram.png) @@ -358,6 +360,8 @@ The following sequence diagram shows how deleting a person works: ![DeletePersonSequenceDiagram](images/DeletePersonSequenceDiagram.png) +
:information_source: **Note:** The lifelines should end at the destroy marker (X) but due to a limitation of PlantUML, the lifeline reaches the end of diagram. + The following activity diagram sheds more light on exactly what happens when a user executes the 'delete' command: ![DeletePersonActivityDiagram](images/DeletePersonActivityDiagram.png) From 0aff3f10e6a730b25b182998b360f415e77e1ff4 Mon Sep 17 00:00:00 2001 From: ReflectiveObsidian Date: Sun, 14 Apr 2024 21:48:33 +0800 Subject: [PATCH 8/8] Add link back to table of contents --- docs/DeveloperGuide.md | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/docs/DeveloperGuide.md b/docs/DeveloperGuide.md index 9745e8f64f5..c01eea59516 100644 --- a/docs/DeveloperGuide.md +++ b/docs/DeveloperGuide.md @@ -324,6 +324,9 @@ The following activity diagram sheds more light on exactly what happens when a u * Pros: Shorter code, less repetition of actions. * Cons: Duplicate attributes would halt command and leave the address book in a partially edited state. Fixing this would result in less readable code. +[Back to Table of Contents](#table-of-contents) + +-------------------------------------------------------------------------------------------------------------------- ### Delete Person feature This feature is the `Delete` command that allows users to remove a person from the address book. @@ -366,6 +369,9 @@ The following activity diagram sheds more light on exactly what happens when a u ![DeletePersonActivityDiagram](images/DeletePersonActivityDiagram.png) +[Back to Table of Contents](#table-of-contents) + +-------------------------------------------------------------------------------------------------------------------- ### Add Attribute feature An `AddAttribute` feature that allows users to add attributes to a person in the address book. This feature ensures that only unique attributes are added to a person, maintaining data integrity.