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

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

/**
 * @version $Id: SIDeleteRec.java,v 1.0 Exp $
 * @author     : Jinwang Chen
 * <br>Description: テーブルのあるレコードを削除するSQL文を生成します。
 * <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/07/25  Original
 */

public class SIDeleteRec extends SIExecuteUpdate {


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

  /**
   * <b>SIDeleteRec</b>
   * コンストラクタ
   * @param  なし
   * @return なし
   * @throws なし
   */
  public SIDeleteRec() {}

  /**
   * <b>SIDeleteRec</b>
   * テーブル名付けのコンストラクタ
   * @param  なし
   * @return なし
   * @throws なし
   */
  public SIDeleteRec(String lTableName){
    this.tableName=lTableName;
  }

  public void setSQL(String lSQL){
  	if (SIUtil.isNull(lSQL))lSQL="";
  	this.sQL =lSQL;
  }

  /**
   * <b>getSQL</b>
   * 削除用のSQL文を作成します。
   * @param  なし
   * @return 削除用のSQL文
   * @throws なし
   */
  public String getSQL(){
  	if (SIUtil.isNotNull(this.sQL)) return this.sQL;

    StringBuffer lDeleteBuf=new StringBuffer();
    String lCondtionSQL=this.getConditionSQL();

    log.debug("getSQL:tableName="+tableName+",lCondtionSQL="+lCondtionSQL);
    if (SIUtil.isNull(tableName)==true)return "";

    if (lCondtionSQL.trim().length() >0 )lDeleteBuf.append("DELETE FROM "+tableName + " WHERE "+lCondtionSQL);
    return lDeleteBuf.toString();
  }
}