package jp.ossc.petstore.function.impl;

import java.util.List;

import jp.ossc.petstore.function.IProductFunction;
import jp.ossc.petstore.function.impl.BaseFunction;
import jp.ossc.petstore.model.Product;
import jp.ossc.petstore.dao.IProductDAO;
import jp.ossc.petstore.dto.functiondto.ProductFunctionDTO;
import jp.ossc.petstore.OpenstandiaConst;


/**
 * 商品ファンクションクラス
 * @author ossc
 * @version $Revision: 1.2 $
 */
public class ProductFunction extends BaseFunction implements IProductFunction {

	/**
	 * 商品情報ＤＡＯ
	 */
	private IProductDAO productDAO;

	/**
	 * 商品情報ＤＡＯ設定
	 * @param productDAO 商品情報ＤＡＯ
	 */
	public void setProductDAO(IProductDAO productDAO) {
		this.productDAO = productDAO;
	}


	/* (非 Javadoc)
	 * @see jp.ossc.petstore.function.IProductFunction#getProduct(jp.ossc.petstore.dto.functiondto.ProductFunctionDTO)
	 */
	public void getProduct(ProductFunctionDTO dto) {

		String productId = dto.getProductId();
		Product product = productDAO.getProduct(productId);
		
		if (product == null) {
			// ステータス設定
			dto.setStatus(OpenstandiaConst.ENV_STATUS_DATA_NOT_FOUND);
		}
		
		dto.setProduct(product);
	}


	/* (非 Javadoc)
	 * @see jp.ossc.petstore.function.IProductFunction#getProductList(jp.ossc.petstore.dto.functiondto.ProductFunctionDTO)
	 */
	public void getProductList(ProductFunctionDTO dto) {
		
		String categoryId = dto.getCategoryId();
		List list = productDAO.getProductList(categoryId);
		
		if (list.isEmpty()) {
			// ステータス設定
			dto.setStatus(OpenstandiaConst.ENV_STATUS_DATA_NOT_FOUND);
		}
		
		dto.setProductList(list);
	}

}
