From 552779a9872302d8c93c5ee21de66c7026de944a Mon Sep 17 00:00:00 2001 From: whitesnowx Date: Sat, 13 Apr 2024 21:07:46 +0800 Subject: [PATCH 01/12] Update sort activity diagram and reoragnise implementation in developer guide --- docs/DeveloperGuide.md | 107 ++++++++++++------------- docs/diagrams/SortActivityDiagram.puml | 25 +++--- docs/images/SortActivityDiagram.png | Bin 39848 -> 41586 bytes 3 files changed, 64 insertions(+), 68 deletions(-) diff --git a/docs/DeveloperGuide.md b/docs/DeveloperGuide.md index 42e19fa2c44..dc9316e1771 100644 --- a/docs/DeveloperGuide.md +++ b/docs/DeveloperGuide.md @@ -236,9 +236,9 @@ 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`. -### Sort Feature +### Sort feature -##### Implementation +##### How the feature is implemented The sort mechanism is facilitated by JavaFX's `SortedList` within ModelManager, `SortCommand` and `SortCommandParser`. `SortCommandParser` extends the types of command parsers in StaffBookParser, and returns a `SortCommand` to be executed by the LogicManager. This execution also updates the `SortedList` in Model via ModelManager. Additionally, it implements the following operations: @@ -264,7 +264,7 @@ The following activity diagram summarizes what happens when a user executes a ne -#### Design considerations: +#### What designs were considered: **Aspect: Determining order of sorting of an attribute:** * **Current Design:** Get order of sorting from user, prompting for an input in the form of toCompare. @@ -320,6 +320,53 @@ 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). +### Meeting feature + +Meeting is feature that allows the user to keep track of any events they may have with the particular contact. It contains the description of the meeting event with the date and time it would occur. + +#### How the feature is implemented + +Meeting contains two attributes ```MeetingDescription``` and ```MeetingDateTime``` class. ```MeetingDescription``` +is used to handle any valid description of the meeting with only alphanumeric values, while the ```MeetingDateTime``` +is used to handle any valid date time values. Each of this meeting are stored in a list data class ```MeetingList``` that +contains each of the meetings related to each other stored in an ```ObservableList```. The ``` MeetingManager ``` is +used to manage any operations that require viewing or sorting of meetings from the ```MeetingList``` class. + +#### What designs were considered: + +**Aspect: How the meetings are stored :** + +* **Alternative 1 (current choice):** Store meetings in an ObservableList. + * Pros: Better segregation of the OOP functionalities, and good integration with the UI ListView. + * Cons: Larger code complexity. + +* **Alternative 2:** Store meetings in a Set. + * Pros: Easier implementation. + * Cons: There is an efficiency gap as each element has to be placed into a list before it can be shown to the UI ListView. + +### Fav/unfav feature + +The feature enables us to sets/remove a particular contact using an index as favourite. + +#### How the feature is implemented + +The Fav/Unfav feature is implemented via the `FavCommand` and `UnfavCommand`, which is supported by the `FavCommandParser` and `UnfavCommandParser` respectively. +The `FavCommandParser` and `UnfavCommandParser` implements the `Parser` interface. + +1. `LogicManager` receives the user input which is parsed by the `StaffConnectParser`. +2. After splitting the user input into `commandWord` and `arguments` based on the regex pattern of the user input, the `StaffConnectParser` invokes the `FavCommandParser`/`UnfavCommandParser` based on the `commandWord`, calling the method `parse` with `arguments` as the method arguments +3. `FavCommandParser`/`UnfavCommandParser` takes in the `args` string and parse it into with the static `ParserUtil#parseIndex(args)` function. If the `INDEX` format is invalid, a `ParseException` will be thrown. +4. `FavCommandParser`/`UnfavCommandParser` then creates the `FavCommand`/`UnfavCommand` and returns it. +5. The `LogicManager` executes the `FavCommand`/`UnfavCommand`, which creates a `Person` with the `Favourite` attribute set as `true`/`false` respectively and updates the model with this new `Person`. + +The following sequence diagram shows how the `fav` command works: + +![Fav Command Sequence Diagram](images/FavSequenceDiagram.png) + +Similarly, how the `unfav` command works is shown below: + +![Unfav Command Sequence Diagram](images/UnfavSequenceDiagram.png) + ### \[Proposed\] Undo/redo feature #### Proposed Implementation @@ -402,60 +449,6 @@ The following activity diagram summarizes what happens when a user executes a ne * Pros: Will use less memory (e.g. for `delete`, just save the person being deleted). * Cons: We must ensure that the implementation of each individual command are correct. -_{more aspects and alternatives to be added}_ - -### \[Proposed\] Data archiving - -_{Explain here how the data archiving feature will be implemented}_ - - -### Meeting - -Meeting is feature that allows the user to keep track of any events they may have with the particular contact. It contains the description of the meeting event with the date and time it would occur. - -#### Implementation - -Meeting contains two attributes ```MeetingDescription``` and ```MeetingDateTime``` class. ```MeetingDescription``` -is used to handle any valid description of the meeting with only alphanumeric values, while the ```MeetingDateTime``` -is used to handle any valid date time values. Each of this meeting are stored in a list data class ```MeetingList``` that -contains each of the meetings related to each other stored in an ```ObservableList```. The ``` MeetingManager ``` is -used to manage any operations that require viewing or sorting of meetings from the ```MeetingList``` class. - -#### Design considerations: - -**Aspect: How the meetings are stored :** - -* **Alternative 1 (current choice):** Store meetings in an ObservableList. - * Pros: Better segregation of the OOP functionalities, and good integration with the UI ListView. - * Cons: Larger code complexity. - -* **Alternative 2:** Store meetings in a Set. - * Pros: Easier implementation. - * Cons: There is an efficiency gap as each element has to be placed into a list before it can be shown to the UI ListView. - -### Fav/unfav feature - -The feature enables us to sets/remove a particular contact using an index as favourite. - -#### Implementation - -The Fav/Unfav feature is implemented via the `FavCommand` and `UnfavCommand`, which is supported by the `FavCommandParser` and `UnfavCommandParser` respectively. -The `FavCommandParser` and `UnfavCommandParser` implements the `Parser` interface. - -1. `LogicManager` receives the user input which is parsed by the `StaffConnectParser`. -2. After splitting the user input into `commandWord` and `arguments` based on the regex pattern of the user input, the `StaffConnectParser` invokes the `FavCommandParser`/`UnfavCommandParser` based on the `commandWord`, calling the method `parse` with `arguments` as the method arguments -3. `FavCommandParser`/`UnfavCommandParser` takes in the `args` string and parse it into with the static `ParserUtil#parseIndex(args)` function. If the `INDEX` format is invalid, a `ParseException` will be thrown. -4. `FavCommandParser`/`UnfavCommandParser` then creates the `FavCommand`/`UnfavCommand` and returns it. -5. The `LogicManager` executes the `FavCommand`/`UnfavCommand`, which creates a `Person` with the `Favourite` attribute set as `true`/`false` respectively and updates the model with this new `Person`. - -The following sequence diagram shows how the `fav` command works: - -![Fav Command Sequence Diagram](images/FavSequenceDiagram.png) - -Similarly, how the `unfav` command works is shown below: - -![Unfav Command Sequence Diagram](images/UnfavSequenceDiagram.png) - -------------------------------------------------------------------------------------------------------------------- ## **Documentation, logging, testing, configuration, dev-ops** diff --git a/docs/diagrams/SortActivityDiagram.puml b/docs/diagrams/SortActivityDiagram.puml index f1964bae42a..b637a607150 100644 --- a/docs/diagrams/SortActivityDiagram.puml +++ b/docs/diagrams/SortActivityDiagram.puml @@ -6,18 +6,21 @@ start :User enters a sort command; -if() then ([attributes are not sortable]) - :get person from list; - while (have person to compare) - while(attribute value with the next person in the list are equal or no more attributes) - :use next attribute to check; - endwhile - if() then ([person smaller]) - :shift front; - else([person bigger]) - :shift back; +if() then ([attributes are sortable]) + if () then ([list is not empty]) + repeat + :get next person in list + and adds to sorted list; + :compare with persons in sorted list; + if () then ([person smaller]) + :shift up; + else ([person bigger]) + :shift down; endif - endwhile + repeat while () is ([have next person to sort]) not ([no more person to sort]) + + else ([list is empty]) + endif :Shows sorted person list; else([any attribute is not sortable]) :displays Sort Usage message; diff --git a/docs/images/SortActivityDiagram.png b/docs/images/SortActivityDiagram.png index 95864c6f0be55a90a8a81b93047e9a2a2a8ef11a..7e1b1d375c0b1e4af6ccc2c4767fcd3e41da5785 100644 GIT binary patch literal 41586 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 literal 39848 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 Date: Sat, 13 Apr 2024 21:13:30 +0800 Subject: [PATCH 02/12] change How the feature is implemented --- docs/DeveloperGuide.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/DeveloperGuide.md b/docs/DeveloperGuide.md index dc9316e1771..1f5cd512ac4 100644 --- a/docs/DeveloperGuide.md +++ b/docs/DeveloperGuide.md @@ -197,7 +197,7 @@ This is to refresh the list of `Person` in `Model`. ### Filter feature -#### How the filter is implemented +#### How the feature is implemented The sequence diagram below shows how the filter command `filter f/Computing` goes through the `Logic` component. From bbea00fef28e21cec738d4d41b538b59928de691 Mon Sep 17 00:00:00 2001 From: whitesnowx Date: Sat, 13 Apr 2024 21:19:01 +0800 Subject: [PATCH 03/12] Match details in implementation developerguide --- docs/DeveloperGuide.md | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/docs/DeveloperGuide.md b/docs/DeveloperGuide.md index 1f5cd512ac4..b03b326b733 100644 --- a/docs/DeveloperGuide.md +++ b/docs/DeveloperGuide.md @@ -247,13 +247,13 @@ The sort mechanism is facilitated by JavaFX's `SortedList` within ModelManager, Given below is an example usage scenario and how the sort mechanism behaves at each step. -Step 1. The user enters **“sort n/”** to sort the list by their name. +1. The user enters **“sort n/”** to sort the list by their name. -Step 2. The `LogicManager` takes this command text and calls `StaffBookParser.parseCommand("sort n/")` and identifies the sort command. It then creates a new instance of `SortCommandParser` to `parse(“n/”)` on the attribute. +2. The `LogicManager` takes this command text and calls `StaffBookParser.parseCommand("sort n/")` and identifies the sort command. It then creates a new instance of `SortCommandParser` to `parse(“n/”)` on the attribute. -Step 3. `SortCommandParser.parse(“n/”)` then constructs a SortCommand with the appropriate attribute comparator, `NameComparator`. +3. `SortCommandParser.parse(“n/”)` then constructs a SortCommand with the appropriate attribute comparator, `NameComparator`. -Step 4. The `SortCommand` is returned to Logic manager which calls on its `execute()` to return a `CommandResult()`. During its execution, `ModelManager.updateSortedPersonList(NameComparator)` is invoked which updates the model to show the list of persons being sorted by name. +4. The `SortCommand` is returned to Logic manager which calls on its `execute()` to return a `CommandResult()`. During its execution, `ModelManager.updateSortedPersonList(NameComparator)` is invoked which updates the model to show the list of persons being sorted by name. The sequence diagram for executing a **"sort n/"** is shown below: @@ -336,11 +336,11 @@ used to manage any operations that require viewing or sorting of meetings from t **Aspect: How the meetings are stored :** -* **Alternative 1 (current choice):** Store meetings in an ObservableList. +* **Current Design:** Store meetings in an ObservableList. * Pros: Better segregation of the OOP functionalities, and good integration with the UI ListView. * Cons: Larger code complexity. -* **Alternative 2:** Store meetings in a Set. +* **Alternative 1:** Store meetings in a Set. * Pros: Easier implementation. * Cons: There is an efficiency gap as each element has to be placed into a list before it can be shown to the UI ListView. From 5d95bf29b72fff71263bddf433763cd57df97818 Mon Sep 17 00:00:00 2001 From: whitesnowx Date: Sat, 13 Apr 2024 21:26:36 +0800 Subject: [PATCH 04/12] update description of design chooice --- docs/DeveloperGuide.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/DeveloperGuide.md b/docs/DeveloperGuide.md index b03b326b733..fc8bd19bf27 100644 --- a/docs/DeveloperGuide.md +++ b/docs/DeveloperGuide.md @@ -267,9 +267,9 @@ The following activity diagram summarizes what happens when a user executes a ne #### What designs were considered: **Aspect: Determining order of sorting of an attribute:** -* **Current Design:** Get order of sorting from user, prompting for an input in the form of toCompare. +* **Current Design:** Get order of attributes sorting from user input. * Pros: More functionality and more suited to the user's needs. - * Cons: Harder to implement and guide user to use, may have more leeway for error. User unlikely to use this advancement. + * Cons: Harder to implement and guide user to use, may have more leeway for error. * **Alternative 1:** Use a configured comparator for each attribute in ascending order. * Pros: Controlled and more simple for user. From 4401f6d9cb800c757593dba6ed56f1c02fc8201d Mon Sep 17 00:00:00 2001 From: whitesnowx Date: Sat, 13 Apr 2024 21:28:22 +0800 Subject: [PATCH 05/12] Reorder find to above filter --- docs/DeveloperGuide.md | 70 +++++++++++++++++++++--------------------- 1 file changed, 35 insertions(+), 35 deletions(-) diff --git a/docs/DeveloperGuide.md b/docs/DeveloperGuide.md index fc8bd19bf27..5a0d3477f88 100644 --- a/docs/DeveloperGuide.md +++ b/docs/DeveloperGuide.md @@ -195,6 +195,41 @@ This is to make sure at least one field is modified, or the command will not hav Call `model.updateFilteredPersonList())` with a `Predicate` that always evaluates to true: This is to refresh the list of `Person` in `Model`. +### 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. +
+ +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). + ### Filter feature #### How the feature is implemented @@ -285,41 +320,6 @@ The following activity diagram summarizes what happens when a user executes a ne * Pros: Easy to implement, controlled and less likely to be used incorrectly. This increase ease of use for users. * Cons: Limited sorting and lesser functionality. -### 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. -
- -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). - ### Meeting feature Meeting is feature that allows the user to keep track of any events they may have with the particular contact. It contains the description of the meeting event with the date and time it would occur. From fe61fe5758d8c238a4e311fff9fa2894908a44e2 Mon Sep 17 00:00:00 2001 From: whitesnowx Date: Sat, 13 Apr 2024 21:45:18 +0800 Subject: [PATCH 06/12] include why sort implemented this way --- docs/DeveloperGuide.md | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/docs/DeveloperGuide.md b/docs/DeveloperGuide.md index 5a0d3477f88..1571e7f9548 100644 --- a/docs/DeveloperGuide.md +++ b/docs/DeveloperGuide.md @@ -299,6 +299,20 @@ The following activity diagram summarizes what happens when a user executes a ne +#### Why sort is implemented this way + +The main operation for the sort feature is the `updateSortedPersonList(Comparator comparator)` method in the `Model` component. +The following are some explanations for decisions made in the implementation of the sort feature. + +Need for multiple `Comparator` objects: +This is to keep in view for when other commands or enhancements may need the separate attribute predicates. + +`SortCommmandParser` parsing the `Predicate` objects: +This is to prevent `SortCommand` from taking on more responsibilities (Separation of Concerns). + +`SortCommand` having `setPersonPredicate()` method: +This is so that `SortCommand` has the required argument of type `Comparator` to be used in the `updateSortedPersonList()` method. Since the `Comparator` object is created by chaining the multiple predicates, no parsing is involved to create this `Predicate`. + #### What designs were considered: **Aspect: Determining order of sorting of an attribute:** From bd1f6bb2ff9da576dcc392daff9c342cd4775c9c Mon Sep 17 00:00:00 2001 From: whitesnowx Date: Sat, 13 Apr 2024 22:22:10 +0800 Subject: [PATCH 07/12] amend sort implemented this way --- docs/DeveloperGuide.md | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/docs/DeveloperGuide.md b/docs/DeveloperGuide.md index 1571e7f9548..8d272ddc481 100644 --- a/docs/DeveloperGuide.md +++ b/docs/DeveloperGuide.md @@ -305,13 +305,14 @@ The main operation for the sort feature is the `updateSortedPersonList(Comparato The following are some explanations for decisions made in the implementation of the sort feature. Need for multiple `Comparator` objects: -This is to keep in view for when other commands or enhancements may need the separate attribute predicates. +This is to keep in view for when other commands or enhancements may need the separate attribute predicates. -`SortCommmandParser` parsing the `Predicate` objects: -This is to prevent `SortCommand` from taking on more responsibilities (Separation of Concerns). +Need for `MultiComparator` object: +This is to map the 1 or more comparator objects and act as a layer of abstraction where `SortCommmand` does need to know how many attributes are used in sorting. +This also w -`SortCommand` having `setPersonPredicate()` method: -This is so that `SortCommand` has the required argument of type `Comparator` to be used in the `updateSortedPersonList()` method. Since the `Comparator` object is created by chaining the multiple predicates, no parsing is involved to create this `Predicate`. +`SortCommmandParser` parsing the `Comparator` objects: +This is to prevent `SortCommand` from taking on more responsibilities (Separation of Concerns). #### What designs were considered: **Aspect: Determining order of sorting of an attribute:** From 2e461335dc8959fc13ebf0ab1c872e0d1ea9fddc Mon Sep 17 00:00:00 2001 From: whitesnowx Date: Sun, 14 Apr 2024 00:06:56 +0800 Subject: [PATCH 08/12] add person same for activity diagram --- docs/diagrams/SortActivityDiagram.puml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/docs/diagrams/SortActivityDiagram.puml b/docs/diagrams/SortActivityDiagram.puml index b637a607150..5c2024ba06f 100644 --- a/docs/diagrams/SortActivityDiagram.puml +++ b/docs/diagrams/SortActivityDiagram.puml @@ -14,7 +14,8 @@ if() then ([attributes are sortable]) :compare with persons in sorted list; if () then ([person smaller]) :shift up; - else ([person bigger]) + else if () then ([person same]) + else ( [person bigger]) :shift down; endif repeat while () is ([have next person to sort]) not ([no more person to sort]) From 27fb6980048d45f06ba67dc1a80a788b34d6b965 Mon Sep 17 00:00:00 2001 From: whitesnowx Date: Sun, 14 Apr 2024 03:57:49 +0800 Subject: [PATCH 09/12] remove stray sentences --- docs/DeveloperGuide.md | 1 - 1 file changed, 1 deletion(-) diff --git a/docs/DeveloperGuide.md b/docs/DeveloperGuide.md index 8d272ddc481..7f82efa041b 100644 --- a/docs/DeveloperGuide.md +++ b/docs/DeveloperGuide.md @@ -309,7 +309,6 @@ This is to keep in view for when other commands or enhancements may need the sep Need for `MultiComparator` object: This is to map the 1 or more comparator objects and act as a layer of abstraction where `SortCommmand` does need to know how many attributes are used in sorting. -This also w `SortCommmandParser` parsing the `Comparator` objects: This is to prevent `SortCommand` from taking on more responsibilities (Separation of Concerns). From 41f86a2edd872b4197ca6c287d5c820729b7043d Mon Sep 17 00:00:00 2001 From: whitesnowx Date: Sun, 14 Apr 2024 04:20:25 +0800 Subject: [PATCH 10/12] move word cause wrong --- docs/DeveloperGuide.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/DeveloperGuide.md b/docs/DeveloperGuide.md index 7f82efa041b..20a879ac086 100644 --- a/docs/DeveloperGuide.md +++ b/docs/DeveloperGuide.md @@ -316,7 +316,7 @@ This is to prevent `SortCommand` from taking on more responsibilities (Separatio #### What designs were considered: **Aspect: Determining order of sorting of an attribute:** -* **Current Design:** Get order of attributes sorting from user input. +* **Current Design:** Get order of sorting attribute from user input. * Pros: More functionality and more suited to the user's needs. * Cons: Harder to implement and guide user to use, may have more leeway for error. From 168bf48de055e16124f4badfec77f2f8f0577007 Mon Sep 17 00:00:00 2001 From: whitesnowx Date: Sun, 14 Apr 2024 04:31:23 +0800 Subject: [PATCH 11/12] update diagram --- docs/images/SortActivityDiagram.png | Bin 41586 -> 44112 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/docs/images/SortActivityDiagram.png b/docs/images/SortActivityDiagram.png index 7e1b1d375c0b1e4af6ccc2c4767fcd3e41da5785..151913480d6e2eced54bad0ca8fc0e53ce1f63ab 100644 GIT binary patch literal 44112 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 From c26c4848f52f6d64e708fb3cf6230df7d09010cf Mon Sep 17 00:00:00 2001 From: whitesnowx Date: Sun, 14 Apr 2024 04:33:34 +0800 Subject: [PATCH 12/12] update englishing --- docs/DeveloperGuide.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/DeveloperGuide.md b/docs/DeveloperGuide.md index 20a879ac086..4941f7d44f3 100644 --- a/docs/DeveloperGuide.md +++ b/docs/DeveloperGuide.md @@ -314,9 +314,9 @@ This is to map the 1 or more comparator objects and act as a layer of abstractio This is to prevent `SortCommand` from taking on more responsibilities (Separation of Concerns). #### What designs were considered: -**Aspect: Determining order of sorting of an attribute:** +**Aspect: Determining order of sorting of attribute(s):** -* **Current Design:** Get order of sorting attribute from user input. +* **Current Design:** Get sorting order of attribute(s) from user input. * Pros: More functionality and more suited to the user's needs. * Cons: Harder to implement and guide user to use, may have more leeway for error.