KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > com > ibatis > jpetstore > domain > Cart


1 package com.ibatis.jpetstore.domain;
2
3 import com.ibatis.common.util.PaginatedArrayList;
4 import com.ibatis.common.util.PaginatedList;
5
6 import java.io.Serializable JavaDoc;
7 import java.math.BigDecimal JavaDoc;
8 import java.util.*;
9
10 public class Cart implements Serializable JavaDoc {
11
12   /* Private Fields */
13
14   private final Map itemMap = Collections.synchronizedMap(new HashMap());
15   private final PaginatedList itemList = new PaginatedArrayList(4);
16
17   /* JavaBeans Properties */
18
19   public Iterator getCartItems() {
20     return itemList.iterator();
21   }
22
23   public PaginatedList getCartItemList() {
24     return itemList;
25   }
26
27   public int getNumberOfItems() {
28     return itemList.size();
29   }
30
31   /* Public Methods */
32
33   public Iterator getAllCartItems() {
34     List allItems = new ArrayList();
35     itemList.gotoPage(0);
36     allItems.addAll(itemList);
37     while (itemList.nextPage()) {
38       allItems.addAll(itemList);
39     }
40     return allItems.iterator();
41   }
42
43   public boolean containsItemId(String JavaDoc itemId) {
44     return itemMap.containsKey(itemId);
45   }
46
47   public void addItem(Item item, boolean isInStock) {
48     CartItem cartItem = (CartItem) itemMap.get(item.getItemId());
49     if (cartItem == null) {
50       cartItem = new CartItem();
51       cartItem.setItem(item);
52       cartItem.setQuantity(0);
53       cartItem.setInStock(isInStock);
54       itemMap.put(item.getItemId(), cartItem);
55       itemList.add(cartItem);
56     }
57     cartItem.incrementQuantity();
58   }
59
60
61   public Item removeItemById(String JavaDoc itemId) {
62     CartItem cartItem = (CartItem) itemMap.remove(itemId);
63     if (cartItem == null) {
64       return null;
65     } else {
66       itemList.remove(cartItem);
67       return cartItem.getItem();
68     }
69   }
70
71   public void incrementQuantityByItemId(String JavaDoc itemId) {
72     CartItem cartItem = (CartItem) itemMap.get(itemId);
73     cartItem.incrementQuantity();
74   }
75
76   public void setQuantityByItemId(String JavaDoc itemId, int quantity) {
77     CartItem cartItem = (CartItem) itemMap.get(itemId);
78     cartItem.setQuantity(quantity);
79   }
80
81   public BigDecimal JavaDoc getSubTotal() {
82     BigDecimal JavaDoc subTotal = new BigDecimal JavaDoc("0");
83     Iterator items = getAllCartItems();
84     while (items.hasNext()) {
85       CartItem cartItem = (CartItem) items.next();
86       Item item = cartItem.getItem();
87       BigDecimal JavaDoc listPrice = item.getListPrice();
88       BigDecimal JavaDoc quantity = new BigDecimal JavaDoc(String.valueOf(cartItem.getQuantity()));
89       subTotal = subTotal.add(listPrice.multiply(quantity));
90     }
91     return subTotal;
92   }
93
94 }
95
Popular Tags