From 941e92ead3e2f4c33bcdf49df110db7a5be706be Mon Sep 17 00:00:00 2001 From: "e0968962@u.nus.edu" Date: Tue, 1 Oct 2024 18:51:52 +0800 Subject: [PATCH] Implement the add and list commands --- src/main/java/BookBob/Main.java | 58 ++++++++++--- src/main/java/BookBob/entity/Patient.java | 2 + src/main/java/BookBob/functions/CRUD.java | 29 ------- .../BookBob/functions/CommandHandler.java | 81 ++++++++++++++++++- 4 files changed, 128 insertions(+), 42 deletions(-) delete mode 100644 src/main/java/BookBob/functions/CRUD.java diff --git a/src/main/java/BookBob/Main.java b/src/main/java/BookBob/Main.java index 664da117ee..1d5191dd83 100644 --- a/src/main/java/BookBob/Main.java +++ b/src/main/java/BookBob/Main.java @@ -1,21 +1,55 @@ package BookBob; +import BookBob.entity.Records; +import BookBob.functions.CommandHandler; +import BookBob.functions.SaveAndRetrieve; import java.util.Scanner; public class Main { - /** - * Main entry-point for the java.duke.Duke application. - */ + public static void main(String[] args) { - String logo = " ____ _ \n" - + "| _ \\ _ _| | _____ \n" - + "| | | | | | | |/ / _ \\\n" - + "| |_| | |_| | < __/\n" - + "|____/ \\__,_|_|\\_\\___|\n"; - System.out.println("Hello from\n" + logo); - System.out.println("What is your name?"); + System.out.println("Welcome to BookBob, Dr. Bob!"); Scanner in = new Scanner(System.in); - System.out.println("Hello " + in.nextLine()); + Records records = new Records(); + SaveAndRetrieve.initFile(records); + CommandHandler commandHandler = new CommandHandler(); + + while (true) { + String input = in.nextLine(); + String[] inputArr = input.split(" ", 2); + String command = inputArr[0]; + + switch (command) { + case "exit": + commandHandler.exit(input); + break; + + case "add": + commandHandler.add(input, records); + break; + + case "list": + commandHandler.list(records); + break; + + case "delete": + if (inputArr.length > 1) { + String NRIC = inputArr[1].trim(); + commandHandler.delete(NRIC, records); + } else { + System.out.println("Please specify an NRIC to delete."); + } + break; + + case "help": + commandHandler.help(); + break; + + default: + System.out.println("Unknown command. Type 'help' for a list of commands."); + break; + } + } } -} +} \ No newline at end of file diff --git a/src/main/java/BookBob/entity/Patient.java b/src/main/java/BookBob/entity/Patient.java index cc06c9a3eb..8eab39f97a 100644 --- a/src/main/java/BookBob/entity/Patient.java +++ b/src/main/java/BookBob/entity/Patient.java @@ -16,6 +16,7 @@ public class Patient { public Patient(String name, String NRIC) { this.name = name; this.NRIC = NRIC; + this.phoneNumber = 0; this.homeAddress = ""; this.medication = new ArrayList<>(); this.diagnosis = ""; @@ -26,6 +27,7 @@ public Patient(String name, String NRIC) { public Patient(String name, String NRIC, String phoneNumber, String dateOfBirth, String homeAddress, String diagnosis, ArrayList medications) { this.name = name; this.NRIC = NRIC; + this.phoneNumber = Integer.parseInt(phoneNumber); this.dateOfBirth = dateOfBirth; this.homeAddress = homeAddress; this.diagnosis = diagnosis; diff --git a/src/main/java/BookBob/functions/CRUD.java b/src/main/java/BookBob/functions/CRUD.java deleted file mode 100644 index 99dc2d6d90..0000000000 --- a/src/main/java/BookBob/functions/CRUD.java +++ /dev/null @@ -1,29 +0,0 @@ -package BookBob.functions; - -import BookBob.entity.Patient; -import BookBob.entity.Records; -import java.util.ArrayList; - -public class CRUD { - - public void delete(String NRIC, Records records) { - ArrayList patients = records.patients; - int initialPatientSize = patients.size(); - if (initialPatientSize == 0) { - System.out.println("There are no patients in the record currently."); - return; - } - for (int i = 0; i < patients.size(); i++) { - Patient currentPatient = patients.get(i); - String patientNRIC = currentPatient.getNRIC(); - if (patientNRIC.equals(NRIC)) { - patients.remove(i); - System.out.println("Patient " + currentPatient.getName() + ", " + patientNRIC + ", has been deleted."); - break; - } - } - if (patients.size() == initialPatientSize) { - System.out.println("Patient " + NRIC + " not found"); - } - } -} diff --git a/src/main/java/BookBob/functions/CommandHandler.java b/src/main/java/BookBob/functions/CommandHandler.java index 9d095f2dbe..1d603769de 100644 --- a/src/main/java/BookBob/functions/CommandHandler.java +++ b/src/main/java/BookBob/functions/CommandHandler.java @@ -1,5 +1,10 @@ package BookBob.functions; +import BookBob.entity.Patient; +import BookBob.entity.Records; + +import java.util.ArrayList; + public class CommandHandler { // Prints output for help command @@ -34,11 +39,85 @@ public void help() { "+-----------+---------------------------------------+---------------------------------+\n"); } + public void add(String input, Records records) { + String[] inputParts = input.split(" "); + String name = ""; + String NRIC = ""; + int phoneNumber = 0; + String diagnosis = ""; + ArrayList medications = new ArrayList<>(); + String homeAddress = ""; + String dateOfBirth = ""; + + for (String part : inputParts) { + if (part.startsWith("n/")) { + name = part.substring(2); + } else if (part.startsWith("ic/")) { + NRIC = part.substring(3); + } else if (part.startsWith("p/")) { + phoneNumber = Integer.parseInt(part.substring(2)); + } else if (part.startsWith("d/")) { + diagnosis = part.substring(2); + } else if (part.startsWith("m/")) { + medications.add(part.substring(2)); + } else if (part.startsWith("ha/")) { + homeAddress = part.substring(3); + } else if (part.startsWith("dob/")) { + dateOfBirth = part.substring(4); + } + } + + Patient patient = new Patient(name, NRIC); + patient.setPhoneNumber(phoneNumber); + patient.setDiagnosis(diagnosis); + patient.setHomeAddress(homeAddress); + patient.setDateOfBirth(dateOfBirth); + patient.setMedication(medications); + + records.addPatient(patient); + System.out.println("Patient " + name + " with NRIC " + NRIC + " added."); + } + + public void list(Records records) { + ArrayList patients = records.getPatients(); + if (patients.isEmpty()) { + System.out.println("No patients found."); + return; + } + for (Patient patient : patients) { + System.out.println("Name: " + patient.getName() + ", NRIC: " + patient.getNRIC() + + ", Phone: " + patient.getPhoneNumber() + ", Diagnosis: " + patient.getDiagnosis() + + ", Medication: " + patient.getMedication() + ", Address: " + patient.getHomeAddress() + + ", DOB: " + patient.getDateOfBirth()); + } + } + + public void delete(String NRIC, Records records) { + ArrayList patients = records.patients; + int initialPatientSize = patients.size(); + if (initialPatientSize == 0) { + System.out.println("There are no patients in the record currently."); + return; + } + for (int i = 0; i < patients.size(); i++) { + Patient currentPatient = patients.get(i); + String patientNRIC = currentPatient.getNRIC(); + if (patientNRIC.equals(NRIC)) { + patients.remove(i); + System.out.println("Patient " + currentPatient.getName() + ", " + patientNRIC + ", has been deleted."); + break; + } + } + if (patients.size() == initialPatientSize) { + System.out.println("Patient " + NRIC + " not found"); + } + } + // Takes in an input string and determines whether to exit the program public void exit(String input) { if(input.equalsIgnoreCase("exit")) { System.exit(0); } } - } +