/**
 * Copyright (c) 2003-2004 System Integrator Corporation.
 *                 All Rights Reserved.
 */
package jp.co.sint.basic;

import jp.co.sint.config.SIConfig;
import jp.co.sint.tools.SIUtil;

import org.apache.log4j.Category;

/**
 * @version $Id: SICart.java,v 1.0 Exp $
 * @author  Jinwang Chen
 * <br>Description: カートにある商品と数量を表示するクラスです
 * <p>History</p>
 * <p>Author&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Date&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Reason</p>
 * ============&nbsp;&nbsp;&nbsp;==========&nbsp;&nbsp;===========================<br>
 * J.W.Chen       2003/06/25  Original
 */

public class SICart {
  //ログ用のインスタンスの生成
  private static Category log=Category.getInstance(SIConfig.SILOG4J_WEBSHOP_CATEGORY_NAME);
  //商品の数量(Notice:デフォールト==>一つ)
  private String amount="1";
  
  //規格分類1
  private String stndrdCode1="";
  
  //規格1
  private String elementCode1="";
  
  //規格分類2
  private String stndrdCode2="";
  
  //規格2
  private String elementCode2="";
  
  //商品の種類
  private SICartCmdty cmdty = new SICartCmdty();
  
  /**
   * <b>SICart</b>
   * コンストラクタ
   * @param  なし
   * @return なし
   * @throws なし
   */
  public SICart(){}
  
  /**
   * <b>SICart</b>
   * コンストラクタ
   * @param  cmdty 商品
   * @param  amount 商品の数量
   * @return なし
   * @throws なし
   */
  public SICart(SICartCmdty lCmdty) {
    this(lCmdty,"1");
  }
  
  /**
   * <b>SICart</b>
   * コンストラクタ
   * @param  cmdty 商品
   * @param  amount 商品の数量
   * @return なし
   * @throws なし
   */
  public SICart(SICartCmdty lCmdty,String lAmount) {
    log.debug("lAmount="+lAmount);
    this.cmdty  = lCmdty;
    if (SIUtil.isNull(lAmount)){
      log.warn("null amount!!!");
      lAmount="1";
    }
    this.amount = lAmount;
  }
  
  /**
   * <b>setCmdty</b>
   * 商品の追加
   * (デフォールトの場合に、商品数量が一つとして追加します、書き直すことができます)
   * @param  cmdty  新規商品
   * @return なし
   * @throws なし
   */
  public void setCmdty(SICartCmdty lCmdty){
    this.cmdty =lCmdty;
  }
  
  /**
   * <b>setAmount</b>
   * 購入する商品数量を設定します
   * @param  amount  商品数量
   * @return なし
   * @throws なし
   */
  public void setAmount(String lAmount){
    if (SIUtil.isNull(lAmount)){
      log.warn("null amount!!!");
      lAmount="1";
    }
    this.amount =lAmount;
  }
  
  //setter of 規格1
  public void setStndrdCode1(String lStndrdCode1){
    if (SIUtil.isNull(lStndrdCode1)) lStndrdCode1="";
    this.stndrdCode1=lStndrdCode1.trim();
  }
  
  //setter of エレメント1
  public void setElementCode1(String lElementCode1){
    if (SIUtil.isNull(lElementCode1)) lElementCode1="";
    this.elementCode1=lElementCode1.trim();
  }
  
  //setter of 規格2
  public void setStndrdCode2(String lStndrdCode2){
    if (SIUtil.isNull(lStndrdCode2)) lStndrdCode2="";
    this.stndrdCode2=lStndrdCode2.trim();
  }
  
  //setter of エレメント2
  public void setElementCode2(String lElementCode2){
    if (SIUtil.isNull(lElementCode2)) lElementCode2="";
    this.elementCode2=lElementCode2.trim();
  }
  
  /**
   * <b>getCmdty</b>
   * 購入する商品を取得します
   * @param  なし
   * @return 商品
   * @throws なし
   */
  public SICartCmdty getCmdty(){
    return this.cmdty;
  }
  
  public SICartCmdty getCartCmdty(){
    return this.cmdty;
  }
  
  /**
   * <b>getAmount</b>
   * 購入する商品数量を取得します
   * @param  なし
   * @return 商品数量
   * @throws なし
   */
  public String getAmount(){
    return this.amount;
  }
  
  //getter of 規格分類1
  public String getStndrdCode1(){
    return this.stndrdCode1;
  }
  
  //getter of 規格1
  public String getElementCode1(){
    return this.elementCode1;
  }
  
  //getter of 規格分類2
  public String getStndrdCode2(){
    return this.stndrdCode2;
  }
  
  //getter of 規格2
  public String getElementCode2(){
    return this.elementCode2;
  }
}