package dev.banking.processor; import dev.banking.model.*; import java.util.Map; public class TransactionProcessor { private final Map accounts; public TransactionProcessor( Map 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() ); } } } }