package com.taglib.wdjsp.commontasks; import java.util.*; import java.text.*; import java.io.*; public class ShoppingCart implements Serializable { private List items; private NumberFormat currencyFormat; public ShoppingCart() { items = new ArrayList(); currencyFormat = NumberFormat.getCurrencyInstance(); } public void setAddItem(String itemNumber) { changeItemCount(itemNumber, 1); } public void setRemoveItem(String itemNumber) { changeItemCount(itemNumber, -1); } public ShoppingCartItem getItem(int i) { return (ShoppingCartItem)items.get(i); } public int getItemSize() { return items.size(); } public String getTotalPrice() { Iterator i = items.iterator(); double price = 0.00; while (i.hasNext()) { ShoppingCartItem item = (ShoppingCartItem)i.next(); price += item.getExtendedPrice(); } return currencyFormat.format(price); } private void changeItemCount(String itemNumber, int delta) { ShoppingCartItem item = new ShoppingCartItem(itemNumber); if (items.contains(item)) { // change the count for this item ShoppingCartItem existingItem; existingItem = (ShoppingCartItem)items.get(items.indexOf(item)); existingItem.incrementCount(delta); if (existingItem.getCount() <= 0) { items.remove(existingItem); } } else { // new item, store it if positive change if (delta > 0) { items.add(item); } } } }