package bankAccount; import java.util.ArrayList; public class ObservableAccount implements Account { protected Account account; protected ArrayList observers; public ObservableAccount(Account account) { this.account = account; observers = new ArrayList(); } public String getFirstName() { return account.getFirstName(); } public String getLastName() { return account.getLastName(); } public void deposit(Deposit d) { account.deposit(d); notifyObservers(); } public double getCurrentBalance() { return account.getCurrentBalance(); } public double getPendingBalance() { return account.getPendingBalance(); } public void withdraw(double amount) throws InsufficientFundsException { account.withdraw(amount); notifyObservers(); } public void addObserver(SimpleObserver o) { observers.add(o); } public void notifyObservers() { for (SimpleObserver o: observers) { o.update(); } } }