From c262db90774c903bebdf06450fdd05f755af717a Mon Sep 17 00:00:00 2001 From: JerryWang0000 Date: Fri, 29 Mar 2024 04:52:35 +0800 Subject: [PATCH 1/6] Start implementing the DG --- docs/DeveloperGuide.md | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/docs/DeveloperGuide.md b/docs/DeveloperGuide.md index effa535e834..93900955e5a 100644 --- a/docs/DeveloperGuide.md +++ b/docs/DeveloperGuide.md @@ -196,6 +196,19 @@ This is to prevent `FilterCommand` from taking on more responsibilities (Separat `FilterCommand` having `setPersonPredicate()` method: This is so that `FilterCommand` has the required argument of type `Predicate` to be used in the `updateFilteredPersonList()` method. Since the `Predicate` object is created by chaining the multiple predicates, no parsing is involved to create this `Predicate`. +### Find feature + +#### How the feature is implemented + +The sequence diagram below explains how the find command `find Alex` goes through the `Logic` component. + +![Interactions Inside the Logic Component for the `find Alex` Command](images/FindSequenceDiagram.png) + +
:information_source: **Note:** The lifeline for `FindCommandParser` should end at the destroy marker (X) but due to a limitation of PlantUML, the lifeline continues till the end of diagram. +
+ + + ### \[Proposed\] Undo/redo feature #### Proposed Implementation From b0278b472fe96de8e6c7d6cf96b72e018f653168 Mon Sep 17 00:00:00 2001 From: JerryWang0000 Date: Fri, 29 Mar 2024 07:42:50 +0800 Subject: [PATCH 2/6] Add Implementation details for Find feature in DeveloperGuide --- docs/DeveloperGuide.md | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) diff --git a/docs/DeveloperGuide.md b/docs/DeveloperGuide.md index 93900955e5a..31e9149c8ea 100644 --- a/docs/DeveloperGuide.md +++ b/docs/DeveloperGuide.md @@ -207,7 +207,29 @@ The sequence diagram below explains how the find command `find Alex` goes throug
:information_source: **Note:** The lifeline for `FindCommandParser` should end at the destroy marker (X) but due to a limitation of PlantUML, the lifeline continues till the end of diagram.
+1. When user types in `find Alex`, it is passed to `StaffConnectParser`. +2. `StaffconnectParser` then creates a `FindCommandParser` that will parse `Alex` to create a `FindCommand` which utilizes a predicate judge whether `Alex` is contained in the person's name. +3. In `FindCommand`, `Model` executes `updateFilteredPersonList()` method using the predicate mentioned above. +4. The result of the command execution is encapsulated as a `CommandResult` object which is returned back from `Logic`, to show in the `UI` component the number of persons listed with `Alex` in the name. +The below sequence diagram goes into more detail on how the command is parsed in `EditCommandParser`. + +![Interactions Inside FindCommandParser for the `parse("f/Computing")` Command](images/FindSequenceDiagram-Parser.png) + +1. Within `FindCommandParser`, the command string is first trimmed and checked whether it is empty, then splitted into an string array by space characters. +2. `FindCommandParser` then constructs a predicate to test whether the names of `Person` contain any one of the strings in the array mentioned above. This predicate is passed as an argument for the constructor of `FindCommand`. + +The below activity diagram illustrates the process when a user executes a find command. + + + +#### Why find is implemented this way + +The main operation for the find feature is the `updateFilteredPersonList(Predicate predicate)` method in the `Model` component. +Below are some explanations for the special considerations in the implementation. + +`FindCommmandParser` parsing the `Predicate` objects: +This is to prevent `FindCommand` from taking on more responsibilities (Separation of Concerns). ### \[Proposed\] Undo/redo feature From 7efe776e25f12c9467cf543b83ba564227735a87 Mon Sep 17 00:00:00 2001 From: JerryWang0000 Date: Fri, 29 Mar 2024 07:58:48 +0800 Subject: [PATCH 3/6] Add FindActivityDiagram.puml --- docs/diagrams/FindActivityDiagram.puml | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) create mode 100644 docs/diagrams/FindActivityDiagram.puml diff --git a/docs/diagrams/FindActivityDiagram.puml b/docs/diagrams/FindActivityDiagram.puml new file mode 100644 index 00000000000..72dca8cd27e --- /dev/null +++ b/docs/diagrams/FindActivityDiagram.puml @@ -0,0 +1,21 @@ +@startuml +skin rose +skinparam ActivityFontSize 15 +skinparam ArrowFontSize 12 +start +:User executes find command; + +'Since the beta syntax does not support placing the condition outside the +'diamond we place it as the true branch instead. + +if () then ([command is non-empty]) + if () then ([Person fulfils criteria]) + :Show in list; + else ([else]) + :Not shown in list; + endif +else ([else]) + :Show error message to User; +endif +stop +@enduml From 6d77f557d1babb63ad80064701bc6c2604dad166 Mon Sep 17 00:00:00 2001 From: JerryWang0000 Date: Fri, 29 Mar 2024 09:16:04 +0800 Subject: [PATCH 4/6] Add FindSequenceDiagram.puml --- docs/diagrams/FindSequenceDiagram.puml | 73 ++++++++++++++++++++++++++ 1 file changed, 73 insertions(+) create mode 100644 docs/diagrams/FindSequenceDiagram.puml diff --git a/docs/diagrams/FindSequenceDiagram.puml b/docs/diagrams/FindSequenceDiagram.puml new file mode 100644 index 00000000000..11bf48be14c --- /dev/null +++ b/docs/diagrams/FindSequenceDiagram.puml @@ -0,0 +1,73 @@ +@startuml +!include style.puml +skinparam ArrowFontStyle plain + +box Logic LOGIC_COLOR_T1 +participant ":LogicManager" as LogicManager LOGIC_COLOR +participant ":StaffConnectParser" as StaffConnectParser LOGIC_COLOR +participant ":FindCommandParser" as FindCommandParser LOGIC_COLOR +participant "f:FindCommand" as FindCommand LOGIC_COLOR +participant "r:CommandResult" as CommandResult LOGIC_COLOR +end box + +box Model MODEL_COLOR_T1 +participant "m:Model" as Model MODEL_COLOR +end box + +[-> LogicManager : execute("find Alex") +activate LogicManager + +LogicManager -> StaffConnectParser : parseCommand("find Alex") +activate StaffConnectParser + +create FindCommandParser +StaffConnectParser -> FindCommandParser +activate FindCommandParser + +FindCommandParser --> StaffConnectParser +deactivate FindCommandParser + +StaffConnectParser -> FindCommandParser : parse("f/Computing") +activate FindCommandParser + +create FindCommand +FindCommandParser -> FindCommand: new(NameContainsKeywordsPredicate) +activate FindCommand + +FindCommand --> FindCommand +deactivate FindCommand + +FindCommand --> FindCommandParser : +deactivate FindCommand + +FindCommandParser --> StaffConnectParser : f +deactivate FindCommandParser +'Hidden arrow to position the destroy marker below the end of the activation bar. +FindCommandParser -[hidden]-> StaffConnectParser +destroy FindCommandParser + +StaffConnectParser --> LogicManager : f +deactivate StaffConnectParser + +LogicManager -> FindCommand : execute(m) +activate FindCommand + +FindCommand -> Model : updateFilteredPersonList(NameContainsKeywordsPredicate) +activate Model + +Model --> FindCommand +deactivate Model + +create CommandResult +FindCommand -> CommandResult +activate CommandResult + +CommandResult --> FindCommand +deactivate CommandResult + +FindCommand --> LogicManager : r +deactivate FindCommand + +[<-- LogicManager +deactivate LogicManager +@enduml From f6c196ed69366f42731dc5bf293e6a217d5b9c88 Mon Sep 17 00:00:00 2001 From: JerryWang0000 Date: Fri, 29 Mar 2024 09:25:09 +0800 Subject: [PATCH 5/6] Add FindSequenceDiagram-Parser.puml --- docs/diagrams/FindSequenceDiagram-Parser.puml | 30 +++++++++++++++++++ 1 file changed, 30 insertions(+) create mode 100644 docs/diagrams/FindSequenceDiagram-Parser.puml diff --git a/docs/diagrams/FindSequenceDiagram-Parser.puml b/docs/diagrams/FindSequenceDiagram-Parser.puml new file mode 100644 index 00000000000..ee8f3562104 --- /dev/null +++ b/docs/diagrams/FindSequenceDiagram-Parser.puml @@ -0,0 +1,30 @@ +@startuml +!include style.puml +skinparam ArrowFontStyle plain +skinparam ParticipantPadding 0 + +Participant ":FindCommandParser" as FindCommandParser LOGIC_COLOR +Participant ":FindCommand" as FindCommand LOGIC_COLOR +Participant "p:NameContainsKeywordsPredicate" as p LOGIC_COLOR + + +[-> FindCommandParser : parse("Alex") +create FindCommandParser +activate FindCommandParser + +create p +FindCommandParser -> p: new("Alex") +activate p +p --> FindCommandParser +deactivate p + +create FindCommand +FindCommandParser -> FindCommand: new(p) +activate FindCommand + +FindCommand --> FindCommandParser +deactivate FindCommand + +[<-- FindCommandParser +deactivate FindCommandParser +@enduml From b2148a189e4c5950e4dac33a9034a6aa6f02fd29 Mon Sep 17 00:00:00 2001 From: JerryWang0000 Date: Fri, 29 Mar 2024 09:29:06 +0800 Subject: [PATCH 6/6] Include the pictures generated by puml files --- docs/diagrams/FindSequenceDiagram.puml | 2 +- docs/images/FindActivityDiagram.png | Bin 0 -> 19235 bytes docs/images/FindSequenceDiagram-Parser.png | Bin 0 -> 11075 bytes docs/images/FindSequenceDiagram.png | Bin 0 -> 35916 bytes 4 files changed, 1 insertion(+), 1 deletion(-) create mode 100644 docs/images/FindActivityDiagram.png create mode 100644 docs/images/FindSequenceDiagram-Parser.png create mode 100644 docs/images/FindSequenceDiagram.png diff --git a/docs/diagrams/FindSequenceDiagram.puml b/docs/diagrams/FindSequenceDiagram.puml index 11bf48be14c..53b9066518e 100644 --- a/docs/diagrams/FindSequenceDiagram.puml +++ b/docs/diagrams/FindSequenceDiagram.puml @@ -27,7 +27,7 @@ activate FindCommandParser FindCommandParser --> StaffConnectParser deactivate FindCommandParser -StaffConnectParser -> FindCommandParser : parse("f/Computing") +StaffConnectParser -> FindCommandParser : parse("Alex") activate FindCommandParser create FindCommand diff --git a/docs/images/FindActivityDiagram.png b/docs/images/FindActivityDiagram.png new file mode 100644 index 0000000000000000000000000000000000000000..a7d628c63dda50a20156a54b6ef01a3143e24d78 GIT binary patch literal 19235 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 literal 0 HcmV?d00001 diff --git a/docs/images/FindSequenceDiagram.png b/docs/images/FindSequenceDiagram.png new file mode 100644 index 0000000000000000000000000000000000000000..998c4da58086c8742c16b66085e72c016cd865fc GIT binary patch literal 35916 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 literal 0 HcmV?d00001