Bugfix in getTransactionsSorted and getTransactionsByType in PrivateBank.java
This commit is contained in:
@@ -221,7 +221,7 @@ public class PrivateBank implements Bank, JsonSerializer<Transaction>, JsonDeser
|
||||
|
||||
// 2 setting as incoming transfer
|
||||
else if (transaction instanceof IncomingTransfer) {
|
||||
if (((IncomingTransfer) transaction).getSender().equals("") || ((IncomingTransfer) transaction).getRecipient().equals(""))
|
||||
if (((IncomingTransfer) transaction).getSender().isEmpty() || ((IncomingTransfer) transaction).getRecipient().isEmpty())
|
||||
throw new TransactionAttributeException("Transfer without sender or recipient");
|
||||
|
||||
else if (((IncomingTransfer) transaction).getRecipient().equals(account))
|
||||
@@ -232,7 +232,7 @@ public class PrivateBank implements Bank, JsonSerializer<Transaction>, JsonDeser
|
||||
|
||||
// 3 setting as outgoing transfer
|
||||
else if (transaction instanceof OutgoingTransfer) {
|
||||
if (((OutgoingTransfer) transaction).getSender().equals("") || ((OutgoingTransfer) transaction).getRecipient().equals(""))
|
||||
if (((OutgoingTransfer) transaction).getSender().isEmpty() || ((OutgoingTransfer) transaction).getRecipient().isEmpty())
|
||||
throw new TransactionAttributeException("Transfer without sender or recipient");
|
||||
|
||||
else if (((OutgoingTransfer) transaction).getSender().equals(account))
|
||||
@@ -332,8 +332,16 @@ public class PrivateBank implements Bank, JsonSerializer<Transaction>, JsonDeser
|
||||
*/
|
||||
@Override
|
||||
public List<Transaction> getTransactionsSorted(String account, boolean asc) {
|
||||
List<Transaction> transactions = this.accountsToTransactions.get(account);
|
||||
transactions.sort(Comparator.comparingDouble(Transaction::calculate));
|
||||
List<Transaction> transactions = new ArrayList<>(this.accountsToTransactions.get(account));
|
||||
|
||||
if (transactions == null || transactions.isEmpty())
|
||||
return new ArrayList<>();
|
||||
|
||||
if (asc)
|
||||
transactions.sort(Comparator.comparingDouble(Transaction::calculate));
|
||||
else
|
||||
transactions.sort(Comparator.comparingDouble(Transaction::calculate).reversed());
|
||||
|
||||
return transactions;
|
||||
}
|
||||
|
||||
@@ -346,7 +354,7 @@ public class PrivateBank implements Bank, JsonSerializer<Transaction>, JsonDeser
|
||||
*/
|
||||
@Override
|
||||
public List<Transaction> getTransactionsByType(String account, boolean positive) {
|
||||
List<Transaction> transactions = this.accountsToTransactions.get(account);
|
||||
List<Transaction> transactions = new ArrayList<>(this.accountsToTransactions.get(account));
|
||||
if (positive)
|
||||
transactions.removeIf(transaction -> transaction.calculate() >= 0);
|
||||
else
|
||||
@@ -359,7 +367,7 @@ public class PrivateBank implements Bank, JsonSerializer<Transaction>, JsonDeser
|
||||
*
|
||||
* @throws IOException if an error occurs while deserializing
|
||||
*/
|
||||
public void readAccounts() throws IOException, java.io.IOException, AccountAlreadyExistsException, TransactionAlreadyExistException, AccountDoesNotExistException, TransactionAttributeException {
|
||||
public void readAccounts() throws IOException, java.io.IOException, AccountAlreadyExistsException, TransactionAlreadyExistException, TransactionAttributeException {
|
||||
/*
|
||||
1. JSONs einlesen
|
||||
2. for each Transaction
|
||||
|
||||
Reference in New Issue
Block a user