Skip to content
Open
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
52 changes: 33 additions & 19 deletions src/seedu/addressbook/AddressBook.java
Original file line number Diff line number Diff line change
Expand Up @@ -198,9 +198,21 @@ public class AddressBook {
* method alone.
* ====================================================================
*/
// Week 3
public static void main(String[] args) {
showWelcomeMessage();
processProgramArgs(args);
if (args.length >= 2) {
showToUser(MESSAGE_INVALID_PROGRAM_ARGS);
exitProgram();
}

if (args.length == 1) {
setupGivenFileForStorage(args[0]);
}

if(args.length == 0) {
setupDefaultFileForStorage();
}
loadDataFromStorage();
while (true) {
String userCommand = getUserInput();
Expand Down Expand Up @@ -254,20 +266,6 @@ private static void echoUserCommand(String userCommand) {
*
* @param args full program arguments passed to application main method
*/
private static void processProgramArgs(String[] args) {
if (args.length >= 2) {
showToUser(MESSAGE_INVALID_PROGRAM_ARGS);
exitProgram();
}

if (args.length == 1) {
setupGivenFileForStorage(args[0]);
}

if(args.length == 0) {
setupDefaultFileForStorage();
}
}

/**
* Sets up the storage file based on the supplied file path.
Expand Down Expand Up @@ -327,7 +325,7 @@ private static void loadDataFromStorage() {
* COMMAND LOGIC
* ===========================================
*/

// TEst
/**
* Executes the command as specified by the {@code userInputString}
*
Expand All @@ -353,6 +351,8 @@ public static String executeCommand(String userInputString) {
return getUsageInfoForAllCommands();
case COMMAND_EXIT_WORD:
executeExitProgramRequest();
case "sort":
executeSortList();
default:
return getMessageForInvalidCommandInput(commandType, getUsageInfoForAllCommands());
}
Expand Down Expand Up @@ -421,6 +421,7 @@ private static String getMessageForSuccessfulAddPerson(String[] addedPerson) {
*/
private static String executeFindPersons(String commandArgs) {
final Set<String> keywords = extractKeywordsFromFindPersonArgs(commandArgs);

final ArrayList<String[]> personsFound = getPersonsWithNameContainingAnyKeyword(keywords);
showToUser(personsFound);
return getMessageForPersonsDisplayedSummary(personsFound);
Expand Down Expand Up @@ -452,11 +453,14 @@ private static Set<String> extractKeywordsFromFindPersonArgs(String findPersonCo
* @param keywords for searching
* @return list of persons in full model with name containing some of the keywords
*/
// Week 3, made "keyword" and "wordsinname" to string, and to lower case before comparing
private static ArrayList<String[]> getPersonsWithNameContainingAnyKeyword(Collection<String> keywords) {
final ArrayList<String[]> matchedPersons = new ArrayList<>();
for (String[] person : getAllPersonsInAddressBook()) {
final Set<String> wordsInName = new HashSet<>(splitByWhitespace(getNameFromPerson(person)));
if (!Collections.disjoint(wordsInName, keywords)) {
String keywordsFinal = keywords.toString().toLowerCase();
String wordsInNameFinal = wordsInName.toString().toLowerCase();
if (keywordsFinal.equals(wordsInNameFinal)) {
matchedPersons.add(person);
}
}
Expand Down Expand Up @@ -548,7 +552,14 @@ private static String executeListAllPersonsInAddressBook() {
showToUser(toBeDisplayed);
return getMessageForPersonsDisplayedSummary(toBeDisplayed);
}

private static String executeSortList() {
ArrayList<String[]> sortedUsers = getAllPersonsInAddressBook();
// Sort here.
Collections.sort(sortedUsers);

showToUser(sortedUsers);
return getMessageForPersonsDisplayedSummary(sortedUsers);
}
/**
* Request to terminate the program.
*
Expand Down Expand Up @@ -1169,8 +1180,11 @@ private static String getUsageInfoForExitCommand() {
*
* @return Priority string without p/
*/
// Week 3, Used refractor extract local variable to field.
private static String removePrefixSign(String s, String sign) {
return s.replace(sign, "");

String removedPrefix = s.replace(sign, "");
return removedPrefix;
}

/**
Expand Down