package com.ibatis.jpetstore.persistence.sqlmapdao;
import java.util.HashMap;
import java.util.Map;
import com.ibatis.common.util.PaginatedList;
import com.ibatis.dao.client.DaoManager;
import com.ibatis.jpetstore.domain.Item;
import com.ibatis.jpetstore.domain.LineItem;
import com.ibatis.jpetstore.domain.Order;
import com.ibatis.jpetstore.persistence.iface.ItemDao;
public class ItemSqlMapDao extends BaseSqlMapDao implements ItemDao {
public ItemSqlMapDao(DaoManager daoManager) {
super(daoManager);
}
public void updateAllQuantitiesFromOrder(Order order) {
for (int i = 0; i < order.getLineItems().size(); i++) {
LineItem lineItem = (LineItem) order.getLineItems().get(i);
String itemId = lineItem.getItemId();
Integer increment = new Integer(lineItem.getQuantity());
Map param = new HashMap(2);
param.put("itemId", itemId);
param.put("increment", increment);
update("updateInventoryQuantity", param);
}
}
public boolean isItemInStock(String itemId) {
Integer i = (Integer) queryForObject("getInventoryQuantity", itemId);
return (i != null && i.intValue() > 0);
}
public PaginatedList getItemListByProduct(String productId) {
return queryForPaginatedList("getItemListByProduct", productId, PAGE_SIZE);
}
public Item getItem(String itemId) {
Integer i = (Integer) queryForObject("getInventoryQuantity", itemId);
Item item = (Item) queryForObject("getItem", itemId);
item.setQuantity(i.intValue());
return item;
}
}