KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > org > springframework > samples > jpetstore > domain > Cart


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