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

import java.sql.*;
import java.text.ParseException;

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

/**
 * @version $Id: SICheckValid.java,v 1.0 2003/07/25 jwchen Exp $
 * @author  Jinwang Chen
 * <p>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/07/25  Original
 */

public class SICheckValid {
  //ログ用のインスタンスの生成
  private static Category log=Category.getInstance(SIConfig.SILOG4J_WEBSHOP_CATEGORY_NAME);
  
  /**
   * <b>isEmpty</b>
   * コンストラクタ
   * @param  なし
   * @return なし
   * @throws なし
   */
  public SICheckValid(){}
  
  /**
   * <b>checkValid</b>
   * それぞれのチェックタイプを応じてデータをチェックします、
   * @param  lCheckedName チェックの対象になる項目名、(エラーメッセージを構成するとき、使います)
   * @param  lCheckedData チェックのデータ
   * @param  lCheckedType  チェックのタイプ
   * @return エラーメッセージの内容
   * @throws なし
   */
  public static String checkValid(String lCheckedName,String lCheckedData,long lCheckedType){
    return checkValid(lCheckedName,null,lCheckedData,null,lCheckedType,0,0);
  }
  
  /**
   * <b>checkValid</b>
   * それぞれのチェックタイプを応じてデータをチェックします、
   * @param  lCheckedName チェックの対象になる項目名、(エラーメッセージを構成するとき、使います)
   * @param  lCheckedData チェックのデータ
   * @param  lCheckedType  チェックのタイプ
   * @param  lMax         入力したデータの最大の長さ
   * @return エラーメッセージの内容
   * @throws なし
   */
  public static String checkValid(String lCheckedName,String lCheckedData,long lCheckedType,int lMax){
    return checkValid(lCheckedName,null,lCheckedData,null,lCheckedType,0,lMax);
  }
  
  /**
   * <b>checkValid</b>
   * それぞれのチェックタイプを応じてデータをチェックします、
   * @param  lCheckedName チェックの対象になる項目名、(エラーメッセージを構成するとき、使います)
   * @param  lCheckedData チェックのデータ
   * @param  lCheckedType  チェックのタイプ
   * @param  lMin         数値の範囲内の下限の数値　、または、データ長さの下限
   * @param  lMax         数値の範囲内の上限の数値　、または、データ長さの上限
   * @return エラーメッセージの内容
   * @throws なし
   */
  public static String checkValid(String lCheckedName,String lCheckedData,long lCheckedType,int lMin,int lMax){
    return checkValid(lCheckedName,null,lCheckedData,null,lCheckedType,lMin,lMax);
  }
  
  /**
   * <b>checkValid</b>
   * それぞれのチェックタイプを応じてデータをチェックします、
   * @param  lCheckedName チェックの対象になる項目名、(エラーメッセージを構成するとき、使います)
   * @param  lCheckedName0 一致することをチェックするときに、二番目の項目名
   * @param  lCheckedData チェックのデータ
   * @param  lCheckedData0 一致することをチェックするときに、二番目の項目のデータ
   * @param  lCheckedType  チェックのタイプ
   * @return エラーメッセージの内容
   * @throws なし
   */
  public static String checkValid(String lCheckedName,String lCheckedName0,String lCheckedData,String lCheckedData0,long lCheckedType){
    return checkValid(lCheckedName,lCheckedName0,lCheckedData,lCheckedData0,lCheckedType,0,0);
  }
  
  /**
   * <b>checkValid</b>
   * それぞれのチェックタイプを応じてデータをチェックします、
   * @param  lCheckedName チェックの対象になる項目名、(エラーメッセージを構成するとき、使います)
   * @param  lCheckedName0 一致することをチェックするときに、二番目の項目名
   * @param  lCheckedData チェックのデータ
   * @param  lCheckedData0 一致することをチェックするときに、二番目の項目のデータ
   * @param  lCheckedType  チェックタイプ
   * @param  lMinLen  文字の最低長さ
   * @param  lmaxLen  文字の最大長さ
   * @return エラーメッセージの内容
   * @throws なし
   */
  public static String checkValid(String lCheckedName,String lCheckedName0,String lCheckedData,String lCheckedData0,long lCheckedType,int lMinLen,int lMaxLen){
    StringBuffer lResultBuf=new StringBuffer();
    log.debug("(String)checkValid:項目名0="+lCheckedName+"項目名1="+lCheckedName0+",データ0="+lCheckedData+",データ1="+lCheckedData0);
    
    //1.emptyのデータのチェック{1}
    if (SIUtil.match(lCheckedType,SICheckDataConf.SICHECK_DATA_EMPTY_TYPE)){
      lResultBuf.append(checkEmptyValid(lCheckedName,lCheckedData));
    }
    //2.数字のデータのチェック{2}
    if (SIUtil.match(lCheckedType,SICheckDataConf.SICHECK_DATA_DIGIT_TYPE)){
      lResultBuf.append(checkDigitValid(lCheckedName,lCheckedData));
    }
    //3.英字のチェック{4}
    if (SIUtil.match(lCheckedType,SICheckDataConf.SICHECK_DATA_ALPHA_TYPE)){
      lResultBuf.append(checkAlphaValid(lCheckedName,lCheckedData));
    }
    //4.英数字のチェック{8}
    if (SIUtil.match(lCheckedType,SICheckDataConf.SICHECK_DATA_ALPHA_DIGIT_TYPE)){
      lResultBuf.append(checkAlphaDigitValid(lCheckedName,lCheckedData));
    }
    //5.半角カナ{16}
    if (SIUtil.match(lCheckedType,SICheckDataConf.SICHECK_DATA_HANKAKU_KANA_TYPE)){
      lResultBuf.append(checkHankakuKanaValid(lCheckedName,lCheckedData));
    }
    //6.全角カナ{32}
    if (SIUtil.match(lCheckedType,SICheckDataConf.SICHECK_DATA_ZENKAKU_KANA_TYPE)){
      lResultBuf.append(checkZenkakuKanaValid(lCheckedName,lCheckedData));
    }
    //7.全角カナ{64}
    if (SIUtil.match(lCheckedType,SICheckDataConf.SICHECK_DATA_ZENKAKU_TYPE)){
      lResultBuf.append(checkZenkakuValid(lCheckedName,lCheckedData));
    }
    //8.データのバイトの長さの範囲のチェック{128}
    if (SIUtil.match(lCheckedType,SICheckDataConf.SICHECK_DATA_BYTE_LEN_TYPE)){
      lResultBuf.append(checkBetweenBValid(lCheckedName,lCheckedData,lMinLen,lMaxLen));
    }
    //9.データの文字の長さの範囲のチェック{256}
    if (SIUtil.match(lCheckedType,SICheckDataConf.SICHECK_DATA_WORD_LEN_TYPE)){
      lResultBuf.append(checkBetweenWValid(lCheckedName,lCheckedData,lMinLen,lMaxLen));
    }
    //10.電話番号{512}
    if (SIUtil.match(lCheckedType,SICheckDataConf.SICHECK_DATA_TEL_TYPE)){
      lResultBuf.append(checkTelValid(lCheckedName,lCheckedData));
    }
    //11.メールアドレス{1024}
    if (SIUtil.match(lCheckedType,SICheckDataConf.SICHECK_DATA_MAIL_TYPE)){
      lResultBuf.append(checkMailValid(lCheckedName,lCheckedData));
    }
    //12.ASCIIのチェック{2048}
    if (SIUtil.match(lCheckedType,SICheckDataConf.SICHECK_DATA_ASCII_TYPE)){
      lResultBuf.append(checkAsciiValid(lCheckedName,lCheckedData));
    }
    //13.日付のチェック{4096}
    if (SIUtil.match(lCheckedType,SICheckDataConf.SICHECK_DATA_DATE_TYPE)){
      lResultBuf.append(checkDateValid(lCheckedName,lCheckedData));
    }
    //13.時刻のチェック{4096}
    if (SIUtil.match(lCheckedType,SICheckDataConf.SICHECK_DATA_DATE_TIME_TYPE)){
      lResultBuf.append(checkDateTimeValid(lCheckedName,lCheckedData));
    }
    //14.一致のチェック{8192}
    if (SIUtil.match(lCheckedType,SICheckDataConf.SICHECK_DATA_MATCH_TYPE)){
      lResultBuf.append(checkMatchValid(lCheckedName,lCheckedName0,lCheckedData,lCheckedData0));
    }
    //15.半角の長さは、xxx以内ということでチェック{8192*2}
    if (SIUtil.match(lCheckedType,SICheckDataConf.SICHECK_DATA_BYTE_LEN_WITHIN_TYPE)){
      lResultBuf.append(checkWithinBValid(lCheckedName,lCheckedData,lMaxLen));
    }
    //16.全角の長さは、xxx以内ということでチェック{8192*4}
    if (SIUtil.match(lCheckedType,SICheckDataConf.SICHECK_DATA_WORD_LEN_WITHIN_TYPE)){
      lResultBuf.append(checkWithinWValid(lCheckedName,lCheckedData,lMaxLen));
    }
    //17.数値の範囲のチェック{8192*8}
    if (SIUtil.match(lCheckedType,SICheckDataConf.SICHECK_DATA_NUMBER_BETWEEN_TYPE)){
      lResultBuf.append(checkNumberBetweenValid(lCheckedName,lCheckedData,lMinLen,lMaxLen));
    }
    //18.ファイル名のチェック
    if (SIUtil.match(lCheckedType,SICheckDataConf.SICHECK_DATA_FILE_NAME_TYPE)){
      lResultBuf.append(checkFileNameValid(lCheckedName,lCheckedData));
    }
    //19.フォルダ名のチェック
    if (SIUtil.match(lCheckedType,SICheckDataConf.SICHECK_DATA_FOLDER_NAME_TYPE)){
      lResultBuf.append(checkFolderNameValid(lCheckedName,lCheckedData));
    }
    //20.等しい日付
    if (SIUtil.match(lCheckedType,SICheckDataConf.SICHECK_DATA_DATE_EQUAL_TYPE)){
      lResultBuf.append(checkDateEqualValid(lCheckedName,lCheckedName0,lCheckedData,lCheckedData0));
    }
    //21.より早い日付
    if (SIUtil.match(lCheckedType,SICheckDataConf.SICHECK_DATA_DATE_GREATER_TYPE)){
      lResultBuf.append(checkDateGreaterValid(lCheckedName,lCheckedName0,lCheckedData,lCheckedData0));
    }
    //22.より遅い日付
    if (SIUtil.match(lCheckedType,SICheckDataConf.SICHECK_DATA_DATE_LESS_TYPE)){
      lResultBuf.append(checkDateLessValid(lCheckedName,lCheckedName0,lCheckedData,lCheckedData0));
    }
    //23.URLのチェック
    if (SIUtil.match(lCheckedType,SICheckDataConf.SICHECK_DATA_URL_TYPE)){
      lResultBuf.append(checkURLValid(lCheckedName,lCheckedData));
    }
    //24.値の等しさのチェック
    if (SIUtil.match(lCheckedType,SICheckDataConf.SICHECK_DATA_VALUE_EQUAL_TYPE)){
      lResultBuf.append(checkValueEqualValid(lCheckedName,lCheckedName0,lCheckedData,lCheckedData0));
    }
    //25.値の大きさのチェック
    if (SIUtil.match(lCheckedType,SICheckDataConf.SICHECK_DATA_VALUE_GREATER_TYPE)){
      lResultBuf.append(checkValueGreaterValid(lCheckedName,lCheckedName0,lCheckedData,lCheckedData0));
    }
    //26.値の小さのチェック
    if (SIUtil.match(lCheckedType,SICheckDataConf.SICHECK_DATA_VALUE_LESS_TYPE)){
      lResultBuf.append(checkValueLessValid(lCheckedName,lCheckedName0,lCheckedData,lCheckedData0));
    }
    //27.より早い日時
    if (SIUtil.match(lCheckedType,SICheckDataConf.SICHECK_DATA_DATETIME_GREATER_TYPE)){
      lResultBuf.append(checkDateTimeGreaterValid(lCheckedName,lCheckedName0,lCheckedData,lCheckedData0));
    }
    //28.より遅い日時
    if (SIUtil.match(lCheckedType,SICheckDataConf.SICHECK_DATA_DATETIME_LESS_TYPE)){
      lResultBuf.append(checkDateTimeLessValid(lCheckedName,lCheckedName0,lCheckedData,lCheckedData0));
    }
    //29.数字のデータのチェック(マイナスあり)
    if (SIUtil.match(lCheckedType,SICheckDataConf.SICHECK_DATA_DIGIT_NEGATIVE_TYPE)){
      lResultBuf.append(checkDigitNegativeValid(lCheckedName,lCheckedData));
    }
    //30.英数字のチェック(半角スペースあり)
    if (SIUtil.match(lCheckedType,SICheckDataConf.SICHECK_DATA_ALPHA_DIGIT_TYPE2)){
      lResultBuf.append(checkAlphaDigitValid2(lCheckedName,lCheckedData));
    }
    //31.正しいフラグかどうか
    if (SIUtil.match(lCheckedType,SICheckDataConf.SICHECK_FLAG_TYPE)){
      lResultBuf.append(checkValidFlg(lCheckedName,lCheckedData,lMaxLen));
    }
    //32.より遅い日付または同じ
    if (SIUtil.match(lCheckedType,SICheckDataConf.SICHECK_DATA_DATE_GREATER_EQUAL_TYPE)){
      lResultBuf.append(checkDateGreaterEqualValid(lCheckedName,lCheckedName0,lCheckedData,lCheckedData0));
    }
    //33.より早い日付または同じ
    if (SIUtil.match(lCheckedType,SICheckDataConf.SICHECK_DATA_DATE_LESS_EQUAL_TYPE)){
      lResultBuf.append(checkDateLessEqualValid(lCheckedName,lCheckedName0,lCheckedData,lCheckedData0));
    }
    //34.全角のみ
    if (SIUtil.match(lCheckedType,SICheckDataConf.SICHECK_DATA_ZENKAKU_ONLY_TYPE)) {
      lResultBuf.append(checkZenkakuValid(lCheckedName, lCheckedData, true));
    }
    //35.数値の範囲のチェック
    if (SIUtil.match(lCheckedType,SICheckDataConf.SICHECK_DATA_NUMBER_AND_TYPE)){
      lResultBuf.append(checkNumberAndValid(lCheckedName,lCheckedData,lMinLen,lMaxLen));
    }
    //36.全角アルファベット、全角数字、半角カタカナチェック
    if (SIUtil.match(lCheckedType,SICheckDataConf.SICHECK_DATA_CMDTYNAME_TYPE)){
      lResultBuf.append(checkCmdtyName(lCheckedName,lCheckedData));
    }
    return lResultBuf.toString();
  }
  
  /**
   * <b>checkValid</b>
   * それぞれのチェックタイプを応じてデータをチェックします、
   * @param  lCheckedName チェックの対象になる項目名、(エラーメッセージを構成するとき、使います)
   * @param  lCheckedData チェックのデータ
   * @param  lCheckedType  チェックタイプ
   * @return エラーメッセージの内容
   * @throws なし
   */
  public static boolean checkValid(SICustomErrors lErrors,String lCheckedName,String lCheckedData,long lCheckedType){
    return checkValid(lErrors,lCheckedName,null,lCheckedData,null,lCheckedType,0,0);
  }
  
  /**
   * <b>checkValid</b>
   * それぞれのチェックタイプを応じてデータをチェックします、
   * @param  lCheckedName チェックの対象になる項目名、(エラーメッセージを構成するとき、使います)
   * @param  lCheckedData チェックのデータ
   * @param  lCheckedType  チェックタイプ
   * @param  lMax         入力したデータの最大の長さ
   * @return エラーメッセージの内容
   * @throws なし
   */
  public static boolean checkValid(SICustomErrors lErrors,String lCheckedName,String lCheckedData,long lCheckedType,int lMax){
    return checkValid(lErrors,lCheckedName,null,lCheckedData,null,lCheckedType,0,lMax);
  }
  
  /**
   * <b>checkValid</b>
   * それぞれのチェックタイプを応じてデータをチェックします、
   * @param  lCheckedName チェックの対象になる項目名、(エラーメッセージを構成するとき、使います)
   * @param  lCheckedData チェックのデータ
   * @param  lCheckedType  チェックタイプ
   * @param  lMin  文字の最低長さ、または、数値の範囲の下限
   * @param  lmax  文字の最大長さ、または、数値の範囲の上限
   * @return エラーメッセージの内容
   * @throws なし
   */
  public static boolean checkValid(SICustomErrors lErrors,String lCheckedName,String lCheckedData,long lCheckedType,int lMin,int lMax){
    return checkValid(lErrors,lCheckedName,null,lCheckedData,null,lCheckedType,lMin,lMax);
  }
  
  /**
   * <b>checkValid</b>
   * それぞれのチェックタイプを応じてデータをチェックします、
   * @param  lCheckedName チェックの対象になる項目名、(エラーメッセージを構成するとき、使います)
   * @param  lCheckedName0 一致することをチェックするときに、二番目の項目名
   * @param  lCheckedData チェックのデータ
   * @param  lCheckedData0 一致することをチェックするときに、二番目の項目のデータ
   * @param  lCheckedType  チェックタイプ
   * @return エラーメッセージの内容
   * @throws なし
   */
  public static boolean checkValid(SICustomErrors lErrors,String lCheckedName,String lCheckedName0,String lCheckedData,String lCheckedData0,long lCheckedType){
    return checkValid(lErrors,lCheckedName,lCheckedName0,lCheckedData,lCheckedData0,lCheckedType,0,0);
  }
  
  /**
   * <b>checkValid</b>
   * それぞれのチェックタイプを応じてデータをチェックします、
   * @param  lCheckedName チェックの対象になる項目名、(エラーメッセージを構成するとき、使います)
   * @param  lCheckedName0 一致することをチェックするときに、二番目の項目名
   * @param  lCheckedData チェックのデータ
   * @param  lCheckedData0 一致することをチェックするときに、二番目の項目のデータ
   * @param  lCheckedType  チェックタイプ
   * @param  lMinLen  文字の最低長さ
   * @param  lmaxLen  文字の最大長さ
   * @return エラーメッセージの内容
   * @throws なし
   */
  public static boolean checkValid(SICustomErrors lErrors,String lCheckedName,String lCheckedName0,String lCheckedData,String lCheckedData0,long lCheckedType,int lMinLen,int lMaxLen){
    boolean lValid=true;
    //1.emptyのデータのチェック{1}
    if (SIUtil.match(lCheckedType,SICheckDataConf.SICHECK_DATA_EMPTY_TYPE)){
      lValid=lValid && checkEmptyValid(lErrors,lCheckedName,lCheckedData);
    }
    //2.半角数字のチェック{2}
    if (SIUtil.match(lCheckedType,SICheckDataConf.SICHECK_DATA_DIGIT_TYPE)){
      lValid=lValid && checkDigitValid(lErrors,lCheckedName,lCheckedData);
    }
    //3.英字のチェック{4}
    if (SIUtil.match(lCheckedType,SICheckDataConf.SICHECK_DATA_ALPHA_TYPE)){
      lValid=lValid && checkAlphaValid(lErrors,lCheckedName,lCheckedData);
    }
    //4.英数字のチェック{8}
    if (SIUtil.match(lCheckedType,SICheckDataConf.SICHECK_DATA_ALPHA_DIGIT_TYPE)){
      lValid=lValid && checkAlphaDigitValid(lErrors,lCheckedName,lCheckedData);
    }
    //5.半角カナ{16}
    if (SIUtil.match(lCheckedType,SICheckDataConf.SICHECK_DATA_HANKAKU_KANA_TYPE)){
      lValid=lValid && checkHankakuKanaValid(lErrors,lCheckedName,lCheckedData);
    }
    //6.全角カナ{32}
    if (SIUtil.match(lCheckedType,SICheckDataConf.SICHECK_DATA_ZENKAKU_KANA_TYPE)){
      lValid=lValid && checkZenkakuKanaValid(lErrors,lCheckedName,lCheckedData);
    }
    //7.全角{64}
    if (SIUtil.match(lCheckedType,SICheckDataConf.SICHECK_DATA_ZENKAKU_TYPE)){
      lValid=lValid && checkZenkakuValid(lErrors,lCheckedName,lCheckedData);
    }
    //8.データのバイトの長さの範囲のチェック{128}
    if (SIUtil.match(lCheckedType,SICheckDataConf.SICHECK_DATA_BYTE_LEN_TYPE)){
      lValid=lValid && checkBetweenBValid(lErrors,lCheckedName,lCheckedData,lMinLen,lMaxLen);
    }
    //9.データの文字の長さの範囲のチェック{256}
    if (SIUtil.match(lCheckedType,SICheckDataConf.SICHECK_DATA_WORD_LEN_TYPE)){
      lValid=lValid && checkBetweenWValid(lErrors,lCheckedName,lCheckedData,lMinLen,lMaxLen);
    }
    //10.電話番号{512}
    if (SIUtil.match(lCheckedType,SICheckDataConf.SICHECK_DATA_TEL_TYPE)){
      lValid=lValid && checkTelValid(lErrors,lCheckedName,lCheckedData);
    }
    //11.メールアドレス{1024}
    if (SIUtil.match(lCheckedType,SICheckDataConf.SICHECK_DATA_MAIL_TYPE)){
      lValid=lValid && checkMailValid(lErrors,lCheckedName,lCheckedData);
    }
    //12.ASCIIのチェック{2048}
    if (SIUtil.match(lCheckedType,SICheckDataConf.SICHECK_DATA_ASCII_TYPE)){
      lValid=lValid && checkAsciiValid(lErrors,lCheckedName,lCheckedData);
    }
    //13.日付のチェック{4096}
    if (SIUtil.match(lCheckedType,SICheckDataConf.SICHECK_DATA_DATE_TYPE)){
      lValid=lValid && checkDateValid(lErrors,lCheckedName,lCheckedData);
    }
    //13.日付のチェック{4096}
    if (SIUtil.match(lCheckedType,SICheckDataConf.SICHECK_DATA_DATE_TIME_TYPE)){
      lValid=lValid && checkDateTimeValid(lErrors,lCheckedName,lCheckedData);
    }
    //14.一致のチェック{8192}
    if (SIUtil.match(lCheckedType,SICheckDataConf.SICHECK_DATA_MATCH_TYPE)){
      lValid=lValid && checkMatchValid(lErrors,lCheckedName,lCheckedName0,lCheckedData,lCheckedData0);
    }
    //15.半角の長さは、xxx以内ということでチェック{8192*2}
    if (SIUtil.match(lCheckedType,SICheckDataConf.SICHECK_DATA_BYTE_LEN_WITHIN_TYPE)){
      lValid=lValid && checkWithinBValid(lErrors,lCheckedName,lCheckedData,lMaxLen);
    }
    //16.全角の長さは、xxx以内ということでチェック{8192*4}
    if (SIUtil.match(lCheckedType,SICheckDataConf.SICHECK_DATA_WORD_LEN_WITHIN_TYPE)){
      lValid=lValid && checkWithinWValid(lErrors,lCheckedName,lCheckedData,lMaxLen);
    }
    //17.数値の範囲のチェック{8192*8}
    if (SIUtil.match(lCheckedType,SICheckDataConf.SICHECK_DATA_NUMBER_BETWEEN_TYPE)){
      lValid=lValid && checkNumberBetweenValid(lErrors,lCheckedName,lCheckedData,lMinLen,lMaxLen);
    }
    //18.ファイル名のチェック
    if (SIUtil.match(lCheckedType,SICheckDataConf.SICHECK_DATA_FILE_NAME_TYPE)){
      lValid=lValid && checkFileNameValid(lErrors,lCheckedName,lCheckedData);
    }
    //19.フォルダ名のチェック
    if (SIUtil.match(lCheckedType,SICheckDataConf.SICHECK_DATA_FOLDER_NAME_TYPE)){
      lValid=lValid && checkFolderNameValid(lErrors,lCheckedName,lCheckedData);
    }
    //20.等しい日付
    if (SIUtil.match(lCheckedType,SICheckDataConf.SICHECK_DATA_DATE_EQUAL_TYPE)){
      lValid=lValid && checkDateEqualValid(lErrors,lCheckedName,lCheckedName0,lCheckedData,lCheckedData0);
    }
    //21.より早い日付
    if (SIUtil.match(lCheckedType,SICheckDataConf.SICHECK_DATA_DATE_GREATER_TYPE)){
      lValid=lValid && checkDateGreaterValid(lErrors,lCheckedName,lCheckedName0,lCheckedData,lCheckedData0);
    }
    //22.より遅い日付
    if (SIUtil.match(lCheckedType,SICheckDataConf.SICHECK_DATA_DATE_LESS_TYPE)){
      lValid=lValid && checkDateLessValid(lErrors,lCheckedName,lCheckedName0,lCheckedData,lCheckedData0);
    }
    //23.URLのチェック
    if (SIUtil.match(lCheckedType,SICheckDataConf.SICHECK_DATA_URL_TYPE)){
      lValid=lValid && checkURLValid(lErrors,lCheckedName,lCheckedData);
    }
    //24.値の等しさのチェック
    if (SIUtil.match(lCheckedType,SICheckDataConf.SICHECK_DATA_VALUE_EQUAL_TYPE)){
      lValid=lValid && checkValueEqualValid(lErrors,lCheckedName,lCheckedName0,lCheckedData,lCheckedData0);
    }
    //25.値の大きさのチェック
    if (SIUtil.match(lCheckedType,SICheckDataConf.SICHECK_DATA_VALUE_GREATER_TYPE)){
      lValid=lValid && checkValueGreaterValid(lErrors,lCheckedName,lCheckedName0,lCheckedData,lCheckedData0);
    }
    //26.値の小さのチェック
    if (SIUtil.match(lCheckedType,SICheckDataConf.SICHECK_DATA_VALUE_LESS_TYPE)){
      lValid=lValid && checkValueLessValid(lErrors,lCheckedName,lCheckedName0,lCheckedData,lCheckedData0);
    }
    //27.より早い日時
    if (SIUtil.match(lCheckedType,SICheckDataConf.SICHECK_DATA_DATETIME_GREATER_TYPE)){
      lValid=lValid && checkDateTimeGreaterValid(lErrors,lCheckedName,lCheckedName0,lCheckedData,lCheckedData0);
    }
    //28.より遅い日時
    if (SIUtil.match(lCheckedType,SICheckDataConf.SICHECK_DATA_DATETIME_LESS_TYPE)){
      lValid=lValid && checkDateTimeLessValid(lErrors,lCheckedName,lCheckedName0,lCheckedData,lCheckedData0);
    }
    //29.半角数字のチェック(マイナスあり)
    if (SIUtil.match(lCheckedType,SICheckDataConf.SICHECK_DATA_DIGIT_NEGATIVE_TYPE)){
      lValid=lValid && checkDigitNegativeValid(lErrors,lCheckedName,lCheckedData);
    }
    //30.英数字のチェック
    if (SIUtil.match(lCheckedType,SICheckDataConf.SICHECK_DATA_ALPHA_DIGIT_TYPE2)){
      lValid=lValid && checkAlphaDigitValid2(lErrors,lCheckedName,lCheckedData);
    }
    //31.正しいフラグかどうか
    if (SIUtil.match(lCheckedType,SICheckDataConf.SICHECK_FLAG_TYPE)){
      lValid=lValid && checkValidFlg(lErrors,lCheckedName,lCheckedData,lMaxLen);
    }
    //32.より遅い日付または同じ
    if (SIUtil.match(lCheckedType,SICheckDataConf.SICHECK_DATA_DATE_GREATER_EQUAL_TYPE)){
      lValid=lValid && checkDateGreaterEqualValid(lErrors,lCheckedName,lCheckedName0,lCheckedData,lCheckedData0);
    }
    //33.より早い日付または同じ
    if (SIUtil.match(lCheckedType,SICheckDataConf.SICHECK_DATA_DATE_LESS_EQUAL_TYPE)){
      lValid=lValid && checkDateLessEqualValid(lErrors,lCheckedName,lCheckedName0,lCheckedData,lCheckedData0);
    }
    //34.全角のみ
    if (SIUtil.match(lCheckedType,SICheckDataConf.SICHECK_DATA_ZENKAKU_ONLY_TYPE)) {
      lValid = lValid && checkZenkakuValid(lErrors, lCheckedName, lCheckedData, true);
    }
    //35.数値の範囲のチェック
    if (SIUtil.match(lCheckedType,SICheckDataConf.SICHECK_DATA_NUMBER_AND_TYPE)){
      lValid=lValid && checkNumberAndValid(lErrors,lCheckedName,lCheckedData,lMinLen,lMaxLen);
    }
    //36.全角アルファベット、全角数字、半角カタカナチェック
    if (SIUtil.match(lCheckedType,SICheckDataConf.SICHECK_DATA_CMDTYNAME_TYPE)){
      lValid=lValid && checkCmdtyName(lErrors,lCheckedName,lCheckedData);
    }
    if (lCheckedName.equals("カード番号") && lCheckedData.length()>5) {
      lCheckedData = lCheckedData.substring(0,2) + "*" + lCheckedData.substring(lCheckedData.length()-4,lCheckedData.length());
    }
    log.debug("(boolean)checkValid:項目名0="+lCheckedName+",項目名1="+lCheckedName0+",データ0="+lCheckedData+",データ1="+lCheckedData0+",result="+lValid);
    return lValid;
  }
  
  /**
   * <b>checkEmptyValid</b>
   * nullのデータをチェックします
   * @param  lCheckedName チェックの対象になる項目名、(エラーメッセージを構成するとき、使います)
   * @param  lCheckedData チェックのデータ
   * @return データがnullの場合には、null用のエラーメッセージの内容
   * @throws なし
   */
  public static String checkEmptyValid(String lCheckedName,String lCheckedData){
    if (SICheckUtil.isEmpty(lCheckedData)){
      return SIErrorFactory.getErrorMsg("input.data.require",lCheckedName);
    }else return "";
  }
  
  /**
   * <b>checkEmptyValid</b>
   * nullのデータをチェックします
   * @param  lCheckedName チェックの対象になる項目名、(エラーメッセージを構成するとき、使います)
   * @param  lCheckedData チェックのデータ
   * @return データがnullの場合には、null用のエラーメッセージの内容
   * @throws なし
   */
  public static boolean checkEmptyValid(SICustomErrors lErrors,String lCheckedName,String lCheckedData){
    if (SICheckUtil.isEmpty(lCheckedData)){
      lErrors.addError(new SICustomError("input.data.require",lCheckedName));
      return false;
    }else return true;
  }
  
  /**
   * <b>checkDigitValid</b>
   * 数字のデータをチェックします
   * @param  lCheckedName チェックの対象になる項目名、(エラーメッセージを構成するとき、使います)
   * @param  lCheckedData チェックのデータ
   * @return エラーメッセージの内容
   * @throws なし
   */
  public static String checkDigitValid(String lCheckedName,String lCheckedData){
    if (SICheckUtil.isDigit(lCheckedData)==false){
      return SIErrorFactory.getErrorMsg("input.data.digit",lCheckedName);
    }else return "";
  }
  
  /**
   * <b>checkDigitValid</b>
   * 数字のデータをチェックします
   * @param  lCheckedName チェックの対象になる項目名、(エラーメッセージを構成するとき、使います)
   * @param  lCheckedData チェックのデータ
   * @return エラーメッセージの内容
   * @throws なし
   */
  public static boolean checkDigitValid(SICustomErrors lErrors,String lCheckedName,String lCheckedData){
    if (SICheckUtil.isDigit(lCheckedData)==false){
      lErrors.addError(new SICustomError("input.data.digit",lCheckedName));
      return false;
    }return true;
  }
  
  /**
   * <b>checkAlphaValid</b>
   * 数字のデータをチェックします
   * @param  lCheckedName チェックの対象になる項目名、(エラーメッセージを構成するとき、使います)
   * @param  lCheckedData チェックのデータ
   * @return エラーメッセージの内容
   * @throws なし
   */
  public static String checkAlphaValid(String lCheckedName,String lCheckedData){
    if (SICheckUtil.isAlpha(lCheckedData)==false){
      return SIErrorFactory.getErrorMsg("input.data.alpha",lCheckedName);
    }else return "";
  }
  
  /**
   * <b>checkAlphaValid</b>
   * 数字のデータをチェックします
   * @param  lCheckedName チェックの対象になる項目名、(エラーメッセージを構成するとき、使います)
   * @param  lCheckedData チェックのデータ
   * @return エラーメッセージの内容
   * @throws なし
   */
  public static boolean checkAlphaValid(SICustomErrors lErrors,String lCheckedName,String lCheckedData){
    if (SICheckUtil.isAlpha(lCheckedData)==false){
      lErrors.addError(new SICustomError("input.data.alpha",lCheckedName));
      return false;
    }return true;
  }
  
  /**
   * <b>checkBetweenWValid</b>
   * データの文字のバイトの長さをチェックします
   * @param  lCheckedName チェックの対象になる項目名、(エラーメッセージを構成するとき、使います)
   * @param  lCheckedData チェックのデータ
   * @param  lMinLen 文字の最低長さの範囲
   * @param  lMaxLen 文字の最大長さの範囲
   * @return エラーメッセージの内容
   * @throws なし
   */
  public static String checkBetweenBValid(String lCheckedName,String lCheckedData,int lMinLen,int lMaxLen){
    if (SICheckUtil.isBetweenLenB(lCheckedData,lMinLen,lMaxLen)==false){
      return SIErrorFactory.getErrorMsg("input.data.len.between.byte",lCheckedName,String.valueOf(lMinLen),String.valueOf(lMaxLen));
    }else return "";
  }
  
  /**
   * <b>checkBetweenWValid</b>
   * データの文字のバイトの長さをチェックします
   * @param  lCheckedName チェックの対象になる項目名、(エラーメッセージを構成するとき、使います)
   * @param  lCheckedData チェックのデータ
   * @param  lMinLen 文字の最低長さの範囲
   * @param  lMaxLen 文字の最大長さの範囲
   * @return エラーメッセージの内容
   * @throws なし
   */
  public static boolean checkBetweenBValid(SICustomErrors lErrors,String lCheckedName,String lCheckedData,int lMinLen,int lMaxLen){
    if (SICheckUtil.isBetweenLenB(lCheckedData,lMinLen,lMaxLen)==false){
      lErrors.addError(new SICustomError("input.data.len.between.byte",lCheckedName,String.valueOf(lMinLen),String.valueOf(lMaxLen)));
      return false;
    }return true;
  }
  
  /**
   * <b>checkWithinBValid</b>
   * データの文字のバイトの長さをチェックします
   * @param  lCheckedName チェックの対象になる項目名、(エラーメッセージを構成するとき、使います)
   * @param  lCheckedData チェックのデータ
   * @param  lMaxLen 文字の最大長さの範囲
   * @return エラーメッセージの内容
   * @throws なし
   */
  public static String checkWithinBValid(String lCheckedName,String lCheckedData,int lMaxLen){
    if (SICheckUtil.isBetweenLenB(lCheckedData,0,lMaxLen)==false){
      return SIErrorFactory.getErrorMsg("input.data.len.within.byte",lCheckedName,String.valueOf(lMaxLen));
    }else return "";
  }
  
  /**
   * <b>checkWithinBValid</b>
   * データの文字のバイトの長さをチェックします
   * @param  lCheckedName チェックの対象になる項目名、(エラーメッセージを構成するとき、使います)
   * @param  lCheckedData チェックのデータ
   * @param  lMaxLen 文字の最大長さの範囲
   * @return エラーメッセージの内容
   * @throws なし
   */
  public static boolean checkWithinBValid(SICustomErrors lErrors,String lCheckedName,String lCheckedData,int lMaxLen){
    if (SICheckUtil.isBetweenLenB(lCheckedData,0,lMaxLen)==false){
      lErrors.addError(new SICustomError("input.data.len.within.byte",lCheckedName,String.valueOf(lMaxLen)));
      return false;
    }return true;
  }
  
  /**
   * <b>checkBetweenWValid</b>
   * データの文字の長さをチェックします
   * @param  lCheckedName チェックの対象になる項目名、(エラーメッセージを構成するとき、使います)
   * @param  lCheckedData チェックのデータ
   * @param  lMinLen 文字の最低長さの範囲
   * @param  lMaxLen 文字の最大長さの範囲
   * @return エラーメッセージの内容
   * @throws なし
   */
  public static String checkBetweenWValid(String lCheckedName,String lCheckedData,int lMinLen,int lMaxLen){
    if (SICheckUtil.isBetweenLenW(lCheckedData,lMinLen,lMaxLen)==false){
      return SIErrorFactory.getErrorMsg("input.data.len.between.word",lCheckedName,String.valueOf(lMinLen),String.valueOf(lMaxLen));
    }else return "";
  }
  
  /**
   * <b>checkBetweenWValid</b>
   * データの文字の長さをチェックします
   * @param  lCheckedName チェックの対象になる項目名、(エラーメッセージを構成するとき、使います)
   * @param  lCheckedData チェックのデータ
   * @param  lMinLen 文字の最低長さの範囲
   * @param  lMaxLen 文字の最大長さの範囲
   * @return エラーメッセージの内容
   * @throws なし
   */
  public static boolean checkBetweenWValid(SICustomErrors lErrors,String lCheckedName,String lCheckedData,int lMinLen,int lMaxLen){
    if (SICheckUtil.isBetweenLenW(lCheckedData,lMinLen,lMaxLen)==false){
      lErrors.addError(new SICustomError("input.data.len.between.word",lCheckedName,String.valueOf(lMinLen),String.valueOf(lMaxLen)));
      return false;
    }
    return false;
  }
  
  /**
   * <b>checkWithinWValid</b>
   * データの文字の長さをチェックします
   * @param  lCheckedName チェックの対象になる項目名、(エラーメッセージを構成するとき、使います)
   * @param  lCheckedData チェックのデータ
   * @param  lMaxLen 文字の最大長さの範囲
   * @return エラーメッセージの内容
   * @throws なし
   */
  public static String checkWithinWValid(String lCheckedName,String lCheckedData,int lMaxLen){
    if (SICheckUtil.isBetweenLenW(lCheckedData,0,lMaxLen)==false){
      return SIErrorFactory.getErrorMsg("input.data.len.within.word",lCheckedName,String.valueOf(lMaxLen));
    }else return "";
  }
  
  /**
   * <b>checkWithinWValid</b>
   * データの文字の長さをチェックします
   * @param  lCheckedName チェックの対象になる項目名、(エラーメッセージを構成するとき、使います)
   * @param  lCheckedData チェックのデータ
   * @param  lMaxLen 文字の最大長さの範囲
   * @return エラーメッセージの内容
   * @throws なし
   */
  public static boolean checkWithinWValid(SICustomErrors lErrors,String lCheckedName,String lCheckedData,int lMaxLen){
    if (SICheckUtil.isBetweenLenW(lCheckedData,0,lMaxLen)==false){
      lErrors.addError(new SICustomError("input.data.len.within.word",lCheckedName,String.valueOf(lMaxLen)));
      return false;
    }
    return true;
  }
  
  /**
   * <b>checkAlphaDigitValid</b>
   * 英数字のデータをチェックします
   * @param  lCheckedName チェックの対象になる項目名、(エラーメッセージを構成するとき、使います)
   * @param  lCheckedData チェックのデータ
   * @return エラーメッセージの内容
   * @throws なし
   */
  public static String checkAlphaDigitValid(String lCheckedName,String lCheckedData){
    if (SICheckUtil.isAlphaDigit(lCheckedData)==false){
      return SIErrorFactory.getErrorMsg("input.data.alphadigit",lCheckedName);
    }
    return "";
  }
  
  /**
   * <b>checkAlphaDigitValid</b>
   * 英数字のデータをチェックします
   * @param  lErrors     エラーセット
   * @param  lCheckedName チェックの対象になる項目名、(エラーメッセージを構成するとき、使います)
   * @param  lCheckedData チェックのデータ
   * @return なし
   * @throws なし
   */
  public static boolean checkAlphaDigitValid(SICustomErrors lErrors,String lCheckedName,String lCheckedData){
    if (SICheckUtil.isAlphaDigit(lCheckedData)==false){
      lErrors.addError(new SICustomError("input.data.alphadigit",lCheckedName));
      return false;
    }return true;
  }
  
  /**
   * <b>checkHankakuKanaValid</b>
   * 全角カナのデータをチェックします
   * @param  lCheckedName チェックの対象になる項目名、(エラーメッセージを構成するとき、使います)
   * @param  lCheckedData チェックのデータ
   * @return エラーメッセージの内容
   * @throws なし
   */
  public static String checkHankakuKanaValid(String lCheckedName,String lCheckedData){
    if (SICheckUtil.isHankakuKana(lCheckedData)==false){
      return SIErrorFactory.getErrorMsg("input.data.hankakukana",lCheckedName);
    }
    return "";
  }
  
  /**
   * <b>checkHankakuKanaValid</b>
   * 全角カナのデータをチェックします
   * @param  lErrors     エラーセット
   * @param  lCheckedName チェックの対象になる項目名、(エラーメッセージを構成するとき、使います)
   * @param  lCheckedData チェックのデータ
   * @return なし
   * @throws なし
   */
  public static boolean checkHankakuKanaValid(SICustomErrors lErrors,String lCheckedName,String lCheckedData){
    if (SICheckUtil.isHankakuKana(lCheckedData)==false){
      lErrors.addError(new SICustomError("input.data.hankakukana",lCheckedName));
      return false;
    }
    return true;
  }
  
  /**
   * <b>checkZenkakuKanaValid</b>
   * 全角カナのデータをチェックします
   * @param  lCheckedName チェックの対象になる項目名、(エラーメッセージを構成するとき、使います)
   * @param  lCheckedData チェックのデータ
   * @return エラーメッセージの内容
   * @throws なし
   */
  public static String checkZenkakuKanaValid(String lCheckedName,String lCheckedData){
    if (SICheckUtil.isZenkakuKana(lCheckedData)==false){
      return SIErrorFactory.getErrorMsg("input.data.zenkakukana",lCheckedName);
    }
    return "";
  }
  
  /**
   * <b>checkZenkakuKanaValid</b>
   * 全角カナのデータをチェックします
   * @param  lErrors     エラーセット
   * @param  lCheckedName チェックの対象になる項目名、(エラーメッセージを構成するとき、使います)
   * @param  lCheckedData チェックのデータ
   * @return なし
   * @throws なし
   */
  public static boolean checkZenkakuKanaValid(SICustomErrors lErrors,String lCheckedName,String lCheckedData){
    if (SICheckUtil.isZenkakuKana(lCheckedData)==false){
      lErrors.addError(new SICustomError("input.data.zenkakukana",lCheckedName));
      return false;
    }
    return true;
  }
  
  /**
   * <b>checkZenkakuValid</b>
   * 全角のデータをチェックします
   * @param  lCheckedName チェックの対象になる項目名、(エラーメッセージを構成するとき、使います)
   * @param  lCheckedData チェックのデータ
   * @return エラーメッセージの内容
   * @throws なし
   */
  public static String checkZenkakuValid(String lCheckedName,String lCheckedData) {
    return checkZenkakuValid(lCheckedName, lCheckedData, false);
  }
  
  public static String checkZenkakuValid(String lCheckedName,String lCheckedData, boolean chkFlg) {
    if (SICheckUtil.isZenkaku(lCheckedData, chkFlg)==false) {
      return SIErrorFactory.getErrorMsg("input.data.zenkaku",lCheckedName);
    } else return "";
  }
  
  /**
   * <b>checkZenkakuValid</b>
   * 全角のデータをチェックします
   * @param  lErrors     エラーセット
   * @param  lCheckedName チェックの対象になる項目名、(エラーメッセージを構成するとき、使います)
   * @param  lCheckedData チェックのデータ
   * @return なし
   * @throws なし
   */
  public static boolean checkZenkakuValid(SICustomErrors lErrors,String lCheckedName,String lCheckedData) {
    return checkZenkakuValid(lErrors, lCheckedName, lCheckedData, false);
  }
  
  public static boolean checkZenkakuValid(SICustomErrors lErrors,String lCheckedName,String lCheckedData, boolean chkFlg) {
    if (SICheckUtil.isZenkaku(lCheckedData, chkFlg)==false) {
      lErrors.addError(new SICustomError("input.data.zenkaku",lCheckedName));
      return false;
    }
    return true;
  }
  
  /**
   * <b>checkTelValid</b>
   * 電話番号のデータをチェックします
   * @param  lCheckedName チェックの対象になる項目名、(エラーメッセージを構成するとき、使います)
   * @param  lCheckedData チェックのデータ
   * @return エラーメッセージの内容
   * @throws なし
   */
  public static String checkTelValid(String lCheckedName,String lCheckedData){
    if (SICheckUtil.isTel(lCheckedData)==false){
      return SIErrorFactory.getErrorMsg("input.data.tel",lCheckedName);
    }
    return "";
  }
  
  /**
   * <b>checkTelValid</b>
   * 電話番号のデータをチェックします
   * @param  lErrors     エラーセット
   * @param  lCheckedName チェックの対象になる項目名、(エラーメッセージを構成するとき、使います)
   * @param  lCheckedData チェックのデータ
   * @return なし
   * @throws なし
   */
  public static boolean checkTelValid(SICustomErrors lErrors,String lCheckedName,String lCheckedData){
    if (SICheckUtil.isTel(lCheckedData)==false){
      lErrors.addError(new SICustomError("input.data.tel",lCheckedName));
      return false;
    }
    return true;
  }
  
  /**
   * <b>checkMailValid</b>
   * メールフォーマットをチェックします
   * @param  lCheckedName チェックの対象になる項目名、(エラーメッセージを構成するとき、使います)
   * @param  lCheckedData チェックのデータ
   * @return エラーメッセージの内容
   * @throws なし
   */
  public static String checkMailValid(String lCheckedName,String lCheckedData){
    if (SICheckUtil.isMail(lCheckedData)==false){
      return SIErrorFactory.getErrorMsg("input.data.mail",lCheckedName);
    }
    return "";
  }
  
  /**
   * <b>checkMailValid</b>
   * メールフォーマットをチェックします
   * @param  lErrors     エラーセット
   * @param  lCheckedName チェックの対象になる項目名、(エラーメッセージを構成するとき、使います)
   * @param  lCheckedData チェックのデータ
   * @return なし
   * @throws なし
   */
  public static boolean checkMailValid(SICustomErrors lErrors,String lCheckedName,String lCheckedData){
    if (SICheckUtil.isMail(lCheckedData)==false){
      lErrors.addError(new SICustomError("input.data.mail",lCheckedName));
      return false;
    }
    return true;
  }
  
  /**
   * <b>checkAsciiValid</b>
   * ASCII文字をチェックします
   * @param  lCheckedName チェックの対象になる項目名、(エラーメッセージを構成するとき、使います)
   * @param  lCheckedData チェックのデータ
   * @return エラーメッセージの内容
   * @throws なし
   */
  public static String checkAsciiValid(String lCheckedName,String lCheckedData){
    if (SICheckUtil.isAsciii(lCheckedData)==false){
      return SIErrorFactory.getErrorMsg("input.data.ascii",lCheckedName);
    }
    return "";
  }
  
  /**
   * <b>checkAsciiValid</b>
   * ASCII文字をチェックします
   * @param  lErrors      エラーセット
   * @param  lCheckedName チェックの対象になる項目名、(エラーメッセージを構成するとき、使います)
   * @param  lCheckedData チェックのデータ
   * @return なし
   * @throws なし
   */
  public static boolean checkAsciiValid(SICustomErrors lErrors,String lCheckedName,String lCheckedData){
    if (SICheckUtil.isAsciii(lCheckedData)==false){
      lErrors.addError(new SICustomError("input.data.ascii",lCheckedName));
      return false;
    }
    return true;
  }
  
  /**
   * <b>checkDateValid</b>
   * 日付をチェックします、エラーがあれば、エラーメッセージを戻します。
   * @param  lCheckedName チェックの対象になる項目名、(エラーメッセージを構成するとき、使います)
   * @param  lCheckedData チェックのデータ
   * @return エラーメッセージの内容
   * @throws なし
   */
  public static String checkDateValid(String lCheckedName,String lCheckedData){
    if (SICheckUtil.isDate(lCheckedData)==false){
      return SIErrorFactory.getErrorMsg("input.data.date",lCheckedName);
    }
    return "";
  }
  
  /**
   * <b>checkDateTimeValid</b>
   * 日付をチェックします、エラーがあれば、エラーメッセージを戻します。
   * @param  lCheckedName チェックの対象になる項目名、(エラーメッセージを構成するとき、使います)
   * @param  lCheckedData チェックのデータ
   * @return エラーメッセージの内容
   * @throws なし
   */
  public static String checkDateTimeValid(String lCheckedName,String lCheckedData){
    if (SICheckUtil.isDateTime(lCheckedData)==false){
      return SIErrorFactory.getErrorMsg("input.data.date",lCheckedName);
    }
    return "";
  }
  
  /**
   * <b>checkDateValid</b>
   * 日付をチェックします、エラーがあれば、エラーセットにいれます。
   * @param  lErrors     エラーのセットのオブジェクト
   * @param  lCheckedName チェックの対象になる項目名、(エラーメッセージを構成するとき、使います)
   * @param  lCheckedData チェックのデータ
   * @return なし
   * @throws なし
   */
  public static boolean checkDateValid(SICustomErrors lErrors,String lCheckedName,String lCheckedData){
    if (SICheckUtil.isDate(lCheckedData)==false){
      lErrors.addError(new SICustomError("input.data.date",lCheckedName));
      return false;
    }
    return true;
  }
  
  /**
   * <b>checkDateTimeValid</b>
   * 日付をチェックします、エラーがあれば、エラーセットにいれます。
   * @param  lErrors     エラーのセットのオブジェクト
   * @param  lCheckedName チェックの対象になる項目名、(エラーメッセージを構成するとき、使います)
   * @param  lCheckedData チェックのデータ
   * @return なし
   * @throws なし
   */
  public static boolean checkDateTimeValid(SICustomErrors lErrors,String lCheckedName,String lCheckedData){
    if (SICheckUtil.isDateTime(lCheckedData)==false){
      lErrors.addError(new SICustomError("input.data.date",lCheckedName));
      return false;
    }
    return true;
  }
  
  /**
   * <b>checkMatchValid</b>
   * 二つのデータを一致するかどうかをチェックします、エラーがあれば、エラーメッセージを戻します。
   * @param  lCheckedName チェックの対象になる項目名、(エラーメッセージを構成するとき、使います)
   * @param  lCheckedData チェックのデータ1
   * @param  lCheckedData0 チェックのデータ2
   * @return エラーメッセージの内容
   * @throws なし
   */
  public static String checkMatchValid(String lCheckedName,String lCheckedName0,String lCheckedData,String lCheckedData0){
    if (SIUtil.isNull(lCheckedData) && SIUtil.isNull(lCheckedData0)) return "";
    if (SIUtil.isNull(lCheckedData) ||SIUtil.isNull(lCheckedData0)) return SIErrorFactory.getErrorMsg("input.data.match",lCheckedName,lCheckedName0);
    if (!lCheckedData.equals(lCheckedData0)) return SIErrorFactory.getErrorMsg("input.data.match",lCheckedName,lCheckedName0);
    return "";
  }
  
  /**
   * <b>checkMatchValid</b>
   * 二つのデータを一致するかどうかをチェックします、エラーがあれば、画面に表示が出来るように、エラーセットに入れます。
   * @param  lErrors  エラーのセットのオブジェクト
   * @param  lCheckedName チェックの対象になる項目名、(エラーメッセージを構成するとき、使います)
   * @param  lCheckedData チェックのデータ1
   * @param  lCheckedData0 チェックのデータ2
   * @return なし
   * @throws なし
   */
  public static boolean checkMatchValid(SICustomErrors lErrors,String lCheckedName,String lCheckedName0,String lCheckedData,String lCheckedData0){
    if (SIUtil.isNull(lCheckedData) && SIUtil.isNull(lCheckedData0)) return true;
    if (SIUtil.isNull(lCheckedData) ||SIUtil.isNull(lCheckedData0)) {
      lErrors.addError(new SICustomError("input.data.match",lCheckedName,lCheckedName0));
      return false;
    }
    if (!lCheckedData.equals(lCheckedData0)){
      lErrors.addError(new SICustomError("input.data.match",lCheckedName,lCheckedName0));
      return false;
    }
    return true;
  }
  
  /**
   * <b>checkNumberBetweenValid</b>
   * 数値の範囲のチェックを行って、エラーがあれば、エラーメッセージを戻します。
   * @param  lCheckedName チェックの対象になる項目名、(エラーメッセージを構成するとき、使います)
   * @param  lCheckedData チェックのデータ
   * @param  lMin  数値範囲の下限
   * @param  lMax  数値範囲の上限
   * @return エラーメッセージの内容
   * @throws なし
   */
  public static String checkNumberBetweenValid(String lCheckedName,String lCheckedData,int lMin,int lMax){
    if (SICheckUtil.isNumberBetween(lCheckedData,lMin,lMax)==false) return SIErrorFactory.getErrorMsg("input.data.number.between",lCheckedName,String.valueOf(lMin),String.valueOf(lMax));
    return "";
  }
  
  /**
   * <b>checkNumberBetweenValid</b>
   * 数値の範囲のチェックを行って、エラーがあれば、画面に表示が出来るように、エラーのセットに入れます。
   * @param  lErrors   エラーのセットのオブジェクト、
   * @param  lCheckedName チェックの対象になる項目名、(エラーメッセージを構成するとき、使います)
   * @param  lCheckedData チェックのデータ
   * @param  lMin  数値範囲の下限
   * @param  lMax  数値範囲の上限
   * @return エラーメッセージの内容
   * @throws なし
   */
  public static boolean checkNumberBetweenValid(SICustomErrors lErrors,String lCheckedName,String lCheckedData,int lMin,int lMax){
    if (SICheckUtil.isNumberBetween(lCheckedData,lMin,lMax)==false){
      lErrors.addError(new SICustomError("input.data.number.between",lCheckedName,String.valueOf(lMin),String.valueOf(lMax)));
      return false;
    }
    return true;
  }
  
  /**
   * <b>checkNumberAndValid</b>
   * 数値の範囲のチェックを行って、エラーがあれば、エラーメッセージを戻します。
   * @param  lCheckedName チェックの対象になる項目名、(エラーメッセージを構成するとき、使います)
   * @param  lCheckedData チェックのデータ
   * @param  lMin  数値範囲の下限
   * @param  lMax  数値範囲の上限
   * @return エラーメッセージの内容
   * @throws なし
   */
  public static String checkNumberAndValid(String lCheckedName,String lCheckedData,int lMin,int lMax){
    if (SICheckUtil.isNumberAnd(lCheckedData,lMin,lMax)==false){
      return SIErrorFactory.getErrorMsg("input.data.number.and",lCheckedName,String.valueOf(lMin),String.valueOf(lMax));
    }
    return "";
  }
  
  /**
   * <b>checkNumberAndValid</b>
   * 数値の範囲のチェックを行って、エラーがあれば、画面に表示が出来るように、エラーのセットに入れます。
   * @param  lErrors   エラーのセットのオブジェクト、
   * @param  lCheckedName チェックの対象になる項目名、(エラーメッセージを構成するとき、使います)
   * @param  lCheckedData チェックのデータ
   * @param  lMin  数値範囲の下限
   * @param  lMax  数値範囲の上限
   * @return エラーメッセージの内容
   * @throws なし
   */
  public static boolean checkNumberAndValid(SICustomErrors lErrors,String lCheckedName,String lCheckedData,int lMin,int lMax){
    if (SICheckUtil.isNumberAnd(lCheckedData,lMin,lMax)==false){
      lErrors.addError(new SICustomError("input.data.number.and",lCheckedName,String.valueOf(lMin),String.valueOf(lMax)));
      return false;
    }
    return true;
  }
  
  /**
   * <b>checkCmdtyName</b>
   * 全角アルファベット、全角数字、半角カタカナを使用していた場合、エラーメッセージを返します
   * @param  lCheckedName チェックの対象になる項目名、(エラーメッセージを構成するとき、使います)
   * @param  lCheckedData チェックのデータ
   * @return エラーメッセージ
   * @throws なし
   */
  public static String checkCmdtyName(String lCheckedName,String lCheckedData){
    if (SICheckUtil.isCmdtyName(lCheckedData)==false){
      
      return SIErrorFactory.getErrorMsg("input.data.number.and",lCheckedName);
    }
    return "";
  }
  
  /**
   * <b>checkCmdtyName</b>
   * 全角アルファベット、全角数字、半角カタカナを使用していた場合、画面に表示が出来るように、エラーのセットに入れます。
   * @param  lErrors   エラーのセットのオブジェクト、
   * @param  lCheckedName チェックの対象になる項目名、(エラーメッセージを構成するとき、使います)
   * @param  lCheckedData チェックのデータ
   * @return エラーかどうか
   * @throws なし
   */
  public static boolean checkCmdtyName(SICustomErrors lErrors,String lCheckedName,String lCheckedData){
    if (SICheckUtil.isCmdtyName(lCheckedData)==false){
      lErrors.addError(new SICustomError("manager.message.error.cmdtyname",lCheckedName));
      return false;
    }
    return true;
  }
  
  /**
   * <b>checkDuplicate</b>
   * データベースに同じレコードの存在するかどうかをチェックします。
   * @param  lConnection  データベースへのコネクション
   * @param  lCheckedName チェックの対象になる項目名、(エラーメッセージを構成するとき、使います)
   * @param  lSql チェック用のSQL 文
   * @return エラーメッセージの内容
   * @throws なし
   */
  public static String checkDuplicate(Connection lConnection,String lCheckedName,String lSql){
    try {
      if (SIDBUtil.hasData(lConnection,lSql)){
        return SIErrorFactory.getErrorMsg("manager.message.error.cmdtyname",lCheckedName);
      }
      return "";
    }catch(SIDBAccessException dba){
      dba.printStackTrace();
      log.error("checkDuplicate:exception="+dba.toString());
    }
    return "";
  }

  /**
   * <b>checkDuplicate</b>
   * データベースに同じレコードの存在するかどうかをチェックします。
   * @param  lErrors   エラーのセットのオブジェクト、
   * @param  lConnection  データベースへのコネクション
   * @param  lCheckedName チェックの対象になる項目名、(エラーメッセージを構成するとき、使います)
   * @param  lSql チェック用のSQL 文
   * @return エラーがあるかどうか
   * @throws なし
   */
  public static boolean checkDuplicate(SICustomErrors lErrors,Connection lConnection,String lCheckedName,String lSql){
    try {
      if (SIDBUtil.hasData(lConnection,lSql)){
        lErrors.addError(new SICustomError("database.insert.duplicate2",lCheckedName));
        return false;
      }
      return true;
    }catch(SIDBAccessException dba){
      dba.printStackTrace();
      log.error("checkDuplicate:exception="+dba.toString());
    }
    return true;
  }
  
  /**
   * <b>checkEmail</b>
   * 顧客コードとメールアドレスが一致するかどうかをチェックします。
   * @param  lErrors   エラーのセットのオブジェクト、
   * @param  lConnection  データベースへのコネクション
   * @param  lCheckedName チェックの対象になる項目名、(エラーメッセージを構成するとき、使います)
   * @param  lSql チェック用のSQL 文
   * @return エラーがあるかどうか
   * @throws なし
   */
  public static boolean checkEmail(SICustomErrors lErrors,Connection lConnection,String lSql){
    try {
      if (SIDBUtil.hasData(lConnection,lSql)) return true;
      else{
        lErrors.addError(new SICustomError("database.exist.emai"));
        return false;
      }
    }catch(SIDBAccessException dba){
      dba.printStackTrace();
      log.error("checkEmail:exception="+dba.toString());
    }
    return true;
  }
  
  /**
   * <b>checkFileNameValid</b>
   * 正しいファイルでかどうかをチェックします。
   * @param  lCheckedName チェックの対象になる項目名、(エラーメッセージを構成するとき、使います)
   * @param  lCheckedData チェックのデータ
   * @return エラーメッセージの内容
   * @throws なし
   */
  public static String checkFileNameValid(String lCheckedName,String lCheckedData){
    if (SICheckUtil.isFileName(lCheckedData)==false) return SIErrorFactory.getErrorMsg("input.data.file",lCheckedName);
    return "";
  }
  
  /**
   * <b>checkFileNameValid</b>
   * 正しいファイルでかどうかをチェックします。
   * @param  lErrors   エラーのセットのオブジェクト、
   * @param  lCheckedName チェックの対象になる項目名、(エラーメッセージを構成するとき、使います)
   * @param  lCheckedData チェックのデータ
   * @return true/false
   * @throws なし
   */
  public static boolean checkFileNameValid(SICustomErrors lErrors,String lCheckedName,String lCheckedData){
    if (SICheckUtil.isFileName(lCheckedData)==false){
      lErrors.addError(new SICustomError("input.data.file",lCheckedName));
      return false;
    }
    return true;
  }
  
  /**
   * <b>checkFolderNameValid</b>
   * 正しいフォルダ名でかどうかをチェックします。
   * @param  lCheckedName チェックの対象になる項目名、(エラーメッセージを構成するとき、使います)
   * @param  lCheckedData チェックのデータ
   * @return エラーメッセージの内容
   * @throws なし
   */
  public static String checkFolderNameValid(String lCheckedName,String lCheckedData){
    if (SICheckUtil.isFolderName(lCheckedData)==false) return SIErrorFactory.getErrorMsg("input.data.folder",lCheckedName);
    return "";
  }
  
  /**
   * <b>checkFolderNameValid</b>
   * 正しいフォルダ名でかどうかをチェックします。
   * @param  lErrors   エラーのセットのオブジェクト、
   * @param  lCheckedName チェックの対象になる項目名、(エラーメッセージを構成するとき、使います)
   * @param  lCheckedData チェックのデータ
   * @return true/false
   * @throws なし
   */
  public static boolean checkFolderNameValid(SICustomErrors lErrors,String lCheckedName,String lCheckedData){
    if (SICheckUtil.isFolderName(lCheckedData)==false){
      lErrors.addError(new SICustomError("input.data.folder",lCheckedName));
      return false;
    }
    return true;
  }
  
  /**
   * <b>checkDateEqualValid</b>
   * 
   * @param  lCheckedName チェックの対象になる項目名、(エラーメッセージを構成するとき、使います)
   * @param  lCheckedName0チェックの対象になる項目名、(エラーメッセージを構成するとき、使います)
   * @param  lCheckedData チェックのデータ
   * @param  lCheckedData0チェックのデータ
   * @return なし
   * @throws なし
   */
  public static String checkDateEqualValid(String lCheckedName,String lCheckedName0,String lCheckedData,String lCheckedData0){
    try {
      if (SICheckUtil.dateEqual(lCheckedData, lCheckedData0)==false) return SIErrorFactory.getErrorMsg("input.data.date.equal",lCheckedName,lCheckedName0);
    }catch(ParseException e){
      e.printStackTrace();
    }catch(SIException e){
      e.printStackTrace();
    }
    return "";
  }
  
  /**
   * <b>checkDateEqualValid</b>
   * 
   * @param  lErrors   エラーのセットのオブジェクト、
   * @param  lCheckedName チェックの対象になる項目名、(エラーメッセージを構成するとき、使います)
   * @param  lCheckedName0 チェックの対象になる項目名、(エラーメッセージを構成するとき、使います)
   * @param  lCheckedData チェックのデータ
   * @param  lCheckedData0 チェックのデータ
   * @return true/false
   * @throws なし
   */
  public static boolean checkDateEqualValid(SICustomErrors lErrors,String lCheckedName,String lCheckedName0,String lCheckedData,String lCheckedData0){
    try {
      if (SICheckUtil.dateEqual(lCheckedData, lCheckedData0)==false){
        lErrors.addError(new SICustomError("input.data.date.equal",lCheckedName,lCheckedName0));
        return false;
      }
    }catch(ParseException e){
      e.printStackTrace();
    }catch(SIException e){
      e.printStackTrace();
    }
    return true;
  }
  
  /**
   * <b>checkDateLessValid</b>
   * 
   * @param  lCheckedName チェックの対象になる項目名、(エラーメッセージを構成するとき、使います)
   * @param  lCheckedName0 チェックの対象になる項目名、(エラーメッセージを構成するとき、使います)
   * @param  lCheckedData チェックのデータ
   * @param  lCheckedData0 チェックのデータ
   * @return なし
   * @throws なし
   */
  public static String checkDateLessValid(String lCheckedName,String lCheckedName0,String lCheckedData,String lCheckedData0){
    try {
      if (SICheckUtil.dateLess(lCheckedData, lCheckedData0)==false) return SIErrorFactory.getErrorMsg("input.data.date.less",lCheckedName,lCheckedName0);
    }catch(ParseException e){
      e.printStackTrace();
    }catch(SIException e){
      e.printStackTrace();
    }
    return "";
  }
  
  /**
   * <b>checkDateLessValid</b>
   * 
   * @param  lErrors   エラーのセットのオブジェクト、
   * @param  lCheckedName チェックの対象になる項目名、(エラーメッセージを構成するとき、使います)
   * @param  lCheckedName0 チェックの対象になる項目名、(エラーメッセージを構成するとき、使います)
   * @param  lCheckedData チェックのデータ
   * @param  lCheckedData0 チェックのデータ
   * @return true/false
   * @throws なし
   */
  public static boolean checkDateLessValid(SICustomErrors lErrors,String lCheckedName,String lCheckedName0,String lCheckedData,String lCheckedData0){
    try {
      if (SICheckUtil.dateLess(lCheckedData,lCheckedData0)==false){
        lErrors.addError(new SICustomError("input.data.date.less",lCheckedName,lCheckedName0));
        return false;
      }
    }catch(ParseException e){
      e.printStackTrace();
    }catch(SIException e){
      e.printStackTrace();
    }
    return true;
  }
  
  /**
   * <b>checkDateLessEqualValid</b>
   * 
   * @param  lCheckedName チェックの対象になる項目名、(エラーメッセージを構成するとき、使います)
   * @param  lCheckedName0 チェックの対象になる項目名、(エラーメッセージを構成するとき、使います)
   * @param  lCheckedData チェックのデータ
   * @param  lCheckedData0 チェックのデータ
   * @return なし
   * @throws なし
   */
  public static String checkDateLessEqualValid(String lCheckedName,String lCheckedName0,String lCheckedData,String lCheckedData0){
    try {
      if (SICheckUtil.dateLessEqual(lCheckedData, lCheckedData0)==false) return SIErrorFactory.getErrorMsg("input.data.date.less.equal",lCheckedName,lCheckedName0);
    }catch(ParseException e){
      e.printStackTrace();
    }catch(SIException e){
      e.printStackTrace();
    }
    return "";
  }
  
  /**
   * <b>checkDateLessEqualValid</b>
   * 
   * @param  lErrors   エラーのセットのオブジェクト、
   * @param  lCheckedName チェックの対象になる項目名、(エラーメッセージを構成するとき、使います)
   * @param  lCheckedName0 チェックの対象になる項目名、(エラーメッセージを構成するとき、使います)
   * @param  lCheckedData チェックのデータ
   * @param  lCheckedData0 チェックのデータ
   * @return true/false
   * @throws なし
   */
  public static boolean checkDateLessEqualValid(SICustomErrors lErrors,String lCheckedName,String lCheckedName0,String lCheckedData,String lCheckedData0){
    try {
      if (SICheckUtil.dateLessEqual(lCheckedData,lCheckedData0)==false){
        lErrors.addError(new SICustomError("input.data.date.less.equal",lCheckedName,lCheckedName0));
        return false;
      }
    }catch (ParseException e){
      e.printStackTrace();
    }catch(SIException e){
      e.printStackTrace();
    }
    return true;
  }
  
  /**
   * <b>checkDateGreaterValid</b>
   * 
   * @param  lCheckedName チェックの対象になる項目名、(エラーメッセージを構成するとき、使います)
   * @param  lCheckedName0 チェックの対象になる項目名、(エラーメッセージを構成するとき、使います)
   * @param  lCheckedData チェックのデータ
   * @param  lCheckedData0 チェックのデータ
   * @return なし
   * @throws なし
   */
  public static String checkDateGreaterValid(String lCheckedName,String lCheckedName0,String lCheckedData,String lCheckedData0){
    try {
      if (SICheckUtil.dateGreater(lCheckedData, lCheckedData0)==false) return SIErrorFactory.getErrorMsg("input.data.date.greater",lCheckedName,lCheckedName0);
    }catch(ParseException e){
      e.printStackTrace();
    }catch(SIException e){
      e.printStackTrace();
    }
    return "";
  }
  
  /**
   * <b>checkDateGreaterValid</b>
   * 
   * @param  lErrors   エラーのセットのオブジェクト、
   * @param  lCheckedName チェックの対象になる項目名、(エラーメッセージを構成するとき、使います)
   * @param  lCheckedName0 チェックの対象になる項目名、(エラーメッセージを構成するとき、使います)
   * @param  lCheckedData チェックのデータ
   * @param  lCheckedData0 チェックのデータ
   * @return true/false
   * @throws なし
   */
  public static boolean checkDateGreaterValid(SICustomErrors lErrors,String lCheckedName,String lCheckedName0,String lCheckedData,String lCheckedData0){
    try {
      if (SICheckUtil.dateGreater(lCheckedData, lCheckedData0)==false){
        lErrors.addError(new SICustomError("input.data.date.greater",lCheckedName,lCheckedName0));
        return false;
      }
    }catch(ParseException e){
      e.printStackTrace();
    }catch(SIException e){
      e.printStackTrace();
    }
    return true;
  }
  
  /**
   * <b>checkDateGreaterEqualValid</b>
   * 
   * @param  lCheckedName チェックの対象になる項目名、(エラーメッセージを構成するとき、使います)
   * @param  lCheckedName0 チェックの対象になる項目名、(エラーメッセージを構成するとき、使います)
   * @param  lCheckedData チェックのデータ
   * @param  lCheckedData0 チェックのデータ
   * @return なし
   * @throws なし
   */
  public static String checkDateGreaterEqualValid(String lCheckedName,String lCheckedName0,String lCheckedData,String lCheckedData0){
    try {
      if (SICheckUtil.dateGreaterEqual(lCheckedData, lCheckedData0)==false) return SIErrorFactory.getErrorMsg("input.data.date.greater.equal",lCheckedName,lCheckedName0);
    }catch(ParseException e){
      e.printStackTrace();
    }catch(SIException e){
      e.printStackTrace();
    }
    return "";
  }
  
  /**
   * <b>checkDateGreaterEqualValid</b>
   * 
   * @param  lErrors   エラーのセットのオブジェクト、
   * @param  lCheckedName チェックの対象になる項目名、(エラーメッセージを構成するとき、使います)
   * @param  lCheckedName0 チェックの対象になる項目名、(エラーメッセージを構成するとき、使います)
   * @param  lCheckedData チェックのデータ
   * @param  lCheckedData0 チェックのデータ
   * @return true/false
   * @throws なし
   */
  public static boolean checkDateGreaterEqualValid(SICustomErrors lErrors,String lCheckedName,String lCheckedName0,String lCheckedData,String lCheckedData0){
    try {
      if (SICheckUtil.dateGreaterEqual(lCheckedData, lCheckedData0)==false){
        lErrors.addError(new SICustomError("input.data.date.greater.equal",lCheckedName,lCheckedName0));
        return false;
      }
    }catch(ParseException e){
      e.printStackTrace();
    }catch(SIException e){
      e.printStackTrace();
    }
    return true;
  }
  
  /**
   * <b>checkExist</b>
   * 外部のテーブルにあるレコードの存在するかどうかをチェックします。
   * @param  lConnection  データベースへのコネクション
   * @param  lCheckedName チェックの対象になる項目名、(エラーメッセージを構成するとき、使います)
   * @param  lSql チェック用のSQL 文
   * @return 存在しなければ、エラーメッセージの内容を返し 、存在すると、OKです。
   * @throws なし
   */
  public static String checkExist(Connection lConnection,String lCheckedName,String lSql){
    try {
      if (SIDBUtil.hasData(lConnection,lSql)) return "";
    }catch(SIDBAccessException dba){
      dba.printStackTrace();
    }
    return SIErrorFactory.getErrorMsg("database.query.notexist",lCheckedName);
  }
  
  /**
   * <b>checkExist</b>
   * 外部のテーブルにあるレコードの存在するかどうかをチェックします。
   * @param  lErrors   エラーのセットのオブジェクト、
   * @param  lConnection  データベースへのコネクション
   * @param  lCheckedName チェックの対象になる項目名、(エラーメッセージを構成するとき、使います)
   * @param  lSql チェック用のSQL 文
   * @return true OK, false  存在しない、
   * @throws なし
   */
  public static boolean checkExist(SICustomErrors lErrors,Connection lConnection,String lCheckedName,String lSql){
    try {
      if (SIDBUtil.hasData(lConnection,lSql)) return true;
    }catch(SIDBAccessException dba){
      dba.printStackTrace();
    }
    lErrors.addError(new SICustomError("database.query.notexist",lCheckedName));
    return false;
  }
  
  /**
   * <b>checkNotExist</b>
   * 外部のテーブルにあるレコードの存在するかどうかをチェックします。
   * @param  lConnection  データベースへのコネクション
   * @param  lCheckedName チェックの対象になる項目名、(エラーメッセージを構成するとき、使います)
   * @param  lSql チェック用のSQL 文
   * @return 存在しなければ、OK ,存在すると、存在のエラー文を戻し
   * @throws なし
   */
  public static String checkNotExist(Connection lConnection,String lCheckedName,String lSql){
    try {
      if (SIDBUtil.hasData(lConnection,lSql)) return SIErrorFactory.getErrorMsg("database.query.exist",lCheckedName);
    }catch(SIDBAccessException dba){
      dba.printStackTrace();
    }
    return "";
  }

  /**
   * <b>checkNotExist</b>
   * 外部のテーブルにあるレコードの存在するかどうかをチェックします。
   * @param  lErrors   エラーのセットのオブジェクト、
   * @param  lConnection  データベースへのコネクション
   * @param  lCheckedName チェックの対象になる項目名、(エラーメッセージを構成するとき、使います)
   * @param  lSql チェック用のSQL 文
   * @return true :存在しない  false:存在する
   * @throws なし
   */
  public static boolean checkNotExist(SICustomErrors lErrors,Connection lConnection,String lCheckedName,String lSql){
    try {
      if (SIDBUtil.hasData(lConnection,lSql)){
        lErrors.addError(new SICustomError("database.query.exist",lCheckedName));
        return false;
      }
    }catch(SIDBAccessException dba){
      dba.printStackTrace();
    }
    return true;
  }
  
  /**
   * <b>checkURLValid</b>
   * 正しいURLでかどうかをチェックします。
   * @param  lCheckedName チェックの対象になる項目名、(エラーメッセージを構成するとき、使います)
   * @param  lCheckedData チェックのデータ
   * @return エラーメッセージの内容
   * @throws なし
   */
  public static String checkURLValid(String lCheckedName,String lCheckedData){
    if (SICheckUtil.isURL(lCheckedData)==false){
      return SIErrorFactory.getErrorMsg("input.data.url",lCheckedName);
    }
    return "";
  }
  
  /**
   * <b>checkURLValid</b>
   * 正しいURLでかどうかをチェックします。
   * @param  lErrors   エラーのセットのオブジェクト、
   * @param  lCheckedName チェックの対象になる項目名、(エラーメッセージを構成するとき、使います)
   * @param  lCheckedData チェックのデータ
   * @return true/false
   * @throws なし
   */
  public static boolean checkURLValid(SICustomErrors lErrors,String lCheckedName,String lCheckedData){
    if (SICheckUtil.isURL(lCheckedData)==false){
      lErrors.addError(new SICustomError("input.data.url",lCheckedName));
      return false;
    }
    return true;
  }
  
  /**
   * <b>checkValueEqualValid</b>
   * 二つの値が等しいかどうかをチェック
   * @param  lCheckedName チェックの対象になる項目名、(エラーメッセージを構成するとき、使います)
   * @param  lCheckedData チェックのデータ
   * @return エラーメッセージの内容
   * @throws なし
   */
  public static String checkValueEqualValid(String lCheckedName,String lCheckedName0,String lCheckedData,String lCheckedData0){
    if (SICheckUtil.isEqual(lCheckedData,lCheckedData0)==false){
      return SIErrorFactory.getErrorMsg("input.data.equal",lCheckedName,lCheckedName0);
    }
    return "";
  }
  
  public static boolean checkValueEqualValid(SICustomErrors lErrors,String lCheckedName,String lCheckedName0,String lCheckedData,String lCheckedData0){
    if (SICheckUtil.isEqual(lCheckedData,lCheckedData0)==false){
      lErrors.addError(new SICustomError("input.data.equal",lCheckedName,lCheckedName0));
      return false;
    }
    return true;
  }
  
  /**
   * <b>checkValueGreaterValid</b>
   * 二つの値が等しいかどうかをチェック
   * @param  lCheckedName チェックの対象になる項目名、(エラーメッセージを構成するとき、使います)
   * @param  lCheckedData チェックのデータ
   * @return エラーメッセージの内容
   * @throws なし
   */
  public static String checkValueGreaterValid(String lCheckedName,String lCheckedName0,String lCheckedData,String lCheckedData0){
    if (SICheckUtil.isGreater(lCheckedData,lCheckedData0)==false){
      return SIErrorFactory.getErrorMsg("input.data.greater",lCheckedName,lCheckedName0);
    }
    return "";
  }
  
  public static boolean checkValueGreaterValid(SICustomErrors lErrors,String lCheckedName,String lCheckedName0,String lCheckedData,String lCheckedData0){
    if (SICheckUtil.isGreater(lCheckedData,lCheckedData0)==false){
      lErrors.addError(new SICustomError("input.data.greater",lCheckedName,lCheckedName0));
      return false;
    }
    return true;
  }
  
  /**
   * <b>checkValueLessValid</b>
   * 
   * @param  lCheckedName チェックの対象になる項目名、(エラーメッセージを構成するとき、使います)
   * @param  lCheckedData チェックのデータ
   * @return エラーメッセージの内容
   * @throws なし
   */
  public static String checkValueLessValid(String lCheckedName,String lCheckedName0,String lCheckedData,String lCheckedData0){
    if (SICheckUtil.isLess(lCheckedData,lCheckedData0)==false){
      return SIErrorFactory.getErrorMsg("input.data.less",lCheckedName,lCheckedName0);
    }
    return "";
  }
  
  public static boolean checkValueLessValid(SICustomErrors lErrors,String lCheckedName,String lCheckedName0,String lCheckedData,String lCheckedData0){
    if (SICheckUtil.isLess(lCheckedData,lCheckedData0)==false){
      lErrors.addError(new SICustomError("input.data.less",lCheckedName,lCheckedName0));
      return false;
    }
    return true;
  }
  
  /**
   * <b>checkValueLessValid</b>
   * 
   * @param  lCheckedName チェックの対象になる項目名、(エラーメッセージを構成するとき、使います)
   * @param  lCheckedName0 チェックの対象になる項目名、(エラーメッセージを構成するとき、使います)
   * @param  lCheckedData チェックのデータ
   * @param  lCheckedData0 チェックのデータ
   * @return エラーメッセージの内容
   * @throws なし
   */
  public static String checkDateTimeLessValid(String lCheckedName,String lCheckedName0,String lCheckedData,String lCheckedData0){
    try {
      if (SICheckUtil.dateLess(lCheckedData, lCheckedData0,"yyyy/MM/dd HH:mm:ss")==false) return SIErrorFactory.getErrorMsg("input.data.date.less",lCheckedName,lCheckedName0);
    } catch (ParseException e) {
      e.printStackTrace();
    }catch(SIException e){
      e.printStackTrace();
    }
    return "";
  }
  
  public static boolean checkDateTimeLessValid(SICustomErrors lErrors,String lCheckedName,String lCheckedName0,String lCheckedData,String lCheckedData0){
    try {
      if (SICheckUtil.dateLess(lCheckedData,lCheckedData0,"yyyy/MM/dd HH:mm:ss")==false){
        lErrors.addError(new SICustomError("input.data.date.less",lCheckedName,lCheckedName0));
        return false;
      }
    } catch (ParseException e) {
      e.printStackTrace();
    }catch(SIException e){
      e.printStackTrace();
    }
    return true;
  }
  
  public static String checkDateTimeGreaterValid(String lCheckedName,String lCheckedName0,String lCheckedData,String lCheckedData0){
    try {
      if (SICheckUtil.dateGreater(lCheckedData, lCheckedData0,"yyyy/MM/dd HH:mm:ss")==false) return SIErrorFactory.getErrorMsg("input.data.date.less",lCheckedName,lCheckedName0);
    } catch (ParseException e) {
      e.printStackTrace();
    }catch(SIException e){
      e.printStackTrace();
    }
    return "";
  }
  
  public static boolean checkDateTimeGreaterValid(SICustomErrors lErrors,String lCheckedName,String lCheckedName0,String lCheckedData,String lCheckedData0){
    try {
      if (SICheckUtil.dateGreater(lCheckedData, lCheckedData0,"yyyy/MM/dd HH:mm:ss")==false){
        lErrors.addError(new SICustomError("input.data.date.greater",lCheckedName,lCheckedName0));
        return false;
      }
    } catch (ParseException e) {
      e.printStackTrace();
    }catch(SIException e){
      e.printStackTrace();
    }
    return true;
  }
  
  /**
   * <b>checkDigitValid</b>
   * 数字のデータをチェックします
   * @param  lCheckedName チェックの対象になる項目名、(エラーメッセージを構成するとき、使います)
   * @param  lCheckedData チェックのデータ
   * @return エラーメッセージの内容
   * @throws なし
   */
  public static String checkDigitNegativeValid(String lCheckedName,String lCheckedData){
    if (SICheckUtil.isDigitNegative(lCheckedData)==false) return SIErrorFactory.getErrorMsg("input.data.digit",lCheckedName);
    return "";
  }
  
  /**
   * <b>checkDigitValid</b>
   * 数字のデータをチェックします
   * @param  lCheckedName チェックの対象になる項目名、(エラーメッセージを構成するとき、使います)
   * @param  lCheckedData チェックのデータ
   * @return エラーメッセージの内容
   * @throws なし
   */
  public static boolean checkDigitNegativeValid(SICustomErrors lErrors,String lCheckedName,String lCheckedData){
    if (SICheckUtil.isDigitNegative(lCheckedData)==false){
      lErrors.addError(new SICustomError("input.data.digit",lCheckedName));
      return false;
    }
    return true;
  }
  
  /**
   * <b>checkAlphaDigitValid</b>
   * 英数字のデータをチェックします
   * @param  lCheckedName チェックの対象になる項目名、(エラーメッセージを構成するとき、使います)
   * @param  lCheckedData チェックのデータ
   * @return エラーメッセージの内容
   * @throws なし
   */
  public static String checkAlphaDigitValid2(String lCheckedName,String lCheckedData){
    if (SICheckUtil.isAlphaDigit2(lCheckedData)==false) return SIErrorFactory.getErrorMsg("input.data.alphadigit2",lCheckedName);
    return "";
  }
  
  /**
   * <b>checkAlphaDigitValid</b>
   * 英数字のデータをチェックします
   * @param  lErrors     エラーセット
   * @param  lCheckedName チェックの対象になる項目名、(エラーメッセージを構成するとき、使います)
   * @param  lCheckedData チェックのデータ
   * @return なし
   * @throws なし
   */
  public static boolean checkAlphaDigitValid2(SICustomErrors lErrors,String lCheckedName,String lCheckedData){
    if (SICheckUtil.isAlphaDigit2(lCheckedData)==false){
      lErrors.addError(new SICustomError("input.data.alphadigit2",lCheckedName));
      return false;
    }
    return true;
  }
  
  /**
   * <b>checkAlphaDigitValid</b>
   * 英数字のデータをチェックします
   * @param  lCheckedName チェックの対象になる項目名、(エラーメッセージを構成するとき、使います)
   * @param  lCheckedData チェックのデータ
   * @return エラーメッセージの内容
   * @throws なし
   */
  public static String checkValidFlg(String lCheckedName,String lCheckedData,int lInx){
    if (SICheckUtil.isValidFlag(lCheckedData,lInx)==false) return SIErrorFactory.getErrorMsg("input.data.flag.format",lCheckedName,SIFlagUtil.getFlagValueList(lInx));
    return "";
  }
  
  /**
   * <b>checkAlphaDigitValid</b>
   * 英数字のデータをチェックします
   * @param  lErrors     エラーセット
   * @param  lCheckedName チェックの対象になる項目名、(エラーメッセージを構成するとき、使います)
   * @param  lCheckedData チェックのデータ
   * @return なし
   * @throws なし
   */
  public static boolean checkValidFlg(SICustomErrors lErrors,String lCheckedName,String lCheckedData,int lInx){
    if (SICheckUtil.isValidFlag(lCheckedData,lInx)==false){
      lErrors.addError(new SICustomError("input.data.flag.format",lCheckedName,SIFlagUtil.getFlagValueList(lInx)));
      return false;
    }
    return true;
  }
  
// add by mikami
  /**
   * <b>checkPreUser</b>
   * メールアドレスがssouserとして登録済みかどうか
   * @param  lErrors   エラーのセットのオブジェクト、
   * @param  lConnection  データベースへのコネクション
   * @param  lCheckedName チェックの対象になる項目名、(エラーメッセージを構成するとき、使います)
   * @param  lSql チェック用のSQL 文
   * @return エラーがあるかどうか
   * @throws なし
   */
  public static boolean checkPreUser(SICustomErrors lErrors,Connection lConnection,String lCheckedName,String lSql){
    try {
      if (SIDBUtil.hasData(lConnection,lSql)){
        lErrors.addError(new SICustomError("database.insert.duplicate4",lCheckedName));
        return false;
      }
      return true;
    }catch(SIDBAccessException dba){
      dba.printStackTrace();
      log.error("checkDuplicate:exception="+dba.toString());
    }
    return true;
  }
// add end
}