Skip to content

Commit

Permalink
add comparators
Browse files Browse the repository at this point in the history
  • Loading branch information
dabzpengu committed Mar 26, 2024
1 parent c4bd3c7 commit 728835e
Show file tree
Hide file tree
Showing 5 changed files with 64 additions and 1 deletion.
14 changes: 13 additions & 1 deletion src/main/java/seedu/address/logic/commands/SortCommand.java
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,11 @@
import static seedu.address.logic.parser.CliSyntax.PREFIX_NAME;
import static seedu.address.logic.parser.CliSyntax.PREFIX_SALARY;

import seedu.address.model.person.PersonCompanyNameComparator;
import seedu.address.model.person.PersonInterviewTimeComparator;
import seedu.address.model.person.PersonNameComparator;
import seedu.address.model.person.PersonPriorityComparator;
import seedu.address.model.person.PersonSalaryComparator;

public class SortCommand extends Command {

Expand All @@ -36,7 +40,15 @@ public CommandResult execute(Model model) throws CommandException {
switch (info) {
case 0:
model.updateSortedPersonList(new PersonPriorityComparator());
case 1:
model.updateSortedPersonList(new PersonCompanyNameComparator());
case 2:
model.updateSortedPersonList(new PersonNameComparator());
case 3:
model.updateSortedPersonList(new PersonInterviewTimeComparator());
case 4:
model.updateSortedPersonList(new PersonSalaryComparator());
}
return new CommandResult("SORRRRTEEEDDDD TEEHEEE GG EZ");
return new CommandResult("List Sorted");
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
package seedu.address.model.person;

import java.util.Comparator;

public class PersonCompanyNameComparator implements Comparator<Person> {
@Override
public int compare(Person p1, Person p2) {
return p1.getCompanyName().companyName.compareTo(p2.getCompanyName().companyName);
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
package seedu.address.model.person;

import java.util.Comparator;

public class PersonInterviewTimeComparator implements Comparator<Person> {
@Override
public int compare(Person p1, Person p2) {
if (p1.getDateTime().dateTime == null && p2.getDateTime().dateTime == null) {
return 0; // Both dates are null, retain the order
} else if (p1.getDateTime().dateTime == null) {
return 1; // p1 has null date, so it should come after p2
} else if (p2.getDateTime().dateTime == null) {
return -1; // p2 has null date, so it should come after p1
} else {
// Compare non-null dates
return p1.getDateTime().dateTime.compareTo(p2.getDateTime().dateTime);
}
}
}

10 changes: 10 additions & 0 deletions src/main/java/seedu/address/model/person/PersonNameComparator.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
package seedu.address.model.person;

import java.util.Comparator;

public class PersonNameComparator implements Comparator<Person> {
@Override
public int compare(Person p1, Person p2) {
return p1.getName().fullName.compareTo(p2.getName().fullName);
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
package seedu.address.model.person;

import java.util.Comparator;

public class PersonSalaryComparator implements Comparator<Person> {
@Override
public int compare(Person p1, Person p2) {

return Double.compare(p2.getSalary().getSalary1(), p1.getSalary().getSalary1());
}
}

0 comments on commit 728835e

Please sign in to comment.