import java.util.Vector; /** Class to represent a CheckBook, which is used to store and manage transaction objects and totals for the check, deposit, and administrative totals as well as the total balance of the account. Uses a Vector to store transaction objects. @author Bert G. Wachsmuth @version Feb. 2002 */ public class Checkbook { private String bankName; private double checkAmount; private double depositAmount; private double adminAmount; private Vector transactions; public Checkbook(String bankName) { this.bankName = bankName; checkAmount = depositAmount = adminAmount = 0.0; transactions = new Vector(); } public double getCheckAmount() { return checkAmount; } public double getDepositAmount() { return depositAmount; } public double getAdminAmount() { return adminAmount; } public double getAmount() { return checkAmount + depositAmount + adminAmount; } public void addTransaction(Check check) { checkAmount += check.getAmount(); transactions.addElement(check); } public void addTransaction(Deposit deposit) { depositAmount += deposit.getAmount(); transactions.addElement(deposit); } public void addTransaction(Administrative admin) { adminAmount += admin.getAmount(); transactions.addElement(admin); } public Transaction getTransaction(int i) { return (Transaction)transactions.get(i); } public void deleteTransaction(int i) { Transaction t = getTransaction(i); if (t instanceof Check) checkAmount -= t.getAmount(); else if (t instanceof Deposit) depositAmount -= t.getAmount(); else if (t instanceof Administrative) adminAmount -= t.getAmount(); transactions.remove(i); } public int getSize() { return transactions.size(); } public String getBankName() { return bankName; } /** Returns a string representation of a checkbook object, listing the values of some of its internal fields. Can be used to get a quick look at the state of a CheckBook object. */ public String toString() { StringBuffer sb = new StringBuffer(); sb.append("Number of transactions: " + getSize() + "\n"); sb.append("\tAmount of checks:\t$" + checkAmount + "\n"); sb.append("\tAmount of deposits:\t$" + depositAmount + "\n"); sb.append("\tAmount of admins:\t$" + adminAmount + "\n"); sb.append("\tTOTAL AMOUNT:\t$" + getAmount() + "\n"); return sb.toString(); } }