import java.util.ArrayList;

/**
 * Main class that demonstrates polymorphism using bank accounts.
 *   @author Dave Reed
 *   @version 8/15/13
 */
public class AccountAdd {
  public static void main(String[] args) {
    SavingsAccount xmasFund = new SavingsAccount(2.67);
    xmasFund.deposit(250.0);    
    
    SavingsAccount carMoney = new SavingsAccount(1.8);
    carMoney.deposit(100.0);    
    
    CheckingAccount living = new CheckingAccount();
    living.deposit(400.0);
    living.withdraw(49.99);
	    
    ArrayList<BankAccount> finances = new ArrayList<BankAccount>();
    finances.add(xmasFund);
    finances.add(carMoney);
    finances.add(living);
    
    addToAll(finances, 5.0);
    showAll(finances);
  }
	
  private static void addToAll(ArrayList<BankAccount> accounts, double amount) {
    for (int i = 0; i < accounts.size(); i++) {
      accounts.get(i).deposit(amount);
    }
  }
	
  private static void showAll(ArrayList<BankAccount> accounts) {
    for (int i = 0; i < accounts.size(); i++) {
      System.out.println(accounts.get(i).getAccountNumber() + ": $" +
                         accounts.get(i).getBalance());
    }
  }
}
