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