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

import java.util.ArrayList;
import java.util.Collection;
import java.util.Iterator;

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

import org.apache.log4j.Category;

/**
 * @version $Id: SICtgryNode.java,v 1.0 Exp $
 * @author  Jinwang Chen
 * <br>Description: nodeのカテゴリのクラスの作成
 * <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 SICtgryNode extends SICtgry {

  //ログ用のインスタンスの生成
  private static Category log=Category.getInstance(SIConfig.SILOG4J_WEBSHOP_CATEGORY_NAME);

  private Collection ctgryEntries=new ArrayList();
  private int level=0;
  private String parentCtgryCode="";
  private boolean existFlg=false;
  private ArrayList childList=new ArrayList();

  //商品数量
  private int cmdtyAmount=0;

  public SICtgryNode(){
    this.ctgryEntries = new ArrayList();
    this.childList = new ArrayList();
  }

  public SICtgryNode(String ctgryCode, String parentCtgryCode,String ctgryName,String abbvCtgryName) {
    super(ctgryCode, parentCtgryCode,ctgryName,abbvCtgryName);
    this.ctgryEntries = new ArrayList();
    this.childList = new ArrayList();
  }

  public void add(SICtgry ctgryItem) {
    ctgryEntries.add(ctgryItem);
  }

  public Iterator menuEntries() {
    return ctgryEntries.iterator();
  }
  public void setLevel(int level){
    this.level=level;
  }

  public void setParentCtgryCode(String lParentCtgryCode){
    if (SIUtil.isNull(lParentCtgryCode))lParentCtgryCode="";
    this.parentCtgryCode = lParentCtgryCode;
  }
  public void setExistFlg(String lCtgryCode){
    if (SIUtil.isNotNull(lCtgryCode))existFlg=true;
    else existFlg=false;
  }

  public void setCmdtyAmount(int lCmdtyAmount){
    this.cmdtyAmount=lCmdtyAmount;
  }
  public int getLevel(){
    return this.level;
  }
  public String getParentCtgryCode(){
    return this.parentCtgryCode;
  }

  public boolean getExistFlg(){
    return existFlg;
  }

  public int getCmdtyAmount(){
    return this.cmdtyAmount;
  }
  public void addChild(String childCode){
    childList.add(childCode);
  }
  public void addChild(ArrayList childCodeList){
    Iterator iterator=childCodeList.iterator();
    String ctgryCode="";
    while (iterator.hasNext()){
      ctgryCode=(String)iterator.next();
      childList.add(ctgryCode);
    }
  }

  public ArrayList getChild(){
    return childList;
  }
}