From ef780de61a6ef0c8b9cab9798ea426e7d777c56c Mon Sep 17 00:00:00 2001 From: bennyLCK Date: Fri, 5 Apr 2024 00:56:46 +0800 Subject: [PATCH] Fix case-sensitivity bug for sort commands --- .../address/logic/parser/SortArticleCommandParser.java | 6 +++--- .../seedu/address/logic/parser/SortCommandParser.java | 8 +++++--- .../seedu/address/model/article/UniqueArticleList.java | 2 +- .../java/seedu/address/model/person/UniquePersonList.java | 2 +- 4 files changed, 10 insertions(+), 8 deletions(-) diff --git a/src/main/java/seedu/address/logic/parser/SortArticleCommandParser.java b/src/main/java/seedu/address/logic/parser/SortArticleCommandParser.java index a377bdb8e53..27a0a8d9c9f 100644 --- a/src/main/java/seedu/address/logic/parser/SortArticleCommandParser.java +++ b/src/main/java/seedu/address/logic/parser/SortArticleCommandParser.java @@ -20,10 +20,10 @@ public class SortArticleCommandParser implements Parser { }; /** - * Checks if the given prefix is allowed in choosing an attribute for sorting. + * Checks if the given prefix is allowed in choosing an attribute for sorting that is case-insensitive. */ public static boolean isAllowedPrefix(String prefix) { - return AllowedPrefixes.contains(prefix); + return AllowedPrefixes.contains(prefix.toLowerCase()) || AllowedPrefixes.contains(prefix.toUpperCase()); } /** @@ -33,7 +33,7 @@ public static boolean isAllowedPrefix(String prefix) { */ public SortArticleCommand parse(String args) throws ParseException { String prefix = args.trim(); - if (prefix.isEmpty() || !PREFIX_DATE.getPrefix().equals(prefix)) { + if (prefix.isEmpty() || !PREFIX_DATE.getPrefix().equalsIgnoreCase(prefix)) { throw new ParseException( String.format(MESSAGE_INVALID_COMMAND_FORMAT, SortArticleCommand.MESSAGE_USAGE)); } diff --git a/src/main/java/seedu/address/logic/parser/SortCommandParser.java b/src/main/java/seedu/address/logic/parser/SortCommandParser.java index e6d2547e4a1..2eae41b4871 100644 --- a/src/main/java/seedu/address/logic/parser/SortCommandParser.java +++ b/src/main/java/seedu/address/logic/parser/SortCommandParser.java @@ -20,10 +20,10 @@ public class SortCommandParser implements Parser { }; /** - * Checks if the given prefix is allowed in choosing an attribute for sorting. + * Checks if the given prefix is allowed in choosing an attribute for sorting that is case-insensitive. */ public static boolean isAllowedPrefix(String prefix) { - return AllowedPrefixes.contains(prefix); + return AllowedPrefixes.contains(prefix.toLowerCase()) || AllowedPrefixes.contains(prefix.toUpperCase()); } /** @@ -32,12 +32,14 @@ public static boolean isAllowedPrefix(String prefix) { * @throws ParseException if the user input does not conform the expected format */ public SortCommand parse(String args) throws ParseException { + String prefix = args.trim(); - if (prefix.isEmpty() || !PREFIX_NAME.getPrefix().equals(prefix)) { + if (prefix.isEmpty() || !PREFIX_NAME.getPrefix().equalsIgnoreCase(prefix)) { throw new ParseException( String.format(MESSAGE_INVALID_COMMAND_FORMAT, SortCommand.MESSAGE_USAGE)); } return new SortCommand(prefix); } + } diff --git a/src/main/java/seedu/address/model/article/UniqueArticleList.java b/src/main/java/seedu/address/model/article/UniqueArticleList.java index 1ff211542c8..980dcd3e9d9 100644 --- a/src/main/java/seedu/address/model/article/UniqueArticleList.java +++ b/src/main/java/seedu/address/model/article/UniqueArticleList.java @@ -108,7 +108,7 @@ public void setArticles(List
articles) { */ public void sortArticles(String prefix) { requireNonNull(prefix); - if (PREFIX_DATE.getPrefix().equals(prefix)) { + if (PREFIX_DATE.getPrefix().equalsIgnoreCase(prefix)) { // Sort by publication date and display most recent articles first. internalList.sort(Comparator.comparing(Article::getPublicationDate, Comparator.reverseOrder())); } else { diff --git a/src/main/java/seedu/address/model/person/UniquePersonList.java b/src/main/java/seedu/address/model/person/UniquePersonList.java index fb2f4c55743..ae79cd8f60c 100644 --- a/src/main/java/seedu/address/model/person/UniquePersonList.java +++ b/src/main/java/seedu/address/model/person/UniquePersonList.java @@ -104,7 +104,7 @@ public void setPersons(List persons) { */ public void sortPersons(String prefix) { requireNonNull(prefix); - if (PREFIX_NAME.getPrefix().equals(prefix)) { + if (PREFIX_NAME.getPrefix().equalsIgnoreCase(prefix)) { internalList.sort(Comparator.comparing(Person::getName)); } else { throw new IllegalArgumentException("Invalid prefix supplied.");