/** * Add the selected items into cart. * * @param request The HttpServletRequest that contains the items to be added. * @return The name of the JSP page that is to be directed to. */ public String add(HttpServletRequest request) { Cart myCart = (Cart) request.getSession().getAttribute("cart"); HashMap<String, HashMap<StockType, LinkedList<Stock>>> itemsAlreadyInCart = new HashMap<String, HashMap<StockType, LinkedList<Stock>>>(); String[] itemsToAdd = request.getParameterValues("addToCart"); if (itemsToAdd == null) { request.setAttribute("cartSize", myCart.getCartSize()); return "cart.jsp"; } for (String item : itemsToAdd) { // if item is not in cart. LinkedList<Stock> inCart = itemIsInCart(item, myCart.getItems()); if (inCart == null) { System.out.println(item); myCart.addToCart(getItem(item)); } else { HashMap<StockType, LinkedList<Stock>> duplicated = new HashMap<StockType, LinkedList<Stock>>(); duplicated.put(getItem(item).getType(), inCart); itemsAlreadyInCart.put(item, duplicated); } } request.setAttribute("cartSize", myCart.getCartSize()); request.setAttribute("totalCost", getTotal(myCart)); request.setAttribute("alreadyInCartSize", itemsAlreadyInCart.size()); request.setAttribute("alreadyInCart", itemsAlreadyInCart); return "cart.jsp"; }
/** * Remove the selected items in cart. * * @param request The HttpServletRequest that contains the items to be removed. * @return The name of the JSP page to be directed to. */ public String remove(HttpServletRequest request) { Cart myCart = (Cart) request.getSession().getAttribute("cart"); LinkedList<Stock> itemsInCart = myCart.getItems(); String[] itemsToRemove = request.getParameterValues("removeFromCart"); if (itemsToRemove == null) return "cart.jsp"; for (String item : itemsToRemove) { itemsInCart.remove(getItem(item)); } request.setAttribute("cartSize", myCart.getCartSize()); request.setAttribute("totalCost", getTotal(myCart)); return "cart.jsp"; }