Skip to content

Commit

Permalink
Merge pull request #60 from ChongXern/master
Browse files Browse the repository at this point in the history
Add sorting by name comparator method for sorting transactions
  • Loading branch information
ChongXern committed Mar 29, 2024
2 parents d118630 + 2b0d299 commit a295ed6
Show file tree
Hide file tree
Showing 5 changed files with 59 additions and 6 deletions.
8 changes: 5 additions & 3 deletions src/main/java/financeproject/data/data.txt
Original file line number Diff line number Diff line change
@@ -1,3 +1,5 @@
Stocks|400.00|Oct 24 2024 12:00PM|INVESTMENT
Stocks|400.00|Oct 24 2024 12:00PM|INVESTMENT
Stocks|400.12|Oct 24 2024 12:00PM|INVESTMENT
Salary|400.00|May 23 2022 07:00PM|INCOME
Salara|400.00|May 23 2022 07:00PM|INCOME
Salarz|400.00|May 23 2022 07:00PM|INCOME
Rent|-1500.00|Jun 23 2023 06:00PM|RENT
Rent|-1500.00|Jun 23 2023 06:00PM|RENT
4 changes: 4 additions & 0 deletions src/main/java/financialtransactions/Transaction.java
Original file line number Diff line number Diff line change
Expand Up @@ -50,4 +50,8 @@ public String toString() {
public String toSave() {
return String.format("%s|%.2f|%s|%s\n", name, amount, date.toString(), category);
}

protected BaseDate getDate() {
return date;
}
}
44 changes: 42 additions & 2 deletions src/main/java/financialtransactions/TransactionList.java
Original file line number Diff line number Diff line change
@@ -1,9 +1,11 @@
package financialtransactions;

import java.util.ArrayList;
import java.util.Comparator;

public class TransactionList<T extends Transaction<?>> {
private ArrayList<T> transactionList;
private String transactionsType;

public TransactionList(){
this.transactionList = new ArrayList<>();
Expand Down Expand Up @@ -32,12 +34,12 @@ public boolean addTransaction(T newTransaction){
return false;
}

public boolean removeTransactionIndex (int index) throws Exception{
public boolean removeTransactionIndex (int index) {
transactionList.remove(index);
return true;
}

public boolean editTransactionIndex (int index, T transaction) throws Exception {
public boolean editTransactionIndex (int index, T transaction) {
transactionList.set(index, transaction);
return true;
}
Expand Down Expand Up @@ -76,4 +78,42 @@ protected void printTransactionsSafeInfo() {
System.out.println(" " + transaction.getName() + " " + transaction.getCategory());
}
}

public String getTransactionsType() {
return transactionsType;
}

public void setTransactionsType(String transactionsType) {
if (transactionsType.equals("Mixed")) {
return;
}
if (this.transactionsType == null) {
this.transactionsType = transactionsType;
} else if (!this.transactionsType.equals(transactionsType)) {
this.transactionsType = "Mixed";
}
}

public class NameComparator<T extends Transaction<?>> implements Comparator<T> {
@Override
public int compare(T o1, T o2) {
return o2.getName().compareToIgnoreCase(o1.getName());
}
}

public class DateComparator<T extends Transaction<?>> implements Comparator<T> {
@Override
public int compare(T o1, T o2) {
return o2.getDate().getDateTime().compareTo(o1.getDate().getDateTime());
}
}

public void sortListByName() {
this.transactionList.sort(new NameComparator<>());
}

public void sortListByDate() {
this.transactionList.sort(new DateComparator<>());
}

}
3 changes: 3 additions & 0 deletions src/main/java/financialtransactions/TransactionManager.java
Original file line number Diff line number Diff line change
Expand Up @@ -14,12 +14,15 @@ public TransactionManager() {

public boolean addTransaction(Transaction<?> transaction) {
transactionList.addTransaction(transaction);
// transactionList.sortListByName();
if (transaction instanceof Inflow) {
Inflow inflow = (Inflow) transaction;
transactionList.setTransactionsType("Inflow");
return inflows.addTransaction(inflow);
}
if (transaction instanceof Outflow) {
Outflow outflow = (Outflow) transaction;
transactionList.setTransactionsType("Outflow");
return outflows.addTransaction(outflow);
}
System.out.println("Invalid transaction type.");
Expand Down
6 changes: 5 additions & 1 deletion src/main/java/template/BaseDate.java
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,7 @@ public class BaseDate {

private static final ArrayList<String> dateTimeFormats = dateTimeVary();

LocalDateTime dateTime = null;
private LocalDateTime dateTime = null;
private final String defaultTime = " 0000";

public BaseDate(String args) {
Expand Down Expand Up @@ -76,4 +76,8 @@ public boolean isBefore(BaseDate otherDate) {
}
return false;
}

public LocalDateTime getDateTime() {
return dateTime;
}
}

0 comments on commit a295ed6

Please sign in to comment.