|
ShoppingCartEJB |
|
/* * $Id: ShoppingCartEJB.java,v 1.6.4.3 2001/03/13 00:45:15 lblair Exp $ * Copyright 2001 Sun Microsystems, Inc. All rights reserved. * Copyright 2001 Sun Microsystems, Inc. Tous droits réservés. */ package com.sun.j2ee.blueprints.shoppingcart.cart.ejb; import java.util.List; import java.util.Iterator; import java.util.ArrayList; import java.util.Set; import java.util.Collection; import java.util.HashMap; import java.util.Locale; import java.rmi.RemoteException; import javax.ejb.SessionBean; import javax.ejb.SessionContext; import javax.ejb.EJBException; import com.sun.j2ee.blueprints.shoppingcart.catalog.model.Product; import com.sun.j2ee.blueprints.shoppingcart.catalog.model.Item; import com.sun.j2ee.blueprints.shoppingcart.cart.model.CartItem; import com.sun.j2ee.blueprints.shoppingcart.cart.model.ShoppingCartModel; import com.sun.j2ee.blueprints.shoppingcart.catalog.ejb.Catalog; import com.sun.j2ee.blueprints.shoppingcart.util.EJBUtil; import com.sun.j2ee.blueprints.util.tracer.Debug; /** * This class represents the implementation of shopping * cart as a Session EJB. The shopping cart EJB uses the * catalog EJB to get details about items in the cart. * * @see Catalog */ public class ShoppingCartEJB implements SessionBean { private HashMap cart; private Catalog catalog; public ShoppingCartEJB() { cart = new HashMap(); } public ShoppingCartModel getDetails(Locale locale) { ArrayList items = new ArrayList(); try { if (catalog == null) { catalog = EJBUtil.getCatalogHome().create(); } Set keys = null; if (cart != null) keys = cart.keySet(); Iterator it = null; if (keys != null) it = keys.iterator(); while ((it != null) && it.hasNext()) { String itemId = (String) it.next(); int qtyNeeded = ((Integer) cart.get(itemId)).intValue(); Item item = catalog.getItem(itemId, locale); String productId = item.getProductId(); Product p = catalog.getProduct(productId, locale); String productName = p.getName(); CartItem cartItem = new CartItem(itemId, productId, productName, item.getAttribute(), qtyNeeded, item.getListCost()); items.add(cartItem); } } catch (RemoteException re) { throw new EJBException(re.getMessage()); } catch (Exception ex) { throw new EJBException(ex.getMessage()); } ShoppingCartModel model = new ShoppingCartModel(items); return model; } public void addItem (String itemNo) { cart.put(itemNo, new Integer(1)); } public void addItem (String itemNo,int qty) { cart.put(itemNo, new Integer(qty)); } public void deleteItem (String itemNo) { cart.remove(itemNo); } public void updateItemQty (String itemNo, int newQty) { cart.remove(itemNo); cart.put(itemNo, new Integer(newQty)); } public void empty () { cart.clear(); } public void ejbCreate() { cart = new HashMap(); } public void ejbCreate(HashMap starting) { cart = (HashMap) starting.clone(); } public void setSessionContext(SessionContext sc) {} public void ejbRemove() {} public void ejbActivate() {} public void ejbPassivate() {} }
|
ShoppingCartEJB |
|