Ejemplo n.º 1
0
 public void merge(Member member, Cart cart) {
   if ((member != null) && (cart != null) && (cart.getMember() == null)) {
     Cart localCart = member.getCart();
     if (localCart != null) {
       Iterator<CartItem> iterator = cart.getCartItems().iterator();
       while (iterator.hasNext()) {
         CartItem cartItem = (CartItem) iterator.next();
         Product product = cartItem.getProduct();
         if (localCart.contains(product)) {
           if ((Cart.MAX_PRODUCT_COUNT != null)
               && (localCart.getCartItems().size() > Cart.MAX_PRODUCT_COUNT.intValue())) continue;
           CartItem localCartItem = localCart.getCartItem(product);
           localCartItem.add(cartItem.getQuantity().intValue());
           this.cartItemDao.merge(localCartItem);
         } else {
           if ((Cart.MAX_PRODUCT_COUNT != null)
               && (localCart.getCartItems().size() >= Cart.MAX_PRODUCT_COUNT.intValue())) continue;
           iterator.remove();
           cartItem.setCart(localCart);
           localCart.getCartItems().add(cartItem);
           this.cartItemDao.merge(cartItem);
         }
       }
       this.cartDao.remove(cart);
     } else {
       member.setCart(cart);
       cart.setMember(member);
       this.cartDao.merge(cart);
     }
   }
 }