KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > com > dotmarketing > cms > product > model > ShoppingCart


1 package com.dotmarketing.cms.product.model;
2
3 import java.util.ArrayList JavaDoc;
4 import java.util.List JavaDoc;
5
6 import com.liferay.portal.model.User;
7 import com.dotmarketing.portlets.discountcode.model.DiscountCode;
8 import com.dotmarketing.portlets.product.factories.ProductFormatFactory;
9 import com.dotmarketing.portlets.product.model.ProductFormat;
10
11 public class ShoppingCart {
12     long inode = 0;
13     private User user;
14     private List JavaDoc<Holder> holders;
15     private List JavaDoc<DiscountCode> discountCodes;
16     
17     public ShoppingCart()
18     {
19         holders = new ArrayList JavaDoc<Holder>();
20         discountCodes = new ArrayList JavaDoc<DiscountCode>();
21     }
22
23     public List JavaDoc<Holder> getHolders() {
24         return holders;
25     }
26     public void setHolders(List JavaDoc<Holder> holders) {
27         this.holders = holders;
28     }
29     public List JavaDoc<DiscountCode> getDiscountCodes() {
30         return discountCodes;
31     }
32
33     public void setDiscountCodes(List JavaDoc<DiscountCode> discountCodes) {
34         this.discountCodes = discountCodes;
35     }
36
37     /**
38      * Find an entry in the shopping cart
39      * @param formatInode
40      * @return
41      */

42     public Holder findHolder(long formatInode)
43     {
44         Holder holder = null;
45         for(Holder holderAux : holders)
46         {
47             if (holderAux.getFormat().getInode() == formatInode)
48             {
49                 holder = holderAux;
50                 break;
51             }
52         }
53         //If not found add a new entry
54
if (holder == null)
55         {
56             holder = new Holder();
57             ProductFormat format = ProductFormatFactory.getProductFormat(formatInode);
58             holder.setFormat(format);
59             holders.add(holder);
60         }
61         return holder;
62     }
63     
64     private Holder findHolderByHolderInode(long holderInode)
65     {
66         Holder holder = null;
67         for(Holder holderAux : holders)
68         {
69             if (holderAux.getInode() == holderInode)
70             {
71                 holder = holderAux;
72                 break;
73             }
74         }
75         return holder;
76     }
77     
78     /**
79      * Add an item to the shoppingCart
80      * @param quantity
81      * @param formatInode
82      */

83     public void addItem(int quantity,long formatInode)
84     {
85         Holder holder = findHolder(formatInode);
86         int originalquantity = holder.getQuantity();
87         int newQuantity = originalquantity + quantity;
88         holder.setQuantity(newQuantity);
89     }
90     
91     /**
92      * Set the quantity of an entry in the shoppingCart
93      * @param quantity
94      * @param formatInode
95      */

96     public void setQuantityItem(int quantity,long formatInode)
97     {
98         Holder holder = findHolder(formatInode);
99         holder.setQuantity(quantity);
100     }
101     
102     public void setQuantityItemByHolderInode(int quantity,long HolderInode)
103     {
104         Holder holder = findHolderByHolderInode(HolderInode);
105         if(holder != null)
106         {
107             holder.setQuantity(quantity);
108         }
109     }
110     
111     /**
112      * Delete an item to the shoppingCart
113      * @param quantity
114      * @param formatInode
115      */

116     public void deleteItem(int quantity,long formatInode)
117     {
118         Holder holder = findHolder(formatInode);
119         int originalquantity = holder.getQuantity();
120         int newQuantity = originalquantity - quantity;
121         newQuantity = (newQuantity <= 0 ? 0 : newQuantity);
122         holder.setQuantity(newQuantity);
123     }
124     
125     public void removeItem(long formatInode)
126     {
127         for(int i = 0;i < holders.size();i++)
128         {
129             Holder holderAux = holders.get(i);
130             if (holderAux.getFormat().getInode() == formatInode)
131             {
132                 holders.remove(i);
133                 break;
134             }
135         }
136     }
137     
138     /**
139      * Clear the shoppingCart
140      */

141     public void clear()
142     {
143         inode = 0;
144         user = null;
145         holders.clear();
146         discountCodes.clear();
147     }
148     
149     /**
150      * return how many items do you have in the shopping cart
151      */

152     public int numberItems()
153     {
154         int returnValue = 0;
155         for(Holder holder : holders)
156         {
157             returnValue += holder.getQuantity();
158         }
159         return returnValue;
160     }
161     
162     public void addDiscount(DiscountCode discountCode)
163     {
164         if(!discountCodes.contains(discountCode))
165         {
166             discountCodes.add(discountCode);
167         }
168     }
169     
170     public DiscountCode findDiscountCode(String JavaDoc discountId)
171     {
172         DiscountCode returnDiscount = null;
173         for(DiscountCode discountCode : discountCodes)
174         {
175             if (discountCode.getCodeId().equals(discountId))
176             {
177                 returnDiscount = discountCode;
178                 break;
179             }
180         }
181         return returnDiscount;
182     }
183     
184     public void deleteDiscountCode(String JavaDoc discountId)
185     {
186         for(int i = 0; i < discountCodes.size();i++)
187         {
188             DiscountCode discountCode = discountCodes.get(i);
189             if (discountCode.getCodeId().equals(discountId))
190             {
191                 discountCodes.remove(i);
192                 break;
193             }
194         }
195     }
196
197     public User getUser() {
198         return user;
199     }
200
201     public void setUser(User user) {
202         this.user = user;
203     }
204
205     public long getInode() {
206         return inode;
207     }
208
209     public void setInode(long inode) {
210         this.inode = inode;
211     }
212 }
Popular Tags