Files
HW-09-Advanced-Multithreading/src/main/java/dev/banking/processor/TransactionProcessor.java
T

44 lines
941 B
Java

package dev.banking.processor;
import dev.banking.model.*;
import java.util.Map;
public class TransactionProcessor {
private final Map<Integer, BankAccount> accounts;
public TransactionProcessor(
Map<Integer, BankAccount> accounts
) {
this.accounts = accounts;
}
public void process(Transaction tx) {
BankAccount source =
accounts.get(tx.getSourceAccountId());
switch (tx.getType()) {
case DEPOSIT -> {
source.deposit(tx.getAmount());
}
case WITHDRAW -> {
source.withdraw(tx.getAmount());
}
case TRANSFER -> {
BankAccount target =
accounts.get(tx.getTargetAccountId());
source.transfer(
target,
tx.getAmount()
);
}
}
}
}