Package com.yummynoodlebar.web.domain

Source Code of com.yummynoodlebar.web.domain.Basket

package com.yummynoodlebar.web.domain;

import java.io.Serializable;
import java.util.ArrayList;
import java.util.Date;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

import org.springframework.beans.BeanUtils;
import org.springframework.context.annotation.Scope;
import org.springframework.context.annotation.ScopedProxyMode;
import org.springframework.stereotype.Component;

import com.yummynoodlebar.events.orders.OrderDetails;

@Component
@Scope(value="session", proxyMode=ScopedProxyMode.TARGET_CLASS)
public class Basket  implements Serializable {

  private static final long serialVersionUID = -1779666204730031281L;
 
  private Map<String, MenuItem> items = new HashMap<String, MenuItem>();

 
  public Basket() {
   
  }

  public Basket(Map<String, MenuItem> items) {
    this.items = items;
  }

 
  public MenuItem add(MenuItem item) {
    items.put(item.getId(), item);
    return item;
  }

 
  public void delete(String key) {
    items.remove(key);
  }

 
  public MenuItem findById(String key) {
    for (MenuItem item : items.values()) {
      if (item.getId().equals(key)) {
        return item;
      }
    }
    return null;
  }

 
  public List<MenuItem> findAll() {
    return new ArrayList<MenuItem>(items.values());
  }
 
  public List<MenuItem> getItems() {
    return findAll();
  }
 
  public int getSize() {
    return items.size();
  }
 
  public void clear() {
    items = new HashMap<String, MenuItem>();
  }
 
  public OrderDetails createOrderDetailsWithCustomerInfo(CustomerInfo info) {
      OrderDetails order = new OrderDetails();
      BeanUtils.copyProperties(info, order);
      order.setDateTimeOfSubmission(new Date());
      copyItemsFromBasketToOrder(order);
    return order;
  }
 
  private void copyItemsFromBasketToOrder(OrderDetails orderDetails) {
    Map<String, Integer> items = new HashMap<String, Integer>();
    for (MenuItem item : getItems()) {
      //TODO need to get quantity from user input
      items.put(item.getId(), 1);
    }
    orderDetails.setOrderItems(items);
  }
}
TOP

Related Classes of com.yummynoodlebar.web.domain.Basket

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.