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

import java.util.*;
import org.apache.log4j.Category;
import jp.co.sint.config.*;

import java.io.*;	//7.1.1 ST0225 追加
/**
 * @version $Id : SITableConditionManager.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/26  Original
 */

public class SITableConditionManager implements Serializable{	//7.1.1 ST0225 追加　implements追加

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

  private ArrayList tableConditionList=new ArrayList();

  public SITableConditionManager(){}

  public SITableConditionManager(SITableCondition tableCondition){
    this.add(tableCondition);
  }

  public void add(String lItemName,Object lItemValue){
    SITableCondition lTableCondition=new SITableCondition(lItemName,lItemValue);
    this.add(lTableCondition);
  }

  public void add(String lTableName,String lItemName,Object lItemValue){
    SITableCondition lTableCondition=new SITableCondition(lTableName,lItemName,lItemValue);
    this.add(lTableCondition);
  }

  public void add(String lTableName,String lItemName,Object lItemValue,int lCompareType){
    SITableCondition lTableCondition=new SITableCondition(lTableName,lItemName,lItemValue,lCompareType);
    this.add(lTableCondition);
  }

  public void add(SITableCondition tableCondition){
		tableConditionList.add(tableCondition);
  }

  public String getCondtionSQL(){
    return getCondtionSQL(tableConditionList);
  }

  public int size(){
    return tableConditionList.size();
  }

  public static String getCondtionSQL(ArrayList lTableConditionList){
    StringBuffer resultBuf=new StringBuffer();
    SITableCondition tableCondition=new SITableCondition();
    for(int ii=0;ii<lTableConditionList.size();ii++){
      tableCondition=(SITableCondition)lTableConditionList.get(ii);
      resultBuf.append(tableCondition.getCondition());
    }
    return resultBuf.toString();
  }
}
