From b859cc7dd136cdad104c324c93f583d0e73e9494 Mon Sep 17 00:00:00 2001 From: Alteqa Date: Thu, 28 Mar 2024 23:42:13 +0800 Subject: [PATCH 1/2] Update DG --- docs/DeveloperGuide.md | 29 +++++++++++++++++- docs/diagrams/QueryPersonActivityDiagram.puml | 20 ++++++++++++ docs/images/QueryPersonActivityDiagram.png | Bin 0 -> 24137 bytes 3 files changed, 48 insertions(+), 1 deletion(-) create mode 100644 docs/diagrams/QueryPersonActivityDiagram.puml create mode 100644 docs/images/QueryPersonActivityDiagram.png diff --git a/docs/DeveloperGuide.md b/docs/DeveloperGuide.md index b84e3950ba2..299a8916a79 100644 --- a/docs/DeveloperGuide.md +++ b/docs/DeveloperGuide.md @@ -227,7 +227,7 @@ This command is implemented through the `DeleteCommand` class which extend the ` The activity diagram below demonstrates this error handling process in more detail. - + * Step 4. The `parse` command in `deleteCommandParser` return an instance of `deleteCommand`. * Step 5. The `LogicManager` calls the `execute` method in `deleteCommand`. @@ -240,6 +240,33 @@ Why is this implemented this way? 2. `Doctor` and `Patient` all exhibit similar qualities, and thus can inherit from the `Person` superclass. 3. Eliminates the need for seperate delete commands for doctor and patient. + +### Query `doctor` and `patient` + +Queries a 'doctor' or 'patient' entry by indicating their name or a substring of their name. +This command is implemented through the `QueryDoctor` and `QueryPatient` classes which extend the `Command` class. + +* Step 1. User enters an `querypatient` or `querydoctor` command. +* Step 2. The `AddressBookParser` will call `parseCommand` on the user's input string and return an instance of `queryDoctorCommandParser` or `queryPatientCommandParser`. +* Step 3. The `parse` command in `queryDoctorCommandParser` or `queryPatientCommandParser` calls `ParserUtil` to create instances of objects for each of the fields. + * If there are any missing fields, a `CommandException` is thrown. + * If input arguments does not match contraints for the fields, a `IllegalArgumentException` is thrown. + +The activity diagram below demonstrates this error handling process in more detail. + + + +* Step 4. The `parse` command in `queryDoctorCommandParser` or `queryDoctorCommandParser` return an instance of `queryPatientCommand` or `queryPatientCommand` respectively. +* Step 5. The `LogicManager` calls the `execute` method in `queryDoctorCommandParser` or `queryDoctorCommandParser`. +* Step 6. The `execute` method in `queryDoctorCommandParser` or `queryDoctorCommandParser` executes and calls `updateFilteredPersonList` in model to get a filtered list of `Doctor` or `Patient`. +* Step 7. Success message gets printed onto the results display to notify user and the list of matching results is produced. + + +Why is this implemented this way? +1. Making both `Doctor` and `Patient` class extend the `Person` class makes it easier to execute query operations. +2. `Doctor` and `Patient` all exhibit similar qualities, and thus can inherit from the `Person` superclass. + + ### \[Proposed\] Undo/redo feature #### Proposed Implementation diff --git a/docs/diagrams/QueryPersonActivityDiagram.puml b/docs/diagrams/QueryPersonActivityDiagram.puml new file mode 100644 index 00000000000..378a7567373 --- /dev/null +++ b/docs/diagrams/QueryPersonActivityDiagram.puml @@ -0,0 +1,20 @@ +@startuml +skin rose +skinparam ActivityFontSize 15 +skinparam ArrowFontSize 12 + +start +:User enters command to query doctor or patient; + + +if () then ([missing required fields]) + :Show error message\nfor missing required fields; +else ([else]) + :Search Doctor/Patient from person list; + :Update the 'person' panel\nin the GUI to display the list; + :Show success message\nwith removed doctor/patient information; +endif + + +stop +@enduml diff --git a/docs/images/QueryPersonActivityDiagram.png b/docs/images/QueryPersonActivityDiagram.png new file mode 100644 index 0000000000000000000000000000000000000000..d3944a6913dcdbe4624fc902acec6a945434ddce GIT binary patch literal 24137 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 aF&vzq?WtwG_yiE~2o+@wrSx-GAN>yuqoAq) literal 0 HcmV?d00001 From 2a3977e7a5ba58d20dc5f373694b0eefef03a410 Mon Sep 17 00:00:00 2001 From: Alteqa Date: Thu, 28 Mar 2024 23:50:43 +0800 Subject: [PATCH 2/2] Fix diagram --- docs/DeveloperGuide.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/DeveloperGuide.md b/docs/DeveloperGuide.md index 837ae5c10ff..cd40ded6549 100644 --- a/docs/DeveloperGuide.md +++ b/docs/DeveloperGuide.md @@ -227,7 +227,7 @@ This command is implemented through the `DeleteCommand` class which extend the ` The activity diagram below demonstrates this error handling process in more detail. - + * Step 4. The `parse` command in `deleteCommandParser` return an instance of `deleteCommand`. * Step 5. The `LogicManager` calls the `execute` method in `deleteCommand`. @@ -314,7 +314,7 @@ This command is implemented through the `QueryDoctor` and `QueryPatient` classes The activity diagram below demonstrates this error handling process in more detail. - + * Step 4. The `parse` command in `queryDoctorCommandParser` or `queryDoctorCommandParser` return an instance of `queryPatientCommand` or `queryPatientCommand` respectively. * Step 5. The `LogicManager` calls the `execute` method in `queryDoctorCommandParser` or `queryDoctorCommandParser`.