Skip to content

Commit

Permalink
Add JavaDoc
Browse files Browse the repository at this point in the history
  • Loading branch information
NGXZS committed Mar 7, 2024
1 parent f7e7ef8 commit ac7c4b3
Show file tree
Hide file tree
Showing 10 changed files with 287 additions and 130 deletions.
7 changes: 2 additions & 5 deletions saveFile.txt
Original file line number Diff line number Diff line change
Expand Up @@ -6,8 +6,5 @@
6. [D][0] kjdfl (by: sdf)
7. [D][0] sdf(by: sdf sd /fds)
8. [D][0] something (by: by 2/12/2019)
9. [D][0] something (by: 2/12/2019)
10. [D][1] haha (by: 2/12/2019)
11. [D][1] halo (by: Dec 11 2019)
12. [T][0] testing
13. [D][0] someting (by: Aug 22 2014)
9. [T][0] fdsjfk
10. [E][0] sjk (from: sd fsto )
25 changes: 15 additions & 10 deletions src/main/java/RecrBad.java
Original file line number Diff line number Diff line change
Expand Up @@ -5,29 +5,34 @@

public class RecrBad {
private TaskList tasks;
public RecrBad(String FILE_PATH) {

/**
* Constructor to start main program: sayHi() on UI, open and process FILE_NAME,
* create FILE_NAME if does not exist, and asks User for input
*
* @param FILE_NAME to store tasks in
*/
public RecrBad(String FILE_NAME) {
tasks = new TaskList();
Ui.sayHi();

try {
Storage.readFile(FILE_PATH, tasks);
Storage.readFile(FILE_NAME, tasks);
} catch (InvalidParamsException e) {
Ui.showLoadingError(e.getMessage());
return;
}

Ui.readInput(tasks, FILE_PATH);
Ui.readInput(tasks, FILE_NAME);
}

/**
* Input
* [any text] to addToList,
* list to displayList,
* mark/unmark [index] to mark item
* Main programme
*
* @param args default arguments
*/
public static void main(String[] args) {
String FILE_PATH = "saveFile.txt";
new RecrBad(FILE_PATH);
String FILE_NAME = "saveFile.txt";
new RecrBad(FILE_NAME);
}
}

55 changes: 38 additions & 17 deletions src/main/java/helperFunctions/Parser.java
Original file line number Diff line number Diff line change
Expand Up @@ -4,40 +4,61 @@
import java.time.format.DateTimeFormatter;

public class Parser {
public static boolean processUserInput(TaskList tasks, String userInput, String FILE_PATH, boolean isReadMode) throws InvalidParamsException {
String[] req = userInput.split(" ");
/**
* Process User Input and calls appropriate TaskList function
*
* @param tasks TaskList object to hold many tasks
* @param userInput from CLI or from FILE_NAME
* @param FILE_NAME to store tasks in
* @param isReadMode specifies if reading from FILE_NAME or writing to it
* @return true to continue asking for user input; false to stop
* @throws InvalidParamsException if invalid command
*/
public static boolean processUserInput(TaskList tasks, String userInput, String FILE_NAME, boolean isReadMode) throws InvalidParamsException {
String[] userInputInParts = userInput.split(" ");

if (req[0].equalsIgnoreCase("BYE")) {
if (userInputInParts[0].equalsIgnoreCase("BYE")) {
return false; // EXITS loop
}
if (req[0].equalsIgnoreCase("LIST")) {
if (userInputInParts[0].equalsIgnoreCase("LIST")) {
System.out.print(tasks.displayList());
} else if (req[0].toUpperCase().contains("MARK")) { // both unmark & mark contains 'mark'
} else if (userInputInParts[0].toUpperCase().contains("MARK")) { // both unmark & mark contains 'mark'
boolean isMark = !userInput.toUpperCase().contains("UNMARK");
tasks.markOperation(req, isMark, FILE_PATH, isReadMode);
} else if (req[0].equalsIgnoreCase("DELETE")) {
tasks.deleteOperation(req, FILE_PATH);
} else if (req[0].equalsIgnoreCase("FIND")) {
tasks.findOperation(req, FILE_PATH);
} else if (req[0].equalsIgnoreCase("TODO")) {
tasks.addTodoTask(req, userInput, FILE_PATH, isReadMode); // change tasks to ArrayList<TAsk>, f void now
} else if (req[0].equalsIgnoreCase("DEADLINE")) {
tasks.addDeadlineTask(req, userInput, FILE_PATH, isReadMode);
} else if (req[0].equalsIgnoreCase("EVENT")) {
tasks.addEventTask(req, userInput, FILE_PATH, isReadMode);
tasks.markOperation(userInputInParts, isMark, FILE_NAME, isReadMode);
} else if (userInputInParts[0].equalsIgnoreCase("DELETE")) {
tasks.deleteOperation(userInputInParts, FILE_NAME);
} else if (userInputInParts[0].equalsIgnoreCase("FIND")) {
tasks.findOperation(userInputInParts);
} else if (userInputInParts[0].equalsIgnoreCase("TODO")) {
tasks.addTodoTask(userInputInParts, userInput, FILE_NAME, isReadMode); // change tasks to ArrayList<TAsk>, f void now
} else if (userInputInParts[0].equalsIgnoreCase("DEADLINE")) {
tasks.addDeadlineTask(userInputInParts, userInput, FILE_NAME, isReadMode);
} else if (userInputInParts[0].equalsIgnoreCase("EVENT")) {
tasks.addEventTask(userInputInParts, userInput, FILE_NAME, isReadMode);
} else {
throw new InvalidParamsException("No such command." + System.lineSeparator() + Ui.printCommandsList());
}
return true;
}

/**
* Takes in deadline of "yyyy/mm/dd" and formats to "MMM d yyyy"
*
* @param deadline is unformatted
* @return deadline of format "MMM d yyyy"
*/
public static String formatDeadline(String deadline) {
String formattedDeadline = deadline.replaceAll("/", "-").trim();
LocalDate dateObject = LocalDate.parse(formattedDeadline);
return dateObject.format(DateTimeFormatter.ofPattern("MMM d yyyy"));
}

// Checks for format "yyyy-mm-dd"
/**
* Checks for valid deadline format "yyyy/mm/dd"
*
* @param deadline of unknown format
* @return true if valid, else false
*/
public static boolean isValidDeadline(String deadline) {
int LENGTH_OF_DEADLINE_COMPONENTS = 3;
int LENGTH_OF_YEAR = 4;
Expand Down
Loading

0 comments on commit ac7c4b3

Please sign in to comment.