/*********************************************************************
* All Rights reserved,Copyright (c) K-Opticom
**********************************************************************
*＜プログラム内容＞
*   システム名      ：eo顧客基幹システム
*   モジュール名    ：JCCBatCommon
*   ソースファイル名：JCCBatCommon.java
*   作成者          ：富士通
*   日付            ：2011年04月01日
*＜機能概要＞
*   バッチ共通アクセッサー部品です。
*＜修正履歴＞
*   バージョン  修正日       修正者      修正内容
*   v1.00.00    2011/04/01   富士通      新規作成
*	v17.00.00	2015/07/27   富士通      半角英数字11チェック追加
*
**********************************************************************/

package eo.business.common;

import java.io.BufferedInputStream;
import java.io.File;
import java.io.FileInputStream;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.HashMap;

import eo.framework.application.JCCbatFrameworkException;
import eo.framework.item.JBSbatCommonItem;
import eo.framework.util.JBSbatAplConst;
import eo.framework.util.JBSbatBusinessFileUtil;
import eo.framework.util.JBSbatCheckUtil;
import eo.framework.util.JCCBatchEsbInterface;
import eo.framework.util.JCCbatGetOperationDateUtil;
import eo.framework.util.JCCbatGetSystemDateUtil;
import eo.common.util.JCCChohyoMaskCache;
import eo.common.util.JCCChohyoMaskUtil;
import eo.common.util.JCCComExecUtil;
import eo.common.util.JCCCompressFileUtil;
import eo.common.util.JCCFileUtil;
import eo.common.util.JCCFrameworkException;
import eo.common.util.JCCFtpClientUtil;
import eo.common.util.JCCGetMailHeaderUtil;
import eo.common.util.JCCOracleSeqUtil;
import eo.common.util.JCCSanitizingUtil;
import eo.common.util.JCCUnCompressFileUtil;
import eo.common.util.JCCcomEncryptionUtil;
import eo.common.util.JPCUtilCommon;

import eo.framework.db.JBSbatSQLAccess;
import eo.framework.db.JCCBatAddTrnId;
import eo.framework.item.JBSbatCommonDBInterface;
import eo.framework.log.JBSbatLogPrintControl;
import eo.framework.log.JBSbatLogUtil;

import com.fujitsu.futurity.common.JSYLogBase;
import com.fujitsu.futurity.model.base.CAANMsg;
import com.fujitsu.futurity.rule.common.JRuleXMLHandler;
import com.fujitsu.futurity.rule.xml.compare.JRuleXMLPattern;

/**
 * バッチ共通アクセッサー部品です。<p>
 * ジョブで実装します。
 * <BR>
 * @author 富士通
 */
public class JCCBatCommon extends JPCUtilCommon
{
	/** ESB種別 ISI */
	public static final int	ISI = 1;
	/** ESB種別 III */
	public static final int	III = 2;
	
	/** 外部コマンド同期実行処理用ラインセパレータ */
	public static final String LINE_SEPARATOR = System.getProperty("line.separator");
	
	/** ルール定義（XMLファイル）格納パス */
	public static String path = getApplicationConst("SOKAN_CHECK_XML_PATH");
	
	/**
	 * 引数として共通電文と起動時パラメータを受け取り、共通電文に
	 * 共通のオンライン運用日付および共通のバッチ運用日付を格納します。<br>
	 * 起動時パラメータのフリー項目に個別の運用日付を指定した場合、上記に加えて
	 * 個別の運用日付を格納します。
	 * @param arg0 共通電文
	 * @param paramMap 起動時パラメータ
	 * @throws JCCbatFrameworkException
	 */
	public static void setOperationDate(JBSbatCommonItem arg0)
	{
		try
		{
			JCCbatGetOperationDateUtil.setOperationDate(arg0);
		}
		catch(Throwable th)
		{
			throw makeJCCbatFrameworkException(th);
		}
	}

	/**
	 * システム日時取得処理です。
	 * アプリケーションプロパティファイルの定義に基いて、
	 * OSの保持日時またはテスト用に擬似的に設定したテスト日時を返却します。
	 * 定義を省略した場合、OSの保持日時を返却します。
	 * 
	 * @return YYYYMMDDhhmmssSSS形式の日付
	 * @exception JCCbatFrameworkExceptionがスローされます。
	 */
	public static String getSysDateTimeStamp()
	{
		try
		{
			return JCCbatGetSystemDateUtil.getSystemDateTime().get(JCCbatGetSystemDateUtil.KEY_YYYYMMDDHHMMSS_SSS);
		}
		catch(Throwable th)
		{
			throw makeJCCbatFrameworkException(th);
		}
	}
	
	/**
	 * システム日時取得処理です。
	 * アプリケーションプロパティファイルの定義に基いて、
	 * OSの保持日時またはテスト用に擬似的に設定したテスト日時を返却します。
	 * 定義を省略した場合、OSの保持日時を返却します。
	 * 
	 * @return YYYYMMDDhhmmss形式の日付
	 * @exception JCCbatFrameworkExceptionがスローされます。
	 */
	public static String getSysDateTime()
	{
		try
		{
			return JCCbatGetSystemDateUtil.getSystemDateTime().get(JCCbatGetSystemDateUtil.KEY_YYYYMMDDHHMMSS);
		}
		catch(Throwable th)
		{
			throw makeJCCbatFrameworkException(th);
		}
	}
	
	/**
	 * システム日時取得処理です。
	 * アプリケーションプロパティファイルの定義に基いて、
	 * OSの保持日時またはテスト用に擬似的に設定したテスト日時を返却します。
	 * 定義を省略した場合、OSの保持日時を返却します。
	 * 
	 * @return YYYYMMDD形式の日付
	 * @exception JCCbatFrameworkExceptionがスローされます。
	 */
	public static String getSysDate()
	{
		try
		{
			return JCCbatGetSystemDateUtil.getSystemDateTime().get(JCCbatGetSystemDateUtil.KEY_YYYYMMDD);
		}
		catch(Throwable th)
		{
			throw makeJCCbatFrameworkException(th);
		}
	}
	
	/**
	 * メールヘッダー取得処理です。
	 * メールヘッダー情報の文字列からヘッダーのキーと値を返却します。
	 * 
	 * @param arg0 メールヘッダー情報
	 * @return メールヘッダー情報のキーと値
	 */
	public static HashMap<String, String> getMailHeader(String arg0)
	{
		try
		{
			return JCCGetMailHeaderUtil.getMailHeader(arg0);
		}
		catch(Throwable th)
		{
			throw makeJCCbatFrameworkException(th);
		}
	}

	/**
	 * FTPクライアントのPUT処理です。<br>
	 * FTPクライアントのPUTを行います。<br>
	 * 
	 * @param arg0 業務共通電文
	 * @param arg1 FTP転送対象のファイルリスト(ローカルのフルパス)
	 * @param arg2 FTP転送依頼するインターフェイスID
	 * @param arg3 処理結果詳細を格納したHashMap。内容は下記@参照 <BR>
	 * <pre>
	 *  @処理結果詳細HashMap
	 *   ERR_KBN       (Integer)  エラー区分。0:エラーなし 1:接続エラー 2:ファイルエラー
	 *   CONNECT_ERR   (HashMap)  接続エラー。内容は下記A参照
	 *   FILE_ERR      (ArrayList<Hash Map>)  ファイルエラー。内容は下記B参照
     * </pre>
	 * <pre>
	 *  A接続エラー詳細HashMap
	 *   ERR_FLG       (Boolean) 成功:true 失敗:false
	 *   ERR_MESSAGE   (String)  エラーメッセージ
	 *   ERR_CD        (String)  エラーコード。詳細は下記C参照
     * </pre>
 	 * <pre>
	 *  Bファイルエラー詳細HashMap
	 *   FILE_NAME     (String)  ファイル名
	 *   ERR_FLG       (Boolean) 成功:true 失敗:false
	 *   ERR_MESSAGE   (String)  エラーメッセージ
	 *   ERR_CD        (String)  エラーコード。詳細は下記C参照
     * </pre>
 	 * <pre>
	 *  Cエラーコード一覧
	 *   200 ソケット接続に失敗
	 *   201 ユーザー認証に失敗
	 *   201 パスワード認証に失敗
	 *   202 リモートホストの指定したディレクトリ移動に失敗
	 *   203 一時作業用フォルダ作成に失敗
	 *   203 ダウンロードファイルオープンに失敗
	 *   203 ダウンロードファイル転送に失敗
	 *   204 アップロードファイルオープンに失敗
	 *   204 アップロードファイル転送に失敗
	 *   205 ファイル削除に失敗
	 *   206 切断に失敗
	 *   207 CDコマンドの実行に失敗（ファイルアップロード時）
	 *   208 CDコマンドの実行に失敗（ファイルダウンロード時）
	 *   209 CDコマンドの実行に失敗（サーバからの削除時）
	 *   210 転送モードの設定に失敗（ファイルアップロード時）
	 *   211 転送モードの設定に失敗（ファイルダウンロード時）
	 *   212 監視完了ファイルの生成に失敗
	 *   300 ダウンロードファイルの書き込みに失敗
	 *   302 ファイルバックアップに失敗
	 *   303 ファイルサイズ不一致
	 *   304 その他の例外が発生
	 *   305 ファイルが存在しない（監視完了ファイル作成時）
	 *   306 ファイルが存在しない（バックアップファイル作成時）
	 *   307 ファイルが存在しない（ダウンロード時）
	 *   308 ファイルが存在しない（アップロード時）
	 *   310 ファイルが存在しない（サイズチェック時）
     * </pre>
	 * @return 処理結果（正常：true／エラー：false） 
	 */
	public static boolean putFTP(JBSbatCommonItem arg0, ArrayList<String>arg1,
			String arg2,  HashMap<String, Object> arg3)
	{
		// ESB種別をISI固定でFTP転送部品を呼び出し
		return putFTP(arg0, arg1, arg2, ISI, arg3);
	}
	
	/**
	 * FTPクライアントのPUT処理です。<br>
	 * FTPクライアントのPUTを行います。<br>
	 * 
	 * @param arg0 業務共通電文
	 * @param arg1 FTP転送対象のファイルリスト(ローカルのフルパス)
	 * @param arg2 FTP転送依頼するインターフェイスID
	 * @param arg3 ESB種別。1:ISI(定数JCCModelCommon.ISI) 2:III(定数JCCModelCommon.III)
	 * @param arg4 処理結果詳細を格納したHashMap。内容は下記@参照 <BR>
	 * <pre>
	 *  @処理結果詳細HashMap
	 *   ERR_KBN       (Integer)  エラー区分。0:エラーなし 1:接続エラー 2:ファイルエラー
	 *   CONNECT_ERR   (HashMap)  接続エラー。内容は下記A参照
	 *   FILE_ERR      (ArrayList<Hash Map>)  ファイルエラー。内容は下記B参照
     * </pre>
	 * <pre>
	 *  A接続エラー詳細HashMap
	 *   ERR_FLG       (Boolean) 成功:true 失敗:false
	 *   ERR_MESSAGE   (String)  エラーメッセージ
	 *   ERR_CD        (String)  エラーコード。詳細は下記C参照
     * </pre>
 	 * <pre>
	 *  Bファイルエラー詳細HashMap
	 *   FILE_NAME     (String)  ファイル名
	 *   ERR_FLG       (Boolean) 成功:true 失敗:false
	 *   ERR_MESSAGE   (String)  エラーメッセージ
	 *   ERR_CD        (String)  エラーコード。詳細は下記C参照
     * </pre>
 	 * <pre>
	 *  Cエラーコード一覧
	 *   200 ソケット接続に失敗
	 *   201 ユーザー認証に失敗
	 *   201 パスワード認証に失敗
	 *   202 リモートホストの指定したディレクトリ移動に失敗
	 *   203 一時作業用フォルダ作成に失敗
	 *   203 ダウンロードファイルオープンに失敗
	 *   203 ダウンロードファイル転送に失敗
	 *   204 アップロードファイルオープンに失敗
	 *   204 アップロードファイル転送に失敗
	 *   205 ファイル削除に失敗
	 *   206 切断に失敗
	 *   207 CDコマンドの実行に失敗（ファイルアップロード時）
	 *   208 CDコマンドの実行に失敗（ファイルダウンロード時）
	 *   209 CDコマンドの実行に失敗（サーバからの削除時）
	 *   210 転送モードの設定に失敗（ファイルアップロード時）
	 *   211 転送モードの設定に失敗（ファイルダウンロード時）
	 *   212 監視完了ファイルの生成に失敗
	 *   300 ダウンロードファイルの書き込みに失敗
	 *   302 ファイルバックアップに失敗
	 *   303 ファイルサイズ不一致
	 *   304 その他の例外が発生
	 *   305 ファイルが存在しない（監視完了ファイル作成時）
	 *   306 ファイルが存在しない（バックアップファイル作成時）
	 *   307 ファイルが存在しない（ダウンロード時）
	 *   308 ファイルが存在しない（アップロード時）
	 *   310 ファイルが存在しない（サイズチェック時）
     * </pre>
	 * @return 処理結果（正常：true／エラー：false） 
	 */
	public static boolean putFTP(JBSbatCommonItem arg0, ArrayList<String> arg1,
			String arg2, int arg3, HashMap<String, Object> arg4)
	{
		/*************************
		/ パラメータチェック処理
		**************************/
		
		//業務共通電文がnullの場合
		if(null == arg0)
		{
			throw new JCCbatFrameworkException("業務共通電文がnullです");
		}
		
		//ファイルリストがnull、または要素数が0の場合
		if(null == arg1 || 0 == arg1.size())
		{
			throw new JCCbatFrameworkException("ファイルリストがnullもしくは要素数０です");
		}
		
		// インターフェイスIDがnull、または空白の場合
		if(null == arg2 || "".equals(arg2))
		{
			throw new JCCbatFrameworkException("インターフェイスIDがnullもしくは空白です");
		}
		
		// ESB種別が1(ISI)もしくは2(III)以外の場合
		if(ISI != arg3 && III != arg3)
		{
			throw new JCCbatFrameworkException("ESB種別が不正です");
		}
		
		
		/**********************************
		/ システムパラメータ情報取得処理
		***********************************/
		
		// 複合化KEY
		final String ENCRYPT_KEY 	 	= "ENCRYPT_KEY";
		// SYS_PARAM_ID
		final String HOST_NAME		 	= "hostName";
		final String PORT 			 	= "port";
		final String USER_ID 		 	= "userId";
		final String PASSWORD 		 	= "password";
		final String RETRY_INTERVAL	 	= "rtryIntrvl";
		final String RETRY_COUNT_UNI 	= "rtryCnt_uni";
		final String RETRY_COUNT_GEN 	= "rtryCnt_gen";
		final String TRANSFER_MODE	 	= "tranMode";
		final String DIRECTORY_PASS	 	= "dirPath";
		
		// ISI、III判別用
		String COLUMN_NAME = "";
		
		// 複合化後パスワード
		String decryptPass = "";
		
		// ファイルリスト
		String[] fileList;
		
		// エラーメッセージ格納用
		StringBuffer err_Buff = new StringBuffer();
		
		// ESBサーバ情報格納用
		HashMap<String, String> mapSvr = new HashMap<String, String>();
		ArrayList<String> prmSvr = new ArrayList<String>();
		prmSvr.add(HOST_NAME);
		prmSvr.add(PORT);
		prmSvr.add(USER_ID);
		prmSvr.add(PASSWORD);
		
		// インターフェース情報格納用
		HashMap<String, String> mapIntrfc = new HashMap<String, String>();
		ArrayList<String> prmIntrfc = new ArrayList<String>();
		prmIntrfc.add(RETRY_INTERVAL);
		prmIntrfc.add(RETRY_COUNT_UNI);
		prmIntrfc.add(RETRY_COUNT_GEN);
		prmIntrfc.add(TRANSFER_MODE);
		prmIntrfc.add(DIRECTORY_PASS);
		
		/** SQL定義キー **/
		final String ZM_M_SYS_PARAM_KNRI_CC_SELECT_001 = "CC_SELECT_001";
		final String ZM_M_SYS_PARAM_KNRI_CC_SELECT_002 = "CC_SELECT_002";
		
		/** テーブルアクセスクラス(システムパラメータ)*/
		JBSbatSQLAccess db_ZM_M_SYS_PARAM_KNRI = null;
		
		try {
			// バイント変数のリストを生成します
			JBSbatCommonDBInterface paramList = new JBSbatCommonDBInterface();
			paramList.setValue(arg0.getOpeDate());
			paramList.setValue(arg0.getOpeDate());
			
			// DBアクセスクラスを生成します
			db_ZM_M_SYS_PARAM_KNRI = new JBSbatSQLAccess(arg0, "ZM_M_SYS_PARAM_KNRI");
			
			// DBアクセスを実行します
			db_ZM_M_SYS_PARAM_KNRI.selectBySqlDefine(paramList, ZM_M_SYS_PARAM_KNRI_CC_SELECT_001);
			
			// データ取り出し用
			JBSbatCommonDBInterface dbList = new JBSbatCommonDBInterface();
			
			// ESB種別が「ISI」の場合
			if(arg3 == ISI)
			{
				// "ISI_VALUE"を設定
				COLUMN_NAME = "ISI_VALUE";
			}
			// ESB種別が「III」の場合
			else if(arg3 == III)
			{
				// "ISI_VALUE"を設定
				COLUMN_NAME = "III_VALUE";
			}
			
			// 抽出データ読み出し
			while(true){
				// 1行読み取り
				dbList = db_ZM_M_SYS_PARAM_KNRI.selectNext();
				// データが存在した場合
				if(null != dbList){
					// ESBサーバ情報項目名数分ループ
					for(int i=0; i<prmSvr.size(); i++){
						// SYS_PARAM_IDが項目名と一致した場合
						if(prmSvr.get(i).equals(dbList.getValue("SYS_PARAM_ID"))){
							// SYS_PARAM_ID、SYS_PARAM_SETTE_VALUEを格納
							mapSvr.put(	prmSvr.get(i).toString(), 
										dbList.getValue(COLUMN_NAME).toString());
						}
					}
				}
				else{
					break;
				}
			}
			
			// 情報取得に失敗した場合
			if(prmSvr.size() != mapSvr.size()){
				err_Buff.delete(0,err_Buff.length());
				err_Buff.append("システムパラメータの情報取得に失敗しました。")
						.append("ホスト名:" + mapSvr.get(HOST_NAME) + "、")
						.append("ポート番号:" + mapSvr.get(PORT) + "、")
						.append("ユーザID:" + mapSvr.get(USER_ID) + "、")
						.append("パスワード:" + mapSvr.get(PASSWORD));
				// メッセージを設定し例外をTHROW
				throw new JCCbatFrameworkException(err_Buff.toString());
			}
			
			
			// バイント変数のリストを生成します
			paramList = new JBSbatCommonDBInterface();
			paramList.setValue(arg0.getOpeDate());
			paramList.setValue(arg0.getOpeDate());
			paramList.setValue(arg2);
			
			// DBアクセスを実行します
			db_ZM_M_SYS_PARAM_KNRI.selectBySqlDefine(paramList, ZM_M_SYS_PARAM_KNRI_CC_SELECT_002);
			
			// データ取り出し用を初期化
			dbList = new JBSbatCommonDBInterface();
			
			// 抽出データ読み出し
			while(true){
				// 1行読み取り
				dbList = db_ZM_M_SYS_PARAM_KNRI.selectNext();
				// データが存在した場合
				if(null != dbList){
					// ESBサーバ情報項目名数分ループ
					for(int i=0; i<prmIntrfc.size(); i++){
						// SYS_PARAM_IDが項目名と一致した場合
						if((arg2 + "_" + prmIntrfc.get(i)).equals(dbList.getValue("SYS_PARAM_ID"))){
							// SYS_PARAM_ID、SYS_PARAM_SETTE_VALUEを格納
							mapIntrfc.put(	arg2 + "_" + prmIntrfc.get(i).toString(), 
										dbList.getValue("INTER_FAICE_VALUE").toString());
						}
					}
				}
				else{
					break;
				}
			}
			
			// 情報取得に失敗した場合
			if(prmIntrfc.size() != mapIntrfc.size()){
				err_Buff.delete(0,err_Buff.length());
				err_Buff.append("システムパラメータの情報取得に失敗しました。")
						.append("リトライ間隔:" + mapIntrfc.get(arg2 + "_" + RETRY_INTERVAL) + "、")
						.append("連続リトライ回数:" + mapIntrfc.get(arg2 + "_" + RETRY_COUNT_UNI) + "、")
						.append("総リトライ回数:" + mapIntrfc.get(arg2 + "_" + RETRY_COUNT_GEN) + "、")
						.append("転送モード:" + mapIntrfc.get(arg2 + "_" + TRANSFER_MODE) + "、")
						.append("転送先ディレクトリパス:" + mapIntrfc.get(arg2 + "_" + DIRECTORY_PASS));
				// メッセージを設定し例外をTHROW
				throw new JCCbatFrameworkException(err_Buff.toString());
			}
			
		} 
		catch (SQLException e) 
		{
			throw new JCCFrameworkException("システムパラメータの情報取得に失敗しました。", e);
		}
		catch (Exception exc) 
		{
			throw new JCCFrameworkException("例外が発生しました。", exc);
		}
		finally
		{
			// 2013/03/08 FST_mukuo)SQLAccessクラスのクローズ漏れ対処 start
			if(null != db_ZM_M_SYS_PARAM_KNRI)
			{
				try
				{
					db_ZM_M_SYS_PARAM_KNRI.close();
				}
				catch(SQLException sqle)
				{
					;
				}
			}
			// 2013/03/08 FST_mukuo)SQLAccessクラスのクローズ漏れ対処 end
		}
		
		
		/*******************
		/ FTP転送処理
		********************/
		
		try {
			// パスワード複合化
			decryptPass = JCCcomEncryptionUtil.decrypt(
					JCCBatCommon.getApplicationConst(ENCRYPT_KEY), mapSvr.get(PASSWORD));
		} catch(Throwable e) {
			throw makeJCCbatFrameworkException(e);
		}
		
		// ファイルリスト読み込み
		fileList = new String[arg1.size()];
		for(int i=0; i< arg1.size(); i++)
		{
			fileList[i] = arg1.get(i);
		}
		
		// ファイルFTP部品のインスタンス生成
		JCCFtpClientUtil jCCFtpClientUtil = new JCCFtpClientUtil();
		

		// 2013/01/29 FST_mukuo)FTP部品ログ出力対応 start
		arg0.getLogPrint().printLogMsg("CS00031I", "JCCFtpClientUtil.putFtp() start");
		arg4.put("FTP_BATCH_LOG_INFO_MAP", JBSbatLogUtil.getLogInfoMap());
		
		// ファイルFTP部品を呼び出し業務サービスへ返却
		boolean result = jCCFtpClientUtil.putFtp(	mapSvr.get(HOST_NAME), 											// ホスト名
										mapSvr.get(PORT), 												// ポート番号
										mapSvr.get(USER_ID), 											// ユーザ
										decryptPass, 													// パスワード
										Integer.parseInt(mapIntrfc.get(arg2 + "_" + RETRY_INTERVAL)), 	// リトライ間隔
										Integer.parseInt(mapIntrfc.get(arg2 + "_" + RETRY_COUNT_UNI)), 	// 連続リトライ回数
										Integer.parseInt(mapIntrfc.get(arg2 + "_" + RETRY_COUNT_GEN)), 	// 総リトライ回数
										mapIntrfc.get(arg2 + "_" + TRANSFER_MODE), 						// 転送モード
										mapIntrfc.get(arg2 + "_" + DIRECTORY_PASS), 					// 転送先ディレクトリパス
										fileList, 														// ファイルリスト
										arg2, 															// インターフェースID
										arg4);															// 処理結果詳細
		arg0.getLogPrint().printLogMsg("CS00031I", "JCCFtpClientUtil.putFtp() end");
		return result;
		// 2013/01/29 FST_mukuo)FTP部品ログ出力対応 end
	}
	
	/**
	 * メール送信情報格納処理です。
	 * 電子メールの送信情報をDBに格納します。
	 * 
	 * @param arg0 業務共通電文
	 * @param arg1 送信情報を格納したHashMap。内容は以下。<BR>
	 * <pre>
	 *  MAIL_CD(String)                  メールのフォーマットを識別するコードを設定する。【必須】
	 *  MAIL_SEND_RSV_DTM(String)        送信予定年月日時分秒を設定する。17桁(yyyyMMddHHmmssSSS形式)【必須】
	 *                                   (次回のバッチ起動時にメール送信したい場合は、システム日付を指定する。)
	 *  MLAD_FROM(String)                メールの送信元アドレス（FROM）を設定する。設定されていない場合はメールマスタから取得する。
	 *  MLAD_FROM_NM(String)             メール送信元に表示する名前を設定する。
	 *  MAIL_SEND_PATTERN_CD(String)     メールの送信パターンを設定する。（02:ﾃﾞｨﾚｲﾄﾞ、03:同報）【必須】
	 *  MLAD_TO(String[])                メールの送信先アドレス（TO）を設定する。１件以上指定すること。【必須】複数設定可能。
	 *  MLAD_TO_NM(String[])             メールの送信先TOに表示する名前を設定する。指定する場合は要素数と順番をMLAD_TOに合わせること。
	 *  MLAD_CC(String[])                メールの送信先アドレス（CC）を設定する。複数設定可能。
	 *  MLAD_CC_NM(String[])             メールの送信先CCに表示する名前を設定する。指定する場合は要素数と順番をMLAD_CCに合わせること。
	 *  MLAD_BCC(String[])               メールの送信先アドレス（BCC）を設定する。複数設定可能
	 *  MLAD_BCC_NM(String[])            メールの送信先BCCに表示する名前を設定する。指定する場合は要素数と順番をMLAD_BCCに合わせること。	
	 *  TEXT_HTK_CKAN_MOJI(String[])     本文に埋め込む非定型な置換文字列を設定する。複数設定可能
	 *  EFILE_IF(HashMap)                電子ファイル管理情報を格納したHashMap。
	 *                                      keyには、電子ファイル管理番号を設定する。
	 *                                      value値には、電子ファイルのファイルの名称を設定する。(String)
	 *  MAIL_DTL_IF(HashMap)             メール明細情報を格納したHashMap。
	 *                                      keyには、メール明細のフォーマットを識別するコードを設定する。
	 *                                      value値には、明細に埋め込む非定型名文字列を設定する。(String[])複数指定可能。
	 *  MAIL_HEADER_IF(HashMap)          メールヘッダー情報をを格納したHashMap。
	 *                                      keyには、メールヘッダーのKEYを設定する。
	 *                                      value値には、メールヘッダーのKEYに設定したい値を設定する。(String)
     * </pre>
     * @return HashMap map             採番部品で発行した採番値をセットしたHashMap。
     *                                  key = "MAIL_SEND_NO", value = 採番したメール送信番号文字列
     *                                  key = "MLAD_NO", value = 採番したメールアドレス番号文字列の配列
     *                                  key = "TEMP_FILE_NO", value = 採番した添付ファイル番号文字列の配列
	 * @exception JCCbatFrameworkExceptionがスローされます。
	 */
	public static HashMap<String, Object> insertTMailSend(JBSbatCommonItem arg0,HashMap<String, Object> arg1)
	{
		try
		{
			return JCCbatSendMailUtil.insertTMailSend(arg0, arg1);
		}
		catch(Throwable th)
		{
			throw makeJCCbatFrameworkException(th);
		}
	}

	/**
	 * 電子ファイル管理登録処理です。
	 * 電子ファイルを電子ファイル管理テーブルに登録します。
	 * 
	 * @param arg0 業務共通電文
	 * @param arg1 ファイルコード
	 * @param arg2 ファイルパス
	 * @param arg3 ファイル削除年月日
	 * @return 電子ファイル登録情報（電子ファイル管理番号,世代登録年月日時分秒）
	 * @exception JCCbatFrameworkExceptionがスローされます。
	 */
	public static String[] createDenshiFile(JBSbatCommonItem arg0,String arg1,String arg2,String arg3)
	{
		try
		{
			return JCCbatDenshiFileUtil.createDenshiFile(arg0, arg1, arg2, arg3);
		}
		catch(Throwable th)
		{
			throw makeJCCbatFrameworkException(th);
		}
	}

	/**
	 * 電子ファイル管理更新処理です。
	 * 電子ファイルを電子ファイル管理テーブルに更新します。
	 * 
	 * @param arg0 業務共通電文
	 * @param arg1 電子ファイル管理番号
	 * @param arg2 ファイルパス
	 * @param arg3 ファイル削除年月日
	 * @return 電子ファイル登録情報（電子ファイル管理番号,世代登録年月日時分秒）
	 * @exception JCCbatFrameworkExceptionがスローされます。
	 */
	public static String[] updateDenshiFile(JBSbatCommonItem arg0,String arg1,String arg2,String arg3)
	{
		try
		{
			return JCCbatDenshiFileUtil.updateDenshiFile(arg0, arg1, arg2, arg3);
		}
		catch(Throwable th)
		{
			throw makeJCCbatFrameworkException(th);
		}
	}

	/**
	 * 電子ファイル管理削除処理です。
	 * 電子ファイルを電子ファイル管理テーブルから論理削除します。
	 * 
	 * @param arg0 業務共通電文
	 * @param arg1 電子ファイル管理番号
	 * @exception JCCbatFrameworkExceptionがスローされます。
	 */
	public static void deleteDenshiFile(JBSbatCommonItem arg0,String arg1)
	{
		try
		{
			JCCbatDenshiFileUtil.deleteDenshiFile(arg0, arg1);
		}
		catch(Throwable th)
		{
			throw makeJCCbatFrameworkException(th);
		}
	}

	/**
	 * 電子ファイル管理一意照会処理です。
	 * 電子ファイル管理テーブルに登録されている電子ファイルの一意照会を行います。
	 * 
	 * @param arg0 業務共通電文
	 * @param arg1 電子ファイル管理番号
	 * @return ファイルパス
	 * @exception JCCbatFrameworkExceptionがスローされます。
	 */
	public static String searchDenshiFile(JBSbatCommonItem arg0, String arg1)
	{
		try
		{
			return JCCbatDenshiFileUtil.searchDenshiFile(arg0, arg1);
		}
		catch(Throwable th)
		{
			throw makeJCCbatFrameworkException(th);
		}
	}

	
	/**
	 * Oracleシーケンス取得処理です。
	 * Oracleのシーケンス採番値を返却します。
	 *
	 * @param arg0 業務共通電文
	 * @param arg1 シーケンス定義名
	 * @return 採番値
	 * @exception JCCbatFrameworkExceptionがスローされます。
	 */
	public static String getNextSeq(JBSbatCommonItem arg0,String arg1)
	{
		try
		{
			//2012/10/10 シーケンス取得情報をログ出力する start
			arg0.getLogPrint().printDebugLog("JCCOracleSeqUtil.getNextSeq() start");
			arg0.getLogPrint().printDebugLog("シーケンス定義名：" + arg1);
			
			String retStr = JCCOracleSeqUtil.getNextSeq(arg0.getConnection(), arg1);
			
			arg0.getLogPrint().printDebugLog("採番値：" + retStr);
			arg0.getLogPrint().printDebugLog("JCCOracleSeqUtil.getNextSeq() end");
			return retStr;
			//return JCCOracleSeqUtil.getNextSeq(arg0.getConnection(), arg1);
			//2012/10/10 シーケンス取得情報をログ出力する end
		}
		catch(Throwable th)
		{
			throw makeJCCbatFrameworkException(th);
		}
	}

	/**
	 * フォーマット化したOracleシーケンス取得処理です。
	 * フォーマット化したOracleのシーケンス採番値を返却します。
	 * Oracleシーケンスの採番値を取得し、引数の接頭辞の付与と接頭辞と採番値の間のゼロ埋めを行います。
	 * 
	 * @param arg0 業務共通電文
	 * @param arg1 シーケンス定義名
	 * @param arg2 接頭語
	 * @param arg3 桁数
	 * @return 採番値
	 * @exception JCCbatFrameworkExceptionがスローされます。
	 */
	public static String getFormatedNextSeq(JBSbatCommonItem arg0,String arg1,String arg2,int arg3)
	{
		try
		{
			//2012/10/10 シーケンス取得情報をログ出力する start
			arg0.getLogPrint().printDebugLog("JCCOracleSeqUtil.getFormatedNextSeq() start");
			arg0.getLogPrint().printDebugLog("シーケンス定義名：" + arg1);
			arg0.getLogPrint().printDebugLog("接頭語：" + arg2);
			arg0.getLogPrint().printDebugLog("桁数：" + arg3);
			
			String retStr = JCCOracleSeqUtil.getFormatedNextSeq(arg0.getConnection(), arg1, arg2, arg3);
			
			arg0.getLogPrint().printDebugLog("採番値：" + retStr);
			arg0.getLogPrint().printDebugLog("JCCOracleSeqUtil.getFormatedNextSeq() end");
			return retStr;
			//return JCCOracleSeqUtil.getFormatedNextSeq(arg0.getConnection(), arg1, arg2, arg3);
			//2012/10/10 シーケンス取得情報をログ出力する end
		}
		catch(Throwable th)
		{
			throw makeJCCbatFrameworkException(th);
		}
	}

//	/**
//	 * PDF出力処理です。
//	 * 電子ファイル管理のデータファイルを元に、PDF帳票の出力処理を行います。
//	 * 
//	 * @param arg0 業務共通電文
//	 * @param arg1 帳票定義体の電子ファイル管理番号
//	 * @param arg2 データファイルの電子ファイル管理番号
//	 * @return 出力したPDFファイルパス
//	 * @exception JCCbatFrameworkExceptionがスローされます。
//	 */
//	public static String pdfOutput(JBSbatCommonItem arg0,String arg1,String arg2)
//	{
//		try
//		{
//			return JCCBatChohyoOutputUtil.pdfOutput(arg0, arg1, arg2);
//		}
//		catch(Throwable th)
//		{
//			throw makeJCCbatFrameworkException(th);
//		}
//	}

//	/**
//	 * PDF出力処理です。
//	 * 電子データを直接渡してPDF帳票の出力処理を行います。
//	 * 
//	 * @param arg0 業務共通電文
//	 * @param arg1 帳票定義体の電子ファイル管理番号
//	 * @param arg2 データファイルデータ
//	 * @return 出力したPDFファイルパス
//	 * @exception JCCbatFrameworkExceptionがスローされます。
//	 */
//	public static String pdfOutput(JBSbatCommonItem arg0,String arg1,byte[] arg2)
//	{
//		try
//		{
//			return JCCBatChohyoOutputUtil.pdfOutput(arg0, arg1, arg2);
//		}
//		catch(Throwable th)
//		{
//			throw makeJCCbatFrameworkException(th);
//		}
//	}

//	/**
//	 * Excel出力処理です。
//	 * 電子ファイル管理のデータファイルを元に、Excel(.xlsx)ファイルの出力処理を行います。
//	 * 
//	 * @param arg0 業務共通電文
//	 * @param arg1 帳票定義体の電子ファイル管理番号
//	 * @param arg2 データファイルの電子ファイル管理番号
//	 * @return 出力したExcelファイルパス
//	 * @exception JCCbatFrameworkExceptionがスローされます。
//	 */
//	public static String xlsxOutput(JBSbatCommonItem arg0,String arg1,String arg2)
//	{
//		try
//		{
//			return JCCBatChohyoOutputUtil.xlsxOutput(arg0, arg1, arg2);
//		}
//		catch(Throwable th)
//		{
//			throw makeJCCbatFrameworkException(th);
//		}
//	}

//	/**
//	 * Excel出力処理です。
//	 * 電子データを直接渡して、Excel(.xlsx)ファイルの出力処理を行います。
//	 * 
//	 * @param arg0 業務共通電文
//	 * @param arg1 帳票定義体の電子ファイル管理番号
//	 * @param arg2 データファイルデータ
//	 * @return 出力したExcelファイルパス
//	 * @exception JCCbatFrameworkExceptionがスローされます。
//	 */
//	public static String xlsxOutput(JBSbatCommonItem arg0,String arg1,byte[] arg2)
//	{
//		try
//		{
//			return JCCBatChohyoOutputUtil.xlsxOutput(arg0, arg1, arg2);
//		}
//		catch(Throwable th)
//		{
//			throw makeJCCbatFrameworkException(th);
//		}
//	}

//	/**
//	 * FAX送信処理です。
//	 * 電子ファイル管理のデータファイルを元に、FAX送信の処理を行います。
//	 * 
//	 * @param arg0 業務共通電文
//	 * @param arg1 帳票定義体の電子ファイル管理番号
//	 * @param arg2 データファイルの電子ファイル管理番号
//	 * @return FAX送信したファイル名
//	 * @exception JCCbatFrameworkExceptionがスローされます。
//	 */
//	public static String faxOutput(JBSbatCommonItem arg0,String arg1,String arg2)
//	{
//		try
//		{
//			return JCCBatChohyoOutputUtil.faxOutput(arg0, arg1, arg2);
//		}
//		catch(Throwable th)
//		{
//			throw makeJCCbatFrameworkException(th);
//		}
//	}

//	/**
//	 * FAX出力処理です。
//	 * 電子データを直接渡して、FAX送信の処理を行います。
//	 * 
//	 * @param arg0 業務共通電文
//	 * @param arg1 帳票定義体の電子ファイル管理番号
//	 * @param arg2 データファイルデータ
//	 * @return FAX送信したファイル名
//	 * @exception JCCbatFrameworkExceptionがスローされます。
//	 */
//	public static String faxOutput(JBSbatCommonItem arg0,String arg1,byte[] arg2)
//	{
//		try
//		{
//			return JCCBatChohyoOutputUtil.faxOutput(arg0, arg1, arg2);
//		}
//		catch(Throwable th)
//		{
//			throw makeJCCbatFrameworkException(th);
//		}
//	}

	/**
	 * マスク済データファイル生成処理です。
	 * 帳票マスキング定義ファイルに従い、引数のマスク対象データファイルにマスキング処理を行います。
	 *
	 * @param arg0 データファイル名パス
	 * @param arg1 帳票ID
	 *
	 */
	public static void createMaskingDataFile(String arg0,String arg1)
	{
		
	}

	
	/**
	 * ディレイド処理依頼取得処理です。
	 * ｢依頼ジョブID｣と一致し、かつ｢処理実行日時｣が運用日付を超過、かつ処理依頼コードがNULLである処理依頼を取得します。
	 * 入力ファイルがある場合は、入力ファイルも取得します。
	 * 検索結果が0件の場合はNULLを返却します。
	 * 
	 * @param arg0 業務共通電文
	 * @param arg1 依頼ジョブID
	 * @return ディレイド処理依頼情報のHashMapが格納されたArrayList(ディレイド処理依頼番号の降順)HashMap内容は以下。<BR>
	 * <pre>
	 *  DLYD_TRN_REQ_NO          (String)   処理依頼を一意に特定するID
	 *  DLYD_TRN_REQ_STAT        (String)   ディレイド処理依頼の状態を表す。(001:依頼中/002:処理済/003:処理エラー)
	 *  INPUT_EFILE_KANRI_NO     (String)   入力ファイルを管理する電子ファイル管理を一意に識別する番号
	 *  INPUT_EFILE_GENE_ADD_DTM (String)   電子ファイル管理を一意に識別する日付
	 *  REQ_JOB_ID               (String)   処理依頼するバッチのジョブID(依頼先)
	 *  SYS_CD                   (String)   処理依頼を行った業務のシステムコード(依頼元)
	 *  DLYD_TRN_REQ_SBT_CD      (String)   処理依頼するバッチのジョブID(依頼先)
	 *  DLYD_TRN_RSLT_CD         (String)   バッチの実行結果を識別するコード(1:完了 / 2:業務エラー / 3:システムエラー)
	 *  ERR_EFILE_KANRI_NO       (String)   エラー電子ファイル管理を一意に識別する番号
	 *  ERR_EFILE_GENE_ADD_DTM   (String)   エラー電子ファイルを一意に識別する日付
	 *  INPUT_EFILE              (byte[])   実ファイル(解凍済)
	 *  INPUT_EFILE_BUTSURI_NM   (String)   zipファイルの名称
	 *  INPUT_EFILE_SIZE         (String)   元ファイルのバイト数(KB)
     * </pre>
	 * @exception JCCbatFrameworkExceptionがスローされます。
	 */
	public static ArrayList<HashMap<String, Object>> getShoriIraiInfo(JBSbatCommonItem arg0,String arg1)
	{
		try
		{
			return JCCbatShoriIraiUtil.getShoriIraiInfo(arg0,arg1);
		}
		catch(Throwable th)
		{
			throw makeJCCbatFrameworkException(th);
		}
	}

	/**
	 * ディレイド処理依頼結果更新処理です。
	 * バッチの処理結果を｢処理依頼｣テーブルへ登録(UPDATE)します。
	 * またエラー指定時は、エラーファイルを文書管理テーブルに登録し、文書管理番号をエラーファイル番号へ格納します。
	 * 
	 * @param arg0 業務共通電文
	 * @param arg1 処理依頼番号
	 * @param arg2 ディレイド処理依頼結果コード（1：完了、2：業務エラー、3：システムエラー）
	 * @param arg3 業務エラー時にジョブを再開するために必要な情報を出力したエラーファイルのフルパス。
	 *              正常時、または、ファイル不要の場合はNULL。
	 * @return 処理依頼更新結果マップ（HashMap内容は以下）
	 * <pre>
	 *  DLYD_TRN_REQ_NO       (String)   処理依頼結果登録した処理依頼番号
	 *  EFILE_KAMRI_NO        (String)   業務エラー時にジョブを再開するために必要な情報を出力したエラーファイルの管理番号
     * </pre>
	 * @throws JCCbatFrameworkException
	 */
	public static HashMap<String,String> updateShoriIraiResult(JBSbatCommonItem arg0,String arg1,String arg2,String arg3)
	{
		try
		{
			return JCCbatShoriIraiUtil.updateShoriIraiResult(arg0, arg1, arg2, arg3);
		}
		catch(Throwable th)
		{
			throw makeJCCbatFrameworkException(th);
		}
	}

	/**
	 * 各種定義ファイルから情報を取得する処理です。
	 * 各種定義ファイルからキーで指定された情報を返却します。
	 * 
	 * @param arg0 定義ファイルのID
	 * @param arg1 取得する情報のキー
	 * @return キーで取得された情報
	 */
	public static String getPropertyValue(String arg0,String arg1)
	{
		return "";
	}

	/**
	 * アプリケーションプロパティファイルから情報を取得する処理です。
	 * アプリケーションプロパティファイルからキーで指定された情報を返却します。
	 * 
	 * @param arg0 キー
	 * @return キーで取得された情報
	 */
	public static String getApplicationConst(String arg0)
	{
		return JBSbatAplConst.getAplConstValue(arg0);
	}
	
	/**
	 * 必須チェックを行います。<br>
	 * nullでない場合のみ真を返却します。<br>
	 * @param obj String型かLong型のデータ
	 * @return チェック結果（OK：true／NG：false） 
	 */
	public static boolean isNotNull(Object obj)
	{
		return JBSbatCheckUtil.invoke(obj ,new String[]{"null"});
	}
	
	/**
	 * ＰＣ用のＥ−ｍａｉｌの書式チェックを行います。<br>
	 * 下記全てが満たされた場合のみ真を返却します。<br>
	 *   @全体
	 *   <ul>
	 *   <li>必ずひとつの「@」を含む(「@」が複数含むものはNG)</li>
	 *   <li>文字列の先頭と末尾が「@」でない</li>
	 *   </ul>
	 *   Aアカウント部
	 *   <ul>
	 *   <li>文字列の先頭がピリオドでない</li>
	 *   <li>連続したピリオドを含まない</li>
	 *   <li>半角英数字、半角記号(※)のみOK</li>
	 *   </ul>
	 *   Bドメイン部
	 *   <ul>
	 *   <li>文字列の先頭、末尾がピリオドでない</li>
	 *   <li>連続したピリオドを含まない</li>
	 *   <li>半角英数字、半角記号(※)のみOK</li>
	 *   </ul>
	 * ※ 「"」、「,」、「:」、「;」、「<」、「>」、「@」、「[」、「]」、「 」(半角スペース)は禁止<br>
	 * （ただし、空白のみはエラーとする。）<br>
	 * ※null／空文字の場合はtrueを返却する。
	 * @param moji チェックする文字列データ
	 * @return boolean チェック結果（OK：true／NG：false） 
	 */
	public static boolean isEMail(String moji)
	{
		return JBSbatCheckUtil.invoke(moji ,new String[]{"e-mail"});
	}

	/**
	 * ＰＣ/携帯電話用のＥ−ｍａｉｌの書式チェックを行います。<br>
	 * 下記全てが満たされた場合のみ真を返却します。<br>
	 *   @全体
	 *   <ul>
	 *    <li>必ずひとつの「@」を含む(「@」が複数含むものはNG)</li>
	 *    <li>文字列の先頭と末尾が「@」でない</li>
	 *    </ul>
	 *   Aアカウント部
	 *   <ul>
	 *    <li>文字列の先頭がピリオドでない</li>
	 *    <li>半角英数字、半角記号(※)のみOK</li>
	 *    </ul>
	 *   Bドメイン部
	 *   <ul>
	 *    <li>文字列の先頭、末尾がピリオドでない</li>
	 *    <li>連続したピリオドを含まない</li>
	 *    <li>半角英数字、半角記号(※)のみOK</li>
	 *    </ul>
	 * ※ 「"」、「,」、「:」、「;」、「<」、「>」、「@」、「[」、「]」、「 」(半角スペース)は禁止<br>
	 * (ただし、空白のみはエラーとする。)<br>
	 * ※null／空文字の場合はtrueを返却する。<br>
	 * @param moji チェックする文字列データ
	 * @return boolean チェック結果（OK：true／NG：false） 
	 */
	public static boolean isEMail1(String moji)
	{
		return JBSbatCheckUtil.invoke(moji ,new String[]{"e-mail1"});
	}

	/**
	 * Long型のチェックを行います。<br>
	 * Long型であり指定された桁数以内の数値の場合のみ真を返却します。<br>
	 * ※nullの場合もtrueを返却する。<br>
	 * @param suu Long型のデータ
	 * @param keta Long型データの最大桁数（バイト数）
	 * @return チェック結果（OK：true／NG：false） 
	 */
	public static boolean isLong(Long suu, String keta)
	{
		return JBSbatCheckUtil.invoke(suu ,new String[]{"long_chk", keta});
	}

	/**
	 * Double型のチェックを行います。<br>
	 * Double型であり指定された整数桁数及び小数桁数以内の数値の場合のみ
	 * 真を返却します。<br>
	 * ※nullの場合もtrueを返却する。<br>
	 * @param suu Double型のデータ
	 * @param seisuKeta Double型データ整数部の最大桁数
	 * @param syosuKeta Double型データ小数部の最大桁数
	 * @return boolean チェック結果（OK：true／NG：false） 
	 */
	public static boolean isDouble(Double suu, String seisuKeta, String syosuKeta)
	{
		return JBSbatCheckUtil.invoke(suu, new String[]{"double_chk", seisuKeta, syosuKeta});
	}

	/**
	 * Tel1のチェックを行います。<br>
	 * 0から始まる半角数字の場合のみ真を返却します。<br>
	 * ※null／空文字の場合もtrueを返却する。<br>
	 * @param moji チェックする文字列データ
	 * @return チェック結果（OK：true／NG：false）
	 */
	public static boolean isTel1(String moji)
	{
		return JBSbatCheckUtil.invoke(moji, new String[]{"tel1"});
	}

	/**
	 * Tel2のチェックを行います。<br>
	 * 下記の全てが満たされた場合のみ真を返却します。<br>
	 * 　@ 0から始まる半角数字<br>
	 * 　A 2桁目が0以外<br>
	 * 　B 3桁目が0の場合は11桁。0でない場合は10桁<br>
	 * ※null／空文字の場合もtrueを返却する。<br>
	 * @param moji チェックする文字列データ
	 * @return チェック結果（OK：true／NG：false）
	 */
	public static boolean isTel2(String moji)
	{
		return JBSbatCheckUtil.invoke(moji, new String[]{"tel2"});
	}

	/**
	 * 全角のチェックを行います。<br>
	 * 全角の場合のみ真を返却します。<br>
	 * （2byteコード:各種記号、英数字、ひらがな、カタカナ　[01区]〜[08区]、
	 * JIS第一水準漢字[16区]〜[47区]、JIS第二水準漢字[48区]〜[84区]）<br>
	 * （ただし、全角空白のみはエラーとする。）<br>
	 * ※null／空文字の場合はtrueを返却する。<br>
	 * @param moji チェックする文字列データ
	 * @return boolean チェック結果（OK：true／NG：false） 
	 */
	public static boolean isZenkaku(String moji)
	{
	
		return JBSbatCheckUtil.invoke(moji ,new String[]{"zenkaku"});
	}

	/**
	 * 全角1のチェックを行います。<br>
	 * 全角の場合のみ真を返却します。（空白のみを許容する。）<br>
	 * ※null／空文字の場合もtrueを返却する。<br>
	 * @param moji チェックする文字列データ
	 * @return チェック結果（OK：true／NG：false）
	 */
	public static boolean isZenkaku1(String moji)
	{
		return JBSbatCheckUtil.invoke(moji ,new String[]{"zenkaku1"});
	}

	/**
	 * 全角ひらがなのチェックを行います。<br>
	 * 句点コード[01区],[02区],[03区]の全角数字記号、[04区]の全角ひらがなの
	 * 場合のみ真を返却します。<br>
	 * （※ ぁ[829F]〜ん[82F1]、全角空白[8140]〜◯[81FC]、０[824F]〜９[8258]）
	 * （ただし、空白のみはエラーとする。）<br>
	 * ※null／空文字の場合はtrueを返却する。<br>
	 * @param moji チェックする文字列データ
	 * @return チェック結果（OK：true／NG：false）
	 */
	public static boolean isZenkakuHiragana(String moji)
	{
		return JBSbatCheckUtil.invoke(moji ,new String[]{"zenkakuhiragana"});
	}

	/**
	 * 全角カタカナのチェックを行います。<br>
	 * 句点コード[01区]、[02区]、[05区]の文字の場合のみ真を返却します。<br>
	 * （※ ァ[8340]〜ヶ[8396]、全角空白[8140]〜◯[81FC]、０[824F]〜９[8258]）<br>
	 * （ただし、全角空白のみはエラーとする。）<br>
	 * ※null／空文字の場合はtrueを返却する。<br>
	 * @param moji チェックする文字列データ
	 * @return boolean チェック結果（OK：true／NG：false） 
	 */
	public static boolean isZenkakuKana(String moji)
	{
		return JBSbatCheckUtil.invoke(moji ,new String[]{"zenkakukana"});
	}

	/**
	 * 日時1のチェックを行います。<br>
	 * 「yyyyMMddHHmmssSSS」、「yyyy/MM/dd HH:mm.ssSSS」の場合のみ真を返却します。<br>
	 * （ただし、1868/01/01以降であること）。<br>
	 * ※null／空文字の場合もtrueを返却する。<br>
	 * @param moji チェックする文字列データ
	 * @return boolean チェック結果（OK：true／NG：false） 
	 */
	public static boolean isDayHour1(String moji)
	{
		return JBSbatCheckUtil.invoke(moji ,new String[]{"day_hour1"});
	}

	/**
	 * 日時2のチェックを行います。<br>
	 * 「yyyyMMddHHmm」「yyyy/MM/dd HH:mm」の場合のみ真を返却します。<br>
	 * (ただし、1868/01/01 00:00以降であること。)<br>
	 * ※null／空文字の場合もtrueを返却する。<br>
	 * @param moji チェックする文字列データ
	 * @return チェック結果（OK：true／NG：false）
	 */
	public static boolean isDayHour2(String moji)
	{
		return JBSbatCheckUtil.invoke(moji ,new String[]{"day_hour2"});
	}

	/**
	 * 日時3のチェックを行います。<br>
	 * 「yyyyMMddHH」「yyyy/MM/dd HH」の場合のみ真を返却します。<br>
	 * (ただし、1868/01/01 00以降であること。)<br>
	 * ※null／空文字の場合もtrueを返却する。<br>
	 * @param moji チェックする文字列データ
	 * @return チェック結果（OK：true／NG：false）
	 */
	public static boolean isDayHour3(String moji)
	{
		return JBSbatCheckUtil.invoke(moji ,new String[]{"day_hour3"});
	}

	/**
	 * 日時4のチェックを行います。<br>
	 * 「yyyyMMddHHmmss」「yyyy/MM/dd HH:mm.ss」の場合のみ真を返却します。<br>
	 * (ただし、1868/01/01 00:00以降であること。)<br>
	 * ※null／空文字の場合もtrueを返却する。<br>
	 * @param moji チェックする文字列データ
	 * @return チェック結果（OK：true／NG：false）
	 */
	public static boolean isDayHour4(String moji)
	{
		return JBSbatCheckUtil.invoke(moji ,new String[]{"day_hour4"});
	}

	/**
	 * 日時5のチェックを行います。<br>
	 * 「yyMMddHHmmss」「yy/MM/dd HH:mm.ss」の場合のみ真を返却します。<br>
	 * (ただし、1868/01/01 00:00以降であること。)<br>
	 * ※null／空文字の場合もtrueを返却する。<br>
	 * @param moji チェックする文字列データ
	 * @return チェック結果（OK：true／NG：false）
	 */
	public static boolean isDayHour5(String moji)
	{
		return JBSbatCheckUtil.invoke(moji ,new String[]{"day_hour5"});
	}

	/**
	 * 年月日1のチェックを行います。<br>
	 * 「yyyyMMdd」、「yyyy/MM/dd」の場合のみ真を返却します。<br>
	 * (ただし、1868/01/01以降であること)<br>
	 * ※null／空文字の場合もtrueを返却する。<br>
	 * @param moji チェックする文字列データ
	 * @return boolean チェック結果（OK：true／NG：false） 
	 */
	public static boolean isYearMonthDay1(String moji)
	{
		return JBSbatCheckUtil.invoke(moji ,new String[]{"year_month_day1"});
	}

	/**
	 * 年月1のチェックを行います。<br>
	 * 「yyyyMM」、「yyyy/MM」の場合のみ真を返却します。<br>
	 * （ただし、1868/01以降であること）。<br>
	 * ※null／空文字の場合もtrueを返却する。<br>
	 * @param moji チェックする文字列データ
	 * @return boolean チェック結果（OK：true／NG：false） 
	 */
	public static boolean isYearMonth1(String moji)
	{
		return JBSbatCheckUtil.invoke(moji ,new String[]{"year_month1"});
	}

	/**
	 * 年月2のチェックを行います。<br>
	 * 「yyMM」「0000」の場合のみ真を返却します。<br>
	 * ※null／空文字の場合もtrueを返却する。<br>
	 * @param moji チェックする文字列データ
	 * @return チェック結果（OK：true／NG：false）
	 */
	public static boolean isYearMonth2(String moji)
	{
		return JBSbatCheckUtil.invoke(moji ,new String[]{"year_month2"});
	}

	/**
	 * 年月3のチェックを行います。<br>
	 * 「yyyyMM」「000000」の場合のみ真を返却します。<br>
	 * ※null／空文字の場合もtrueを返却する。<br>
	 * @param moji チェックする文字列データ
	 * @return チェック結果（OK：true／NG：false）
	 */
	public static boolean isYearMonth3(String moji)
	{
		return JBSbatCheckUtil.invoke(moji ,new String[]{"year_month3"});
	}

	/**
	 * 月日1のチェックを行います。<br>
	 * 「MMdd」「MM/dd」の場合のみ真を返却します。<br>
	 * ※null／空文字の場合もtrueを返却する。<br>
	 * @param moji チェックする文字列データ
	 * @return チェック結果（OK：true／NG：false）
	 */
	public static boolean isMonthDay1(String moji)
	{
		return JBSbatCheckUtil.invoke(moji ,new String[]{"month_day1"});
	}

	/**
	 * 年1のチェックを行います。<br>
	 * 「yyyy」の場合のみ真を返却する。<br>
	 * (ただし、1868年以降であること。)<br>
	 * ※null／空文字の場合もtrueを返却する。<br>
	 * @param moji チェックする文字列データ
	 * @return チェック結果（OK：true／NG：false）
	 */
	public static boolean isYear1(String moji)
	{
		return JBSbatCheckUtil.invoke(moji ,new String[]{"year1"});
	}

	/**
	 * 月1のチェックを行います。<br>
	 * 「MM」の場合のみ真を返却します。<br>
	 * ※null／空文字の場合もtrueを返却する。<br>
	 * @param moji チェックする文字列データ
	 * @return チェック結果（OK：true／NG：false）
	 */
	public static boolean isMonth1(String moji)
	{
		return JBSbatCheckUtil.invoke(moji ,new String[]{"month1"});
	}

	/**
	 * 日1のチェックを行います。<br>
	 * 「dd」の場合のみ真を返却する。<br>
	 * ※null／空文字の場合もtrueを返却する。<br>
	 * @param moji チェックする文字列データ
	 * @return チェック結果（OK：true／NG：false）
	 */
	public static boolean isDay1(String moji)
	{
		return JBSbatCheckUtil.invoke(moji ,new String[]{"day1"});
	}

	/**
	 * 時分秒1のチェックを行います。<br>
	 * 「HHmmss」、「HH:mm:ss」の場合のみ真を返却します。<br>
	 * ※null／空文字の場合もtrueを返却する。<br>
	 * @param moji チェックする文字列データ
	 * @return boolean チェック結果（OK：true／NG：false） 
	 */
	public static boolean isHourMinSec1(String moji)
	{
		return JBSbatCheckUtil.invoke(moji ,new String[]{"hour_min_sec1"});
	}

	/**
	 * 時分秒2のチェックを行います。<br>
	 * 「HHmmssSSS」、「HH:mm:ssSSS」の場合のみ真を返却します。<br>
	 * ※null／空文字の場合もtrueを返却する。<br>
	 * @param moji チェックする文字列データ
	 * @return boolean チェック結果（OK：true／NG：false） 
	 */
	public static boolean isHourMinSec2(String moji)
	{
		return JBSbatCheckUtil.invoke(moji ,new String[]{"hour_min_sec2"});
	}

	/**
	 * 時分1のチェックを行います。<br>
	 * 「HHmm」、「HH:mm」の場合のみ真を返却します。<br>
	 * ※null／空文字の場合もtrueを返却する。<br>
	 * @param moji チェックする文字列データ
	 * @return boolean チェック結果（OK：true／NG：false） 
	 */
	public static boolean isHourMin1(String moji)
	{
		return JBSbatCheckUtil.invoke(moji ,new String[]{"hour_min1"});
	}

	/**
	 * 半角英字のチェックを行います。<br>
	 * 半角英字の場合のみ真を返却します。<br>
	 * (1byteコード:A[41]〜Z[5A]、a[61]〜z[7A])<br>
	 * ※null／空文字の場合もtrueを返却する。<br>
	 * @param moji チェックする文字列データ
	 * @return チェック結果（OK：true／NG：false）
	 */
	public static boolean isHannkakuEji1(String moji)
	{
		return JBSbatCheckUtil.invoke(moji ,new String[]{"hannkakueji1"});
	}

	/**
	 * 半角英数字1のチェックを行います。<br>
	 * 半角英数字の場合のみ真を返却します。<br>
	 * （1byteコード：0[30]〜9[39]、A[41]〜Z[5A]、a[61]〜z[7A]）<br>
	 * ※null／空文字の場合もtrueを返却する。<br>
	 * @param moji チェックする文字列データ
	 * @return boolean チェック結果（OK：true／NG：false） 
	 */
	public static boolean isHannkakuESuuji1(String moji)
	{
		return JBSbatCheckUtil.invoke(moji ,new String[]{"hannkakuesuuji1"});
	}

	/**
	 * 半角英数字2のチェックを行います。<br>
	 * 半角英数字、半角記号の場合のみ真を返却します。<br>
	 * （1byteコード：半角空白[20]〜~[7E]）<br>
	 * （ただし、半角空白のみはエラーとする。）<br>
	 * ※null／空文字の場合はtrueを返却する。<br>
	 * @param moji チェックする文字列データ
	 * @return boolean チェック結果（OK：true／NG：false） 
	 */
	public static boolean isHannkakuESuuji2(String moji)
	{
		return JBSbatCheckUtil.invoke(moji ,new String[]{"hannkakuesuuji2"});
	}

	/**
	 * 半角英数字3のチェックを行います。<br>
	 * 半角英数字の場合のみ真を返却します。<br>
	 * （1byteコード：半角空白[20],0[30]〜9[39],A[41]〜Z[5A],a[61]〜z[7A]）<br>
	 * ※null／空文字の場合はtrueを返却する。<br>
	 * @param moji チェックする文字列データ
	 * @return チェック結果（OK：true／NG：false） 
	 */
	public static boolean isHannkakuESuuji3(String moji)
	{
		return JBSbatCheckUtil.invoke(moji ,new String[]{"hannkakuesuuji3"});
	}

	/**
	 * 半角英数字カナ1のチェックを行います。<br>
	 * 半角英数字,半角記号,半角カナの場合のみ真を返却します。<br>
	 * (1byteコード:半角空白[20]〜~[7E]、ｦ[A6]〜ﾟ[DF])<br>
	 * (ただし、半角空白のみはエラーとする。)<br>
	 * ※null／空文字の場合はtrueを返却する。<br>
	 * @param moji チェックする文字列データ
	 * @return チェック結果（OK：true／NG：false）
	 */
	public static boolean isHannkakuESuujiKana1(String moji)
	{
		return JBSbatCheckUtil.invoke(moji ,new String[]{"hannkakuesuujikana1"});
	}

	/**
	 * 半角英数字カナ2のチェックを行います。<br>
	 * 半角英数字、半角記号(一部のみ)、半角カナの場合のみ真を返却します。<br>
	 * (1byteコード:半角空白[20]、([28]、)[29]、-[2D]、.[2E]、
	 * 0[30]〜9[39]、A[41]〜Z[5A]、a[61]〜z[7A]、ｦ[A6]〜ﾟ[DF])<br>
	 * (ただし、半角空白のみはエラーとする。)<br>
	 * ※null／空文字の場合はtrueを返却する。<br>
	 * @param moji チェックする文字列データ
	 * @return チェック結果（OK：true／NG：false）
	 */
	public static boolean isHannkakuESuujiKana2(String moji)
	{
		return JBSbatCheckUtil.invoke(moji ,new String[]{"hannkakuesuujikana2"});
	}

	/**
	 * 半角英数字カナ3のチェックを行います。<br>
	 * 半角英数字、半角記号(一部のみ)、半角カナの場合のみ真を返却します。<br>
	 * (1byteコード:半角空白[20]、([28]、)[29]、-[2D]、.[2E]、
	 * 0[30]〜9[39]、A[41]〜Z[5A]、a[61]〜z[7A]、ｦ[A6]〜ﾟ[DF])<br>
	 * (半角空白のみを許容する。)<br>
	 * ※null／空文字の場合はtrueを返却する。<br>
	 * @param moji チェックする文字列データ
	 * @return チェック結果（OK：true／NG：false）
	 */
	public static boolean isHannkakuESuujiKana3(String moji)
	{
		return JBSbatCheckUtil.invoke(moji ,new String[]{"hannkakuesuujikana3"});
	}

	/**
	 * 半角英数字カナ4のチェックを行います。<br>
	 * 半角英数字、半角記号(一部のみ)、半角カナの場合のみ真を返却します。<br>
	 * (1byteコード:半角空白[20]、([28]、)[29]、-[2D]、.[2E]、
	 * 0[30]〜9[39]、A[41]〜Z[5A]、a[61]〜z[7A]、｡[A1]〜ﾟ[DF])<br>
	 * (半角空白のみを許容する。)<br>
	 * ※null／空文字の場合はtrueを返却する。<br>
	 * @param moji チェックする文字列データ
	 * @return チェック結果（OK：true／NG：false）
	 */
	public static boolean isHannkakuESuujiKana4(String moji)
	{
		return JBSbatCheckUtil.invoke(moji ,new String[]{"hannkakuesuujikana4"});
	}

	/**
	 * 半角カナ1のチェックを行います。<br>
	 * 半角カナの場合のみ真を返却します。<br>
	 * (1byteコード:半角空白[20]、ｦ[A6]〜ﾟ[DF])<br>
	 * (ただし、半角空白のみはエラーとする。)<br>
	 * ※null／空文字の場合はtrueを返却する。<br>
	 * @param moji チェックする文字列データ
	 * @return チェック結果（OK：true／NG：false）
	 */
	public static boolean isHannkakuKana1(String moji)
	{
		return JBSbatCheckUtil.invoke(moji ,new String[]{"hannkakukana1"});
	}

	/**
	 * 半角カナ2のチェックを行います。<br>
	 * 半角カナの場合のみ真を返却します。<br>
	 * (1byteコード:半角空白[20]、ｦ[A6]〜ﾟ[DF])<br>
	 * (半角空白のみを許容する。)<br>
	 * ※null／空文字の場合はtrueを返却する。<br>
	 * @param moji チェックする文字列データ
	 * @return チェック結果（OK：true／NG：false）
	 */
	public static boolean isHannkakuKana2(String moji)
	{
		return JBSbatCheckUtil.invoke(moji ,new String[]{"hannkakukana2"});
	}

	/**
	 * 半角数字1のチェックを行います。<br>
	 * 半角数字の場合のみ真を返却します。<br>
	 * （1byteコード：0[30]〜9[39]）。<br>
	 * ※null／空文字の場合もtrueを返却する。<br>
	 * @param moji チェックする文字列データ
	 * @return boolean チェック結果（OK：true／NG：false） 
	 */
	public static boolean isHannkakuSuuji1(String moji)
	{
		return JBSbatCheckUtil.invoke(moji ,new String[]{"hannkakusuuji1"});
	}

	/**
	 * 半角数字2のチェックを行います。<br>
	 * 半角数字の場合のみ真を返却します。<br>
	 * (1byteコード:半角空白[20]、0[30]〜9[39])<br>
	 * ※null／空文字の場合もtrueを返却する。<br>
	 * @param moji チェックする文字列データ
	 * @return チェック結果（OK：true／NG：false） 
	 */
	public static boolean isHannkakuSuuji2(String moji)
	{
		return JBSbatCheckUtil.invoke(moji ,new String[]{"hannkakusuuji2"});
	}

	/**
	 * 桁数1のチェックを行います。<br>
	 * 指定した文字数の場合のみ真を返却します。<br>
	 * ※null／空文字の場合もtrueを返却する。<br>
	 * @param obj チェックする文字列のデータ
	 * @param keta 桁数（文字数）
	 * @return チェック結果（OK：true／NG：false） 
	 */
	public static boolean isKetasuu1(String obj, String keta)
	{
		return JBSbatCheckUtil.invoke(obj ,new String[]{"ketasuu1", keta});
	}
	
	/**
	 * 桁数2のチェックを行います。<br>
	 * 指定した文字数の範囲内の場合のみ真を返却します。<br>
	 * ※null／空文字の場合もtrueを返却する。<br>
	 * @param obj チェックする文字列データ
	 * @param minKeta 最小桁数（文字数）
	 * @param maxKeta 最大桁数（文字数）
	 * @return チェック結果（OK：true／NG：false） 
	 */
	public static boolean isKetasuu2(String obj, String minKeta, String maxKeta)
	{
		return JBSbatCheckUtil.invoke(obj ,new String[]{"ketasuu2", minKeta, maxKeta});
	}
	
	/**
	 * リファレンス1のチェックを行います。<br>
	 * チェックする文字列が、引数のリファレンス文字列の何れかに一致
	 * した場合のみ真を返却します。<br>
	 * ※null／空文字の場合もtrueを返却する。<br>
	 * @param moji チェックする文字列データ
	 * @param refs リファレンス文字列
	 * @return チェック結果（OK：true／NG：false）
	 */
	public static boolean isRefCheck1(String moji, String... ref)
	{
		return JBSbatCheckUtil.invoke(moji ,new String[]{"ref_chk1", getCSVString(ref)});
	}

	/**
	 * リファレンス2のチェックを行います。<br>
	 * チェックする文字列が、引数のリファレンス文字列の何れかに前方一致
	 * した場合のみ真を返却します。<br>
	 * ※null／空文字の場合もtrueを返却する。<br>
	 * @param moji チェックする文字列データ
	 * @param ref リファレンス文字列の配列
	 * @return チェック結果（OK：true／NG：false）
	 */
	public static boolean isRefCheck2(String moji, String... ref)
	{
		return JBSbatCheckUtil.invoke(moji ,new String[]{"ref_chk2", getCSVString(ref)});
	}
	
	/**
	 * 引数の文字列配列をカンマ区切りの文字列に編集する。<br>
	 * @param data 編集元の文字列配列
	 * @return 引数の文字列配列をカンマ区切りにした文字列
	 */
	private static String getCSVString(String[] data) {
		String refstr = "";
		
		// カンマ区切りの文字列を生成
		for(int i=0; i<data.length; i++) {
			refstr += data[i];
			if (i<data.length -1) {
				refstr += ",";
			}
		}
		
		return refstr;
	}

	/**
	 * MIXのチェックを行います。<br>
	 * 全角、半角英数字、半角記号の場合のみ真を返却します。<br>
	 * (1byteコード:半角空白[20]〜~[7E]、
	 * 2byteコード:各種記号、英数字、ひらがな、カタカナ　[01区]〜[08区]、[13区]、
	 * JIS第一水準漢字[16区]〜[47区]、JIS第二水準漢字[48区]〜[84区]、全角ハイフン「‐」)<br>
	 * (ただし、空白のみはエラーとする。)<br>
	 * ※null／空文字の場合もtrueを返却する。<br>
	 * @param moji チェックする文字列データ
	 * @return boolean チェック結果（OK：true／NG：false） 
	 */
	public static boolean isMIX(String moji){
		return JBSbatCheckUtil.invoke(moji ,new String[]{"mix"});
	}

	/**
	 * MIX1のチェックを行います。<br>
	 * 全角、半角英数字、半角記号の場合のみ真を返却します。<br>
	 * (1byteコード:半角空白[20]〜~[7E]、改行コード[OD0A]
	 * 2byteコード:各種記号、英数字、ひらがな、カタカナ　[01区]〜[08区]、[13区]、
	 * JIS第一水準漢字[16区]〜[47区]、JIS第二水準漢字[48区]〜[84区]、全角ハイフン「‐」)<br>
	 * (ただし、空白のみはエラーとする。)<br>
	 * (改行コードのみはエラーとする。)<br>
	 * ※null／空文字の場合もtrueを返却する。<br>
	 * @param moji チェックする文字列データ
	 * @return boolean チェック結果（OK：true／NG：false） 
	 */
	public static boolean isMIX1(String moji){
		return JBSbatCheckUtil.invoke(moji ,new String[]{"mix1"});
	}

	/**
	 * 氏名/住所のチェックを行います。<br>
	 * 全角の場合のみ真を返却します。<br>
	 * (特殊な文字(機種依存文字)を入力させたいもの。)<br>
	 * (2byteコード:各種記号、英数字、ひらがな、カタカナ　[01区]〜[08区]、
	 * JIS第一水準漢字[16区]〜[47区]、JIS第二水準漢字[48区]〜[84区])<br>
	 * (ただし、空白のみはエラーとする。)<br>
	 * ※null／空文字の場合もtrueを返却する。<br>
	 * @param moji チェックする文字列データ
	 * @return チェック結果（OK：true／NG：false）
	 */
	public static boolean isNameAddress(String moji)
	{
		return JBSbatCheckUtil.invoke(moji ,new String[]{"name_address"});
	}
	
	/**
	 * 氏名/住所1のチェックを行います。<br>
	 * 全角、半角英数字、半角記号の場合のみ真を返却します。<br>
	 * また、特殊な文字(機種依存文字)を入力させたいもの。(例：高橋→橋)
	 * (特殊な文字(機種依存文字)を入力させたいもの。)<br>
	 * ((1byteコード:半角空白[20]〜~[7E]
	 * 2byteコード:各種記号、英数字、ひらがな、カタカナ　[01区]〜[08区]、[13区]、
	 * JIS第一水準漢字[16区]〜[47区]、JIS第二水準漢字[48区]〜[84区]、全角ハイフン「‐」)<br>
	 * (ただし、空白のみはエラーとする。)<br>
	 * ※null／空文字の場合もtrueを返却する。<br>
	 * @param moji チェックする文字列データ
	 * @return チェック結果（OK：true／NG：false）
	 */
	public static boolean isNameAddress1(String moji)
	{
		return JBSbatCheckUtil.invoke(moji ,new String[]{"name_address1"});
	}
	
	/**
	 * 氏名/住所2のチェックを行います。<br>
	 * 全角、半角英数字、半角記号の場合のみ真を返却します。<br>
	 * また、特殊な文字(機種依存文字)を入力させたいもの。(例：高橋→橋)
	 * (特殊な文字(機種依存文字)を入力させたいもの。)<br>
	 * ((1byteコード:半角空白[20]〜~[7E]、改行コード[OD0A]
	 * 2byteコード:各種記号、英数字、ひらがな、カタカナ　[01区]〜[08区]、[13区]、
	 * JIS第一水準漢字[16区]〜[47区]、JIS第二水準漢字[48区]〜[84区]、全角ハイフン「‐」)<br>
	 * (ただし、空白のみはエラーとする。)<br>
	 * (改行コードのみはエラーとする。)<br>
	 * ※null／空文字の場合もtrueを返却する。<br>
	 * @param moji チェックする文字列データ
	 * @return チェック結果（OK：true／NG：false）
	 */
	public static boolean isNameAddress2(String moji)
	{
		return JBSbatCheckUtil.invoke(moji ,new String[]{"name_address2"});
	}
	
	/**
	 * メールアカウントのチェックを行います。<br>
	 * E-mail（【パソコン E-mail用】）のアカウント部と同じチェックとなる。
	 *  ・文字列の先頭がピリオドでない
	 *  ・連続したピリオドを含まない
	 *  ・半角英数字、半角記号(※)のみOK
	 *  ※ 「"」、「,」、「:」、「;」、「<」、「>」、「@」、「[」、「]」、「 」(半角スペース)は禁止
	 * @param moji チェックする文字列データ
	 * @return チェック結果（OK：true／NG：false）
	 */
	public static boolean isMailAccount(String moji)
	{
		return JBSbatCheckUtil.invoke(moji ,new String[]{"mailaccount"});
	}
	
	/**
	 * 時分秒3のチェックを行います。<br>
	 * 「HHmmssS」、「HH:mm:ssS」、「HH:mm:ss.S」の場合のみ真を返却する。
	 * @param moji チェックする文字列データ
	 * @return チェック結果（OK：true／NG：false）
	 */
	public static boolean isHourMinSec3(String moji)
	{
		return JBSbatCheckUtil.invoke(moji ,new String[]{"hour_min_sec3"});
	}
	
	/**
	 * 半角英数字4のチェックを行います。<br>
	 * 半角英数字、半角記号("_")のみ真を返却する。
	 *   ※ 1byteコード:A[41]〜Z[5A],_[5F]<br>
	 * ただし、"_"のみはエラーとする。<br>
	 * @param moji チェックする文字列データ
	 * @return チェック結果（OK：true／NG：false）
	 */
	public static boolean isHannkakuESuuji4(String moji)
	{
		return JBSbatCheckUtil.invoke(moji ,new String[]{"hannkakuesuuji4"});
	}
	
	/**
	 * MIX2のチェックを行います。<br>
	 * 全角、半角英数字、半角記号、半角カナの場合のみ真を返却する。<br>
	 *   ※ 1byteコード:半角空白[20]〜~[7E]、｡[A1]〜ﾟ[DF]<br>
	 *      2byteコード:各種記号、英数字、ひらがな、カタカナ　[01区]〜[08区]、[13区]、<br>
	 *                  JIS第一水準漢字[16区]〜[47区]、JIS第二水準漢字[48区]〜[84区]、全角ハイフン「‐」<br>
	 * ただし、空白のみはエラーとする。<br>
	 * @param moji チェックする文字列データ
	 * @return チェック結果（OK：true／NG：false）
	 */
	public static boolean isMIX2(String moji)
	{
		return JBSbatCheckUtil.invoke(moji ,new String[]{"mix2"});
	}
	
	/**
	 * ファイル名のチェックを行います。<br>
	 * 全角、半角英数字、半角記号、半角カナの場合のみ真を返却する。<br>
	 *    ※ 1byteコード:半角空白[20]〜~[7E]、｡[A1]〜ﾟ[DF]<br>
	 *       2byteコード:各種記号、英数字、ひらがな、カタカナ　[01区]〜[08区]、[13区]、<br>
	 *                   JIS第一水準漢字[16区]〜[47区]、JIS第二水準漢字[48区]〜[84区]、全角ハイフン「‐」<br>
	 * ※ ただし、半角記号の中でも、「\」、「/」、「:」、「*」、「?」、「"」、「<」、「>」、「|」は禁止
	 * @param moji チェックする文字列データ
	 * @return チェック結果（OK：true／NG：false）
	 */
	public static boolean isFileName(String moji)
	{
		return JBSbatCheckUtil.invoke(moji ,new String[]{"file_name"});
	}
	
	/**
	 * no_checkのチェックを行います。
	 * 使用禁止文字が含まれていない場合のみ真を返却する。
	 *    ※ NUL[00]〜US[1F],DEL[7F]
	 * @param moji チェックする文字列データ
	 * @return チェック結果（OK：true／NG：false）
	 */
	public static boolean isUnusedChar(String moji)
	{
		return JBSbatCheckUtil.invoke(moji ,new String[]{"no_check"});
	}
	
	/**
	 * no_check1のチェックを行います。
	 * 使用禁止文字が含まれていない場合のみ真を返却する。
	 * ただし、改行コード[OD0A]は許容する。
	 *    ※ NUL[00]〜HT[09],VT[0B],FF[0C],SO[0E]〜US[1F]
	 * @param moji チェックする文字列データ
	 * @return チェック結果（OK：true／NG：false）
	 */
	public static boolean isUnusedChar1(String moji)
	{
		return JBSbatCheckUtil.invoke(moji ,new String[]{"no_check1"});
	}
	
	/**
	 * Long1のチェックを行います。
	 * Long型の場合のみ真を返却する。
	 * @param moji チェックする文字列データ
	 * @return チェック結果（OK：true／NG：false）
	 */
	public static boolean isLong1(String moji)
	{
		return JBSbatCheckUtil.invoke(moji ,new String[]{"long1"});
	}
	
	/**
	 * Double1のチェックを行います。
	 * Double型の場合のみ真を返却する。
	 * @param moji チェックする文字列データ
	 * @return チェック結果（OK：true／NG：false）
	 */
	public static boolean isDouble1(String moji)
	{
		return JBSbatCheckUtil.invoke(moji ,new String[]{"double1"});
	}
	
	/**
	 * メールアカウント1のチェックを行います。<br>
	 * E-mail2（【パソコン E-mail用】）のアカウント部と同じチェックとなる。<br>
	 *  ・文字列の先頭/末尾がピリオドでない<br>
	 *  ・連続したピリオドを含まない<br>
	 *  ・半角英数字、半角記号([-][_][.])のみOK<br>
	 *  ※半角英字は「小文字」のみOK<br>
	 * @param moji チェックする文字列データ
	 * @return チェック結果（OK：true／NG：false）
	 */
	public static boolean isMailAccount1(String moji)
	{
		return JBSbatCheckUtil.invoke(moji ,new String[]{"mailaccount1"});
	}
	
	/**
	 * ＰＣ用のＥ−ｍａｉｌ２の書式チェックを行います。<br>
	 * 下記全てが満たされた場合のみ真を返却します。<br>
	 * @全体<br>
	 *  ・必ずひとつの「@」を含む(「@」が複数含むものはNG)<br>
	 *  ・文字列の先頭と末尾が「@」でない<br>
	 * Aアカウント部<br>
	 *  ・文字列の先頭/末尾がピリオドでない<br>
	 *  ・半角英数字、半角記号([-][_][.])のみOK<br>
	 *  ※半角英字は「小文字」のみOK<br>
	 * Bドメイン部<br>
	 *  ・文字列の先頭、末尾がピリオドでない<br>
	 *  ・連続したピリオドを含まない<br>
	 *  ・半角英数字、半角記号(※)のみOK<br>
	 * ※ 「"」、「,」、「:」、「;」、「<」、「>」、「@」、「[」、「]」、「 」(半角スペース)は禁止<br>
	 * ※null／空文字の場合はtrueを返却する。<br>
	 * @param moji チェックする文字列データ
	 * @return boolean チェック結果（OK：true／NG：false） 
	 */
	public static boolean isEMail2(String moji)
	{
		return JBSbatCheckUtil.invoke(moji ,new String[]{"e-mail2"});
	}
	
	/**
	 * 半角英数字5のチェックを行います。<br>
	 * 半角英数字、半角記号("-"と"_")のみ真を返却します。<br>
	 * ※1byteコード:0[30]〜9[39]、a[61]〜z[7A]<br>
	 * ※半角英字は「小文字」のみOK<br>
	 * ※null／空文字の場合はtrueを返却する。<br>
	 * @param moji チェックする文字列データ
	 * @return チェック結果（OK：true／NG：false） 
	 */
	public static boolean isHannkakuESuuji5(String moji)
	{
		return JBSbatCheckUtil.invoke(moji ,new String[]{"hannkakuesuuji5"});
	}
	
	/**
	 * 半角英数字6のチェックを行います。<br>
	 * 半角英数字、半角記号("-"と"_")のみ真を返却します。<br>
	 * ※1byteコード:0[30]〜9[39]、A[41]〜Z[5A]、a[61]〜z[7A]<br>
	 * ※半角英数字、半角記号([-][_])、半角空白のみOK<br>
	 * ※文字列の先頭/末尾が半角空白でない<br>
	 * ※null／空文字の場合はtrueを返却する。<br>
	 * @param moji チェックする文字列データ
	 * @return チェック結果（OK：true／NG：false） 
	 */
	public static boolean isHannkakuESuuji6(String moji)
	{
		return JBSbatCheckUtil.invoke(moji ,new String[]{"hannkakuesuuji6"});
	}
	
	/**
	 * クレカ名義_ローマ字チェックを行います。
	 * 半角英字、半角記号の場合のみ真を返却する。
	 * ※1byteコード:A[41]〜Z[5A]、a[61]〜z[7A]、半角空白[20]〜&[26]、([28]〜/[2F]、:[3A]〜@[40]、[[5B]〜`[60]、{[7B]〜~[7E]
	 * ただし、"'"、空白のみはエラーとする。
	 * <br>
	 * @param value チェック対象の文字列
	 * @return チェック結果
	 */
	public static boolean isCrecardNmRomaji(String moji)
	{
		return JBSbatCheckUtil.invoke(moji ,new String[]{"crecardnmromaji"});
	}
	
	/**
	 * MIX3のチェックを行います。
	 * 全角、半角英数字、半角記号、半角カナの場合のみ真を返却する。
	 * (1byteコード:半角空白[20]〜![21]、#[23]〜+[2B]、-[2D]〜~[7E]
	 * 2byteコード:各種記号、英数字、ひらがな、カタカナ　[01区]〜[08区]、[13区]、
	 * JIS第一水準漢字[16区]〜[47区]、JIS第二水準漢字[48区]〜[84区]、全角ハイフン「‐」)
	 * (ただし、空白のみはエラーとする。)
	 * ※null／空文字の場合はtrueを返却する。<br>
	 * @param moji チェックする文字列データ
	 * @return boolean チェック結果（OK：true／NG：false） 
	 */
	public static boolean isMIX3(String moji){
		return JBSbatCheckUtil.invoke(moji ,new String[]{"mix3"});
	}
	
	/**
	 * MIX4のチェックを行います。
	 * 全角、半角英数字、半角記号の場合のみ真を返却する。
	 * ※ 1byteコード:半角空白[20]〜![21]、#[23]〜+[2B]、-[2D]〜~[7E]
	 * 　　2byteコード:各種記号、英数字、ひらがな、カタカナ　[01区]〜[08区]、[13区]、JIS第一水準漢字[16区]〜[47区]、JIS第二水準漢字[48区]〜[84区]、全角ハイフン「‐」
	 * また、[13区]及び特殊な文字(機種依存文字)を入力させたいもの。(例：高橋→橋)
	 * 空白のみを許容する。
	 * @param moji チェックする文字列データ
	 * @return boolean チェック結果（OK：true／NG：false） 
	 */
	public static boolean isMIX4(String moji){
		return JBSbatCheckUtil.invoke(moji ,new String[]{"mix4"});
	}
	
	/**
	 * 半角英数字7チェックを行います。
	 * 1byteコード:半角空白[20]〜![21]、#[23]〜+[2B]、-[2D]〜~[7E]
	 * ただし、半角空白のみはエラーとする。
	 * ※null／空文字の場合はtrueを返却する。<br>
	 * @param moji チェックする文字列データ
	 * @return チェック結果（OK：true／NG：false） 
	 */
	public static boolean isHannkakuESuuji7(String moji)
	{
		return JBSbatCheckUtil.invoke(moji ,new String[]{"hannkakuesuuji7"});
	}
	
	/**
	 * 名義人カナチェックを行います。
	 * 句点コード[01区]の全角数字記号、句点コード[03区]の全角アルファベット、[05区]の全角カタカナの場合のみ真を返却する。
	 *※　全角空白[8140],，[8143],．[8144],：[8146],；[8147]
	 *     ？[8148],！[8149]
	 *     ￣[8150],＿[8151],／[815E]
	 *     ｜[8162],‘[8165],’[8166],”[8168],（[8169]
	 *     ）[816A],［[816D],］[816E]
	 *     ｛[816F],｝[8170],＋[817B],−[817C]
	 *     ＝[8181],＜[8183],＞[8184],￥[818F]
	 *     ＄[8190],％[8193],＃[8194],＆[8195],＊[8196]
	 *     ＠[8197]
	 *     ０[824F]〜９[8258]
	 *     Ａ[8260]〜Ｚ[8279]
	 *     ａ[8281]〜ｚ[829A]
	 *     ァ[8340]〜ロ[838D]
	 *     ワ[838F],ヲ[8392]〜ヶ[8396]
	 * @param moji チェックする文字列データ
	 * @return チェック結果（OK：true／NG：false） 
	 */
	public static boolean isMeigiNinKana(String moji)
	{
		return JBSbatCheckUtil.invoke(moji ,new String[]{"meigininkana"});
	}
	
	// 2012/10/15 緊急通報用英数字カナ名に変更 start
	/**
	 * 緊急通報用英数字カナ名チェックを行います。
	 * 全角カタカナ、英数字及び全角空白[8140], [゛][814A],[ ゜][814B], [ー][815B]を許容します。
	 * 但し、全角カタカナのうち[ヮ][ヰ][ヱ][ヶ][ヵ]は使用禁止とします。
	 * また、空白のみの場合はエラーとします。
	 * @param moji チェックする文字列データ
	 * @return チェック結果（OK：true／NG：false） 
	 */
	public static boolean isEmgEsuujiKana(String moji)
	{
		return JBSbatCheckUtil.invoke(moji ,new String[]{"emgesuujikana"});
	}
	// 2012/10/15 緊急通報用英数字カナ名に変更 end
	
	/**
	 * メールタイトルのチェックを行います。（本形式は原則として使用禁止とする）
	 * 全角、半角英数字、半角記号の場合のみ真を返却します。
	 * (1byteコード:半角空白[20]〜~[7E]、
	 * 2byteコード:各種記号、英数字、ひらがな、カタカナ　[01区]〜[08区]、[13区]
	 * JIS第一水準漢字[16区]〜[47区]、JIS第二水準漢字[48区]〜[84区]、全角ハイフン「‐」)
 	 * 機種依存文字(NEC拡張文字、IBM拡張文字)を許容する。
	 * 空白のみであっても許容する。
	 * @param moji チェックする文字列データ
	 * @return チェック結果（OK：true／NG：false） 
	 */
	public static boolean isMailTitle(String moji)
	{
		return JBSbatCheckUtil.invoke(moji ,new String[]{"mailtitle"});
	}
	
	/**
	 * メール本文のチェックを行います。（本形式は原則として使用禁止とする）
	 * 使用禁止文字が含まれていない場合のみ真を返却する。
	 * ただし、改行コード[0D0A]と水平タブ[09]は許容する。
	 * また、[13区]及び特殊な文字(機種依存文字)を入力させたいもの。(例：高橋→橋)
	 * <br>
	 * @param moji チェックする文字列データ
	 * @return チェック結果（OK：true／NG：false） 
	 */
	public static boolean isMailText(String moji)
	{
		return JBSbatCheckUtil.invoke(moji ,new String[]{"mailtext"});
	}
	
	/**
	 * 機種依存_氏名/住所のチェックを行います。（本形式は原則として使用禁止とする）
	 * 全角の場合のみ真を返却します。
	 * (2byteコード:各種記号、英数字、ひらがな、カタカナ　[01区]〜[08区]、[13区]
	 * JIS第一水準漢字[16区]〜[47区]、JIS第二水準漢字[48区]〜[84区])
	 * 特殊な文字(機種依存文字)を入力させたいもの。(例：高橋→橋)
	 * ただし、空白のみはエラーとする。
	 * @param moji チェックする文字列データ
	 * @return チェック結果（OK：true／NG：false） 
	 */
	public static boolean isKisyuIzonNmAd(String moji)
	{
		return JBSbatCheckUtil.invoke(moji ,new String[]{"kisyuizon_nmad"});
	}
	
	/**
	 * E-mail3チェックを行います。
	 * （E-mail形式の大文字を使用禁止とした属性）
	 * <br>
	 * @param value チェック対象の文字列
	 * @return チェック結果
	 */
	public static boolean isEMail3(String moji)
	{
		return JBSbatCheckUtil.invoke(moji ,new String[]{"e-mail3"});
	}
	
	/**
	 * 半角英数字8チェックを行います。
	 * [30]〜[39]、[41]〜[5a]の文字のみを許容します。
	 * <br>
	 * @param value チェック対象の文字列
	 * @return チェック結果
	 */
	public static boolean isHannkakuESuuji8(String moji)
	{
		return JBSbatCheckUtil.invoke(moji ,new String[]{"hannkakuesuuji8"});
	}
	
	/**
	 * 半角英数字9チェックを行います。
	 * 半角英字（小文字）、数字、半角記号の場合のみ真を返却する。
	 * ※ 1byteコード:半角空白[20]〜@[40],[[5B]〜~[7E]
	 * ただし、半角空白のみはエラーとする。
	 * <br>
	 * @param value チェック対象の文字列
	 * @return チェック結果
	 */
	public static boolean isHannkakuESuuji9(String moji)
	{
		return JBSbatCheckUtil.invoke(moji ,new String[]{"hannkakuesuuji9"});
	}
	
	/**
	 * 半角数字3のチェックを行います。<br>
	 * 半角数字の場合のみ真を返却します。<br>
	 * (1byteコード:半角空白[20]、0[30]〜9[39]、-(半角ハイフン)[2D])<br>
	 * ※null／空文字の場合もtrueを返却する。<br>
	 * @param moji チェックする文字列データ
	 * @return チェック結果（OK：true／NG：false） 
	 */
	public static boolean isHannkakuSuuji3(String moji)
	{
		return JBSbatCheckUtil.invoke(moji ,new String[]{"hannkakusuuji3"});
	}
	
	/**
	 * 機種依存_KDDI備考のチェックを行います。（本形式は原則として使用禁止とする）
	 * 全角、半角英数字、半角記号の場合のみ真を返却する。
	 * ※ 1byteコード:半角空白[20]〜![21]、#[23]〜+[2B]、-[2D]〜~[7E]、｡[A1]〜ﾟ[DF]
	 * 2byteコード:各種記号、英数字、ひらがな、カタカナ　[01区]〜[08区]、[13区]、
	 * JIS第一水準漢字[16区]〜[47区]、JIS第二水準漢字[48区]〜[84区]
	 * また、[13区]及び特殊な文字(機種依存文字)を入力させたいもの。(例：高橋→橋)
	 * ただし、空白のみはエラーとする。
	 * 
	 * @param moji チェックする文字列データ
	 * @return チェック結果（OK：true／NG：false）
	 */
	public static boolean isKisyuIzonKddiBko(String moji)
	{
		return JBSbatCheckUtil.invoke(moji ,new String[]{"kisyuizon_kddibko"});
	}
	
	/**
	 * 全角英数字カナチェックを行います。
	 * 全角英字、全角カナ、全角数字、及び使用許可全角記号のみを許容します。
	 * <br>
	 * @param moji チェック対象の文字列
	 * @return チェック結果
	 */
	public static boolean isZenkakuESuujiKana(String moji)
	{
		return JBSbatCheckUtil.invoke(moji ,new String[]{"zenkakuesuujikana"});
	}

	/**
	 * 半角英数字10のチェックを行います。<br>
	 * 半角英数字の場合のみ真を返却します。<br>
	 * （1byteコード：0[30]〜9[39]、@[40]、A[41]〜Z[5A]、a[61]〜z[7A]）<br>
	 * ※null／空文字の場合もtrueを返却する。<br>
	 * @param moji チェックする文字列データ
	 * @return boolean チェック結果（OK：true／NG：false） 
	 */
	public static boolean isHannkakuESuuji10(String moji)
	{
		return JBSbatCheckUtil.invoke(moji ,new String[]{"hannkakuesuuji10"});
	}
	
	/**
	 * E-mail4チェックを行います。
	 * 【パソコン E-mail用】
	 * 下記全てが満たされた場合のみ真を返却する。
	 * @全体
	 * ・必ずひとつの「@」を含む(「@」が複数含むものはNG)
	 * ・文字列の先頭と末尾が「@」でない
	 * ・半角英字は「小文字」のみOK
	 * Aアカウント部
	 * ・文字列の先頭/末尾がピリオドでない
	 * ・半角英数字、半角記号([-][_][.])のみOK
	 * Bドメイン部
	 * ・文字列の先頭、末尾がピリオドでない
	 * ・連続したピリオドを含まない
	 * ・半角英数字、半角記号(※)のみOK
	 * ※ 「"」、「,」、「:」、「;」、「<」、「>」、「@」、「[」、「]」、「 」(半角スペース)は禁止
	 * <br>
	 * @param moji チェック対象の文字列
	 * @return チェック結果
	 */
	public static boolean isEMail4(String moji)
	{
		return JBSbatCheckUtil.invoke(moji ,new String[]{"e-mail4"});
	}
	
	/**
	 * メールアカウント2チェックを行います。
	 * （メールアカウント1で連続ピリオドを許容した属性）
	 * <br>
	 * @param value チェック対象の文字列
	 * @return チェック結果
	 */
	public static boolean isMailAccount2(String moji)
	{
		return JBSbatCheckUtil.invoke(moji ,new String[]{"mailaccount2"});
	}
	
	/**
	 * E-mail5チェックを行います。
	 * 【パソコン E-mail用】
	 * 下記全てが満たされた場合のみ真を返却する。
	 * @全体
	 * ・必ずひとつの「@」を含む(「@」が複数含むものはNG)
	 * ・文字列の先頭と末尾が「@」でない
	 * ・半角英字は「小文字」のみOK
	 * Aアカウント部
	 * ・文字列の先頭/末尾がピリオドでない
	 * ・連続したピリオドを含まない
	 * ・半角英数字、半角記号([-][_][.])のみOK
	 * Bドメイン部
	 * ・文字列の先頭、末尾がピリオドでない
	 * ・連続したピリオドを含まない
	 * ・半角英数字、半角記号(※)のみOK
	 * ※ 「"」、「,」、「:」、「;」、「<」、「>」、「@」、「[」、「]」、「 」(半角スペース)は禁止
	 * <br>
	 * @param value チェック対象の文字列
	 * @return チェック結果
	 */	
	public static boolean isEMail5(String moji)
	{
		return JBSbatCheckUtil.invoke(moji ,new String[]{"e-mail5"});
	}
	
	// 2015/07/27 半角英数字11チェック追加 START
	/**
	 * 半角英数字11のチェックを行います。<br>
	 * 半角英数字、半角記号("-"、"."、"@"、"_")のみ真を返却する。<br>
	 * ※1byteコード:-[2D]、.[2E]、0[30]〜9[39]、@[40]、A[41]〜Z[5A]、_[5F]、a[61]〜z[7A]<br>
	 * ※半角英数字、半角記号([-][.][@][_])のみOK<br>
	 * @param moji チェックする文字列データ
	 * @return チェック結果（OK：true／NG：false） 
	 */
	public static boolean isHannkakuESuuji11(String moji)
	{
		return JBSbatCheckUtil.invoke(moji ,new String[]{"hannkakuesuuji11"});
	}
	// 2015/07/27 半角英数字11チェック追加 END
	
	/**
	 * ファイルをZip形式で圧縮します。<br>
	 * 圧縮処理が正常に行われた場合、圧縮ファイルのファイル名込みの絶対パスを<br>
	 * String型で返却します。<br>
	 * @param filePath 圧縮前ファイルの絶対パス
	 * @param outDirPath 圧縮ファイル格納先作業ディレクトリの絶対パス
	 * @param compLevel 圧縮レベル<br>
	 * @return String 生成した圧縮ファイルの絶対パス
	 * @throws JCCbatFrameworkException
	 */
	public static String compressFile(String filePath, String outDirPath, String compLevel)
	{
		try
		{
			return JCCCompressFileUtil.compressFile(filePath, outDirPath, "", "0", compLevel);
		}
		catch(Throwable th)
		{
			throw makeJCCbatFrameworkException(th);
		}
	}
	
	/**
	 * Zip形式のファイルで解凍します。<br>
	 * 解凍処理が正常に行われた場合、解凍ファイルのファイル名込みの絶対パスを<br>
	 * String型で返却します。<br>
	 * @param filePath 解凍前ファイルの絶対パス
	 * @param outDirPath 解凍ファイル格納先作業ディレクトリの絶対パス
	 * @return String 解凍後ファイルの絶対パス
	 * @throws JCCbatFrameworkException
	 */
	public static String unCompressFile(String filePath,String outDirPath)
	{
		try
		{
			return JCCUnCompressFileUtil.uncompressFile(filePath, outDirPath, "");
		}
		catch(Throwable th)
		{
			throw makeJCCbatFrameworkException(th);
		}
	}

	/**
	 * バッチプログラムから、invokeServiceを呼び出します。
	 * 
	 * @param commonItem 業務共通電文クラス
	 * @param paramMap ユースケースIDを格納したマップ
	 * @param inputMap サービスに渡す業務データを格納したマップ
	 * @param outputMap サービスの処理結果を受け取るマップ
	 */
	public static void invokeService( JBSbatCommonItem commonItem, HashMap paramMap, HashMap inputMap, HashMap outputMap ) {
		JCCBatchEsbInterface.invokeService(commonItem, paramMap, inputMap, outputMap);
	}

	
	/**
	 * 
	 * サービスの処理結果を格納したマップからリターンコードを取得します。
	 * 
	 * @param outputMap サービスの処理結果を格納したマップ
	 * @return リターンコード
	 */
	public static String getReturnCode( HashMap outputMap ) {
		return JCCBatchEsbInterface.getReturnCode(outputMap);
	}

	/**
	 * JCCbatFrameworkExceptionオブジェクト生成処理です。
	 * ThrowableオブジェクトをJCCbatFrameworkExceptionオブジェクトに保持して返却します。
	 * ThrowableオブジェクトがJCCbatFrameworkExceptionオブジェクトの場合は、そのまま返却します。
	 * @param th Throwableオブジェクト
	 * @return JCCbatFrameworkExceptionオブジェクト
	 */
	private static JCCbatFrameworkException makeJCCbatFrameworkException(Throwable th)
	{	
		if (th instanceof JCCbatFrameworkException)
		{	
			return (JCCbatFrameworkException)th;
		}
		JCCbatFrameworkException fwe = new JCCbatFrameworkException();
		fwe.initCause(th);
		return fwe;
	}
	
	/**
	 * ファイル出力制御クラスのインスタンスを生成して返却する。
	 * 本メソッドはファイル出力メソッドを呼び出す前に初期処理で実行する。
	 * @param file　出力先ファイル（フルパス）
	 * @param encode　文字コード（ＯＳ準拠の場合は""（空）を指定）
	 * @param linefeed　改行コード（ＯＳ準拠の場合は""（空）を指定）
	 * @param quote　区切り文字（固定長の場合は""（空）を指定）
	 * @throws Exception
	 */
	public static JBSbatBusinessFileUtil createBusinessFileUtil(String file, String encode, String linefeed, String quote) throws Exception {
		return new JBSbatBusinessFileUtil(file, encode, linefeed, quote);
	}

	/**
	 * 固定長のファイル出力処理を行う。
	 * 
	 * @param obj	ファイル出力制御クラスインスタンス(createBusinessFileUtilで取得したオブジェクト)
	 * @param data	ファイルに出力する内容（１レコード）
	 * @throws Exception
	 */
	public static void printBusinessFileUtil(JBSbatBusinessFileUtil obj, String data) throws Exception {
		obj.print(data);
	}
	
	/**
	 * 可変長のファイル出力処理を行う。
	 * @param obj	ファイル出力制御クラスインスタンス(createBusinessFileUtilで取得したオブジェクト)
	 * @param list	ファイルに出力する内容（１レコード）
	 * @throws Exception
	 */
	public static void printBusinessFileUtil(JBSbatBusinessFileUtil obj, ArrayList list) throws Exception {
		obj.print(list);
	}

	/**
	 * 可変長のファイル出力処理を行う。
	 * データ部分をダブルコーテーションで括って出力する。
	 * @param obj	ファイル出力制御クラスインスタンス(createBusinessFileUtilで取得したオブジェクト)
	 * @param list	ファイルに出力する内容（１レコード）
	 * @throws Exception
	 */
	public static void printDoubleQuoteBusinessFileUtil(JBSbatBusinessFileUtil obj, ArrayList list) throws Exception {
		obj.printDoubleQuote(list);
	}

	/**
	 * ファイル出力制御クラスのファイル書込みオブジェクトをクローズする。
	 * 本メソッドは全てのデータのファイル出力完了後に終了処理で実行する。
	 * @param obj	ファイル出力制御クラスインスタンス
	 * @throws Exception
	 */
	public static void closeBusinessFileUtil(JBSbatBusinessFileUtil obj) throws Exception{
		obj.close();
	}
	
	/**
	 * 外部コマンド同期実行処理です。<br>
	 * コマンドまたはコマンドとパラメータを含む文字列を受け取り、<br>
	 * 同期モードでコマンドを実行し、コマンドの標準出力結果を返します。<br>
	 * <PRE>コマンドライン引数の配列には以下のように格納します。
	 * 配列先頭をコマンド、配列2番目以降で"-"が付いている場合オプション、付いていない場合は引数と判断します。
	 * コマンド及び引数にパスを設定する場合は、ルートディレクトリからの絶対パスで設定してください。
	 * (例)
	 * args[0] = "/usr/bin/find";                    // システムコマンド
	 * args[1] = "/etc";                             // 引数１
	 * args[2] = "-type";                            // オプション１
	 * args[3] = "f";                                // 引数２
	 * args[4] = "-and";                             // オプション２
	 * args[5] = "-name";                            // オプション３
	 * args[6] = "20110627120000.log";               // 引数３
	 * args[7] = "-print";                           // オプション４
	 * </PRE>
	 * @param arg0       コマンドライン引数
	 * @param arg1       標準出力結果格納用引数。コマンド実行結果は、JCCBatCommon.LINE_SEPARATORで
	 *                    1行ずつ取得可能です。
	 * @param arg2       タイムアウト時間（秒）。0を指定するとフレームワークのタイムアウト上限時間で
	 *                    タイムアウトします。またタイムアウト時間を指定した場合でも、フレームワーク
	 *                    の上限を超過したら強制的にタイムアウトします。
	 * @return 結果コード（コマンド実行のリターンコード "0":正常終了、"0"以外：エラー）
	 * @exception JCCFrameworkExceptionがスローされます。
	 *      getResult()で取得した値が"100"であった場合、メモリ空き容量が不足したことを示します。
	 *      getResult()で取得した値が"200"であった場合、コマンド実行がタイムアウトしたことを示します。
	 */
	public static String execSync(String[] arg0, StringBuffer arg1, int arg2)
	{
		// コマンド実行部品呼び出し
		return execSync(arg0, arg1, arg2, "");
	}
	
	/**
	 * 外部コマンド同期実行処理です。<br>
	 * コマンドまたはコマンドとパラメータを含む文字列を受け取り、<br>
	 * 同期モードでコマンドを実行し、コマンドの標準出力結果を返します。<br>
	 * アプリケーションプロパティファイルに、ジョブIDがKEYに含まれる
	 * 許可リストを設定していた場合、アクセス禁止ディレクトリ・禁止コマンドパス・
	 * 禁止引数リストの対象外となります。<br>
	 * (例)<br>
	 * 禁止コマンドリストが以下のように設定されていた場合、<br>
	 *     EXEC_PROHIBIT_CMD=/bin/usr/su;/bin/usr/ssh<br>
	 * アプリケーションプロパティファイルに以下の形式で許可したいコマンドを設定し
	 * 当部品を呼び出すことで実行可能となります。<br>
	 *     EXEC_PERMIT_CMD_(ジョブID)=/bin/usr/ssh
	 * <PRE>コマンドライン引数の配列には以下のように格納します。
	 * 配列先頭をコマンド、配列2番目以降で"-"が付いている場合オプション、付いていない場合は引数と判断します。
	 * コマンド及び引数にパスを設定する場合は、ルートディレクトリからの絶対パスで設定してください。
	 * (例)
	 * args[0] = "/usr/bin/find";                    // システムコマンド
	 * args[1] = "/etc";                             // 引数１
	 * args[2] = "-type";                            // オプション１
	 * args[3] = "f";                                // 引数２
	 * args[4] = "-and";                             // オプション２
	 * args[5] = "-name";                            // オプション３
	 * args[6] = "20110627120000.log";               // 引数３
	 * args[7] = "-print";                           // オプション４
	 * </PRE>
	 * @param arg0       コマンドライン引数
	 * @param arg1       標準出力結果格納用引数。コマンド実行結果は、JCCBatCommon.LINE_SEPARATORで
	 *                    1行ずつ取得可能です。
	 * @param arg2       タイムアウト時間（秒）。0を指定するとフレームワークのタイムアウト上限時間で
	 *                    タイムアウトします。またタイムアウト時間を指定した場合でも、フレームワーク
	 *                    の上限を超過したら強制的にタイムアウトします。
	 * @param arg3       ジョブID
	 * @return 結果コード（コマンド実行のリターンコード "0":正常終了、"0"以外：エラー）
	 * @exception JCCFrameworkExceptionがスローされます。
	 *      getResult()で取得した値が"100"であった場合、メモリ空き容量が不足したことを示します。
	 *      getResult()で取得した値が"200"であった場合、コマンド実行がタイムアウトしたことを示します。
	 */
	public static String execSync(String[] arg0, StringBuffer arg1, int arg2, String arg3)
	{
		/*************************
		/ パラメータチェック処理
		**************************/
		
		// コマンドがnull、または要素数0の場合
		if(null == arg0 || 0 == arg0.length)
		{
			throw new JCCFrameworkException("コマンドがnullもしくは要素数０です。");
		}
		
		// コマンドにnullの要素が含まれている場合
		for(int i=0; i < arg0.length; i++){
			if(null == arg0[i] || "".equals(arg0[i])){
				throw new JCCFrameworkException("コマンドにnullの要素が含まれています。");
			}
		}
		
		// コマンド実行タイムアウト時間が0より小さい場合
		if(arg2 < 0)
		{
			throw new JCCFrameworkException("コマンド実行タイムアウト時間が0より小さい値です。");
		}
		
		// ジョブIDがnullの場合
		if(null == arg3)
		{
			// 空白を設定
			arg3 = "";
		}
		
		
		/****************************************
		/ アプリケーションプロパティ取得処理
		*****************************************/
		
		// アプリケーションプロパティMap生成
		HashMap<String, Object> propMap = new HashMap<String, Object>();
		
		// コマンド実行クラスのインスタンス生成
		JCCComExecUtil execCmd = new JCCComExecUtil();
		
		//*** アクセスを禁止するディレクトリのリスト ***//
		getAPLPropForExec(propMap, execCmd.EXEC_ACCESS_PROHIBIT_DIR);
		
		//*** 例外的に許可するディレクトリのリストとその実行を許可するID ***//
		getAPLPropForExec(propMap, execCmd.EXEC_ACCESS_PERMIT_DIR, arg3);
		
		//*** 禁止するコマンドパスのリスト ***//
		getAPLPropForExec(propMap, execCmd.EXEC_PROHIBIT_CMD);
		
		//*** 例外的に許可するディレクトリのリストとその実行を許可するID ***//
		getAPLPropForExec(propMap, execCmd.EXEC_PERMIT_CMD, arg3);
		
		//*** 禁止する引数のリスト ***//
		getAPLPropForExec(propMap, execCmd.EXEC_PROHIBIT_ARGS);
		
		//*** 例外的に許可する引数のリストとその実行を許可するID ***//
		getAPLPropForExec(propMap, execCmd.EXEC_PERMIT_ARGS, arg3);
		
		//*** 処理結果詳細Buffサイズの最大値 ***//
		propMap.put(execCmd.EXEC_BUFF_SIZE, getApplicationConst(execCmd.EXEC_BUFF_SIZE));
		
		//*** コマンドの実行を許可するシステムの空きメモリサイズ(MB) ***//
		propMap.put(execCmd.EXEC_PERMIT_MEMORY, getApplicationConst(execCmd.EXEC_PERMIT_MEMORY));
		
//Windows対応　2011/08/11 FST)fujita　start
		//*** Windows使用許可設定 ***//
		propMap.put(execCmd.EXEC_WINDOWS_PERMIT_FLG, getApplicationConst(execCmd.EXEC_WINDOWS_PERMIT_FLG));
//Windows対応　2011/08/11 FST)fujita　end
		
		/****************************************
		/ コマンド実行部品呼び出し処理
		*****************************************/
		
		// コマンドの実行
		return execCmd.exec(arg0, true, arg2, "", propMap, arg1);
	}
	
	/**
	 * 外部コマンド非同期実行処理です。<br>
	 * コマンドまたはコマンドとパラメータを含む文字列を受け取り、<br>
	 * 非同期モードでコマンドを実行し、コマンドの標準出力結果を返します。<br>
	 * <PRE>コマンドライン引数の配列には以下のように格納します。
	 * 配列先頭をコマンド、配列2番目以降で"-"が付いている場合オプション、付いていない場合は引数と判断します。
	 * コマンド及び引数にパスを設定する場合は、ルートディレクトリからの絶対パスで設定してください。
	 * (例)
	 * args[0] = "/usr/bin/find";                    // システムコマンド
	 * args[1] = "/etc";                             // 引数１
	 * args[2] = "-type";                            // オプション１
	 * args[3] = "f";                                // 引数２
	 * args[4] = "-and";                             // オプション２
	 * args[5] = "-name";                            // オプション３
	 * args[6] = "20110627120000.log";               // 引数３
	 * args[7] = "-print";                           // オプション４
	 * </PRE>
	 * @param arg0       コマンドライン引数
	 * @exception JCCFrameworkExceptionがスローされます。
	 *      getResult()で取得した値が"100"であった場合、メモリ空き容量が不足したことを示します。
	 */
	public static void execAsync(String[] arg0)
	{
		// コマンド実行部品呼び出し
		execAsync(arg0, "", "");
	}
	
	/**
	 * 外部コマンド非同期実行処理です。<br>
	 * コマンドまたはコマンドとパラメータを含む文字列を受け取り、<br>
	 * 非同期モードでコマンドを実行し、コマンドの標準出力結果を返します。<br>
	 * 外部コマンド実行結果は業務ログへ出力します。<br>
	 * アプリケーションプロパティファイルに、ジョブIDがKEYに含まれる
	 * 許可リストを設定していた場合、アクセス禁止ディレクトリ・禁止コマンドパス・
	 * 禁止引数リストの対象外となります。<br>
	 * <PRE>(例)
	 * 禁止コマンドリストが以下のように設定されていた場合、<br>
	 *     EXEC_PROHIBIT_CMD=/bin/usr/su;/bin/usr/ssh<br>
	 * アプリケーションプロパティファイルに以下の形式で許可したいコマンドを設定し
	 * 当部品を呼び出すことで実行可能となります。<br>
	 *     EXEC_PERMIT_CMD_(ジョブID)=/bin/usr/ssh
	 * <PRE>コマンドライン引数の配列には以下のように格納します。
	 * 配列先頭をコマンド、配列2番目以降で"-"が付いている場合オプション、付いていない場合は引数と判断します。
	 * コマンド及び引数にパスを設定する場合は、ルートディレクトリからの絶対パスで設定してください。
	 * (例)
	 * args[0] = "/usr/bin/find";                    // システムコマンド
	 * args[1] = "/etc";                             // 引数１
	 * args[2] = "-type";                            // オプション１
	 * args[3] = "f";                                // 引数２
	 * args[4] = "-and";                             // オプション２
	 * args[5] = "-name";                            // オプション３
	 * args[6] = "20110627120000.log";               // 引数３
	 * args[7] = "-print";                           // オプション４
	 * </PRE>
	 * @param arg0       コマンドライン引数
	 * @param arg1       ジョブID
	 * @param arg2       標準出力結果格納用ログファイルパス
	 * @exception JCCFrameworkExceptionがスローされます。
	 *      getResult()で取得した値が"100"であった場合、メモリ空き容量が不足したことを示します。
	 */
	public static void execAsync(String[] arg0, String arg1, String arg2)
	{
		/*************************
		/ パラメータチェック処理
		**************************/
		
		// コマンドがnull、または要素数0の場合
		if(null == arg0 || 0 == arg0.length)
		{
			throw new JCCFrameworkException("コマンドがnullもしくは要素数０です。");
		}
		
		// コマンドにnullの要素が含まれている場合
		for(int i=0; i < arg0.length; i++){
			if(null == arg0[i] || "".equals(arg0[i])){
				throw new JCCFrameworkException("コマンドにnullの要素が含まれています。");
			}
		}
		
		// ジョブIDがnullの場合
		if(null == arg1)
		{
			// 空白を設定
			arg1 = "";
		}
		
		// ログファイルパスがnullの場合
		if(null == arg2)
		{
			// 空白を設定
			arg2 = "";
		}
		
		
		// 共通部品へ渡す標準出力結果格納用引数（未使用）
		StringBuffer buf = new StringBuffer();
		
		/****************************************
		/ アプリケーションプロパティ取得処理
		*****************************************/
		
		// アプリケーションプロパティMap生成
		HashMap<String, Object> propMap = new HashMap<String, Object>();
		
		// コマンド実行クラスのインスタンス生成
		JCCComExecUtil execCmd = new JCCComExecUtil();
		
		//*** アクセスを禁止するディレクトリのリスト ***//
		getAPLPropForExec(propMap, execCmd.EXEC_ACCESS_PROHIBIT_DIR);
		
		//*** 例外的に許可するディレクトリのリストとその実行を許可するID ***//
		getAPLPropForExec(propMap, execCmd.EXEC_ACCESS_PERMIT_DIR, arg1);
		
		//*** 禁止するコマンドパスのリスト ***//
		getAPLPropForExec(propMap, execCmd.EXEC_PROHIBIT_CMD);
		
		//*** 例外的に許可するディレクトリのリストとその実行を許可するID ***//
		getAPLPropForExec(propMap, execCmd.EXEC_PERMIT_CMD, arg1);
		
		//*** 禁止する引数のリスト ***//
		getAPLPropForExec(propMap, execCmd.EXEC_PROHIBIT_ARGS);
		
		//*** 例外的に許可する引数のリストとその実行を許可するID ***//
		getAPLPropForExec(propMap, execCmd.EXEC_PERMIT_ARGS, arg1);
		
		//*** 処理結果詳細Buffサイズの最大値 ***//
		propMap.put(execCmd.EXEC_BUFF_SIZE, getApplicationConst(execCmd.EXEC_BUFF_SIZE));
		
		//*** コマンドの実行を許可するシステムの空きメモリサイズ(MB) ***//
		propMap.put(execCmd.EXEC_PERMIT_MEMORY, getApplicationConst(execCmd.EXEC_PERMIT_MEMORY));
		
//Windows対応　2011/08/11 FST)fujita　start
		//*** Windows使用許可設定 ***//
		propMap.put(execCmd.EXEC_WINDOWS_PERMIT_FLG, getApplicationConst(execCmd.EXEC_WINDOWS_PERMIT_FLG));
//Windows対応　2011/08/11 FST)fujita　end
		
		/****************************************
		/ コマンド実行部品呼び出し処理
		*****************************************/
		
		// コマンドの実行
		execCmd.exec(arg0, false, 0, arg2, propMap, buf);
	}
	
	/**
	 * コマンド実行処理用アプリケーションプロパティ読み込み処理です。<br>
	 * アプリケーションプロパティの読み込みを行います。<br>
	 * 
	 * @param arg0 アプリケーションプロパティ情報格納用マップ
	 * @param arg1 検索KEY
	 * @return void 
	 */
	public static void getAPLPropForExec(HashMap<String, Object> arg0, String arg1)
	{	
		final String SEPARATER = ";";
		
		ArrayList<String> alList = new ArrayList<String>();
		String[] prmList = {};
		String prmStr = getApplicationConst(arg1);
		
		// セミコロンを区切り文字に分解
		if(null != prmStr){
			prmList = prmStr.split(SEPARATER);
		}
		if(null != prmList){
			// パラメータをリストへ格納
			for(int i=0; i < prmList.length; i++){
				alList.add(prmList[i]);
			}
		}
		// Mapへ格納
		arg0.put(arg1, alList);
	}
	
	/**
	 * コマンド実行処理用アプリケーションプロパティ読み込み処理です。<br>
	 * アプリケーションプロパティの読み込みを行います。<br>
	 * 
	 * @param arg0 アプリケーションプロパティ情報格納用マップ
	 * @param arg1 検索KEY
	 * @param arg2 識別ID
	 * @return void 
	 */
	public static void getAPLPropForExec(HashMap<String, Object> arg0, String arg1, String arg2)
	{	
		final String SEPARATER = ";";
		
		ArrayList<String> alList = new ArrayList<String>();
		String[] prmtList = {};
		String prmStr = "";
		
		// KEYに呼び出し元の識別子を付与して検索
		prmStr = getApplicationConst(arg1 + "_" + arg2);
		// レコード設定されている場合
		if(null != prmStr){
			prmtList = prmStr.split(SEPARATER);
		}
		// 値が設定されている場合
		if(null != prmtList && 0 != prmtList.length){
			for(int i=0; i < prmtList.length; i++){
				// パラメータをリストへ追加
				alList.add(prmtList[i]);
			}
			// Mapへ格納
			arg0.put(arg1, alList);
		}
	}
	
	/**
	 * ルールID、モードタイプ【単一条件】を引数に、createSokanRuleEngine(String, int)を呼び出して
	 * 相関チェック用ルールエンジンのハンドラクラスオブジェクトを生成します。
	 * <br>
	 * @param ruleId 相関チェックしたいXMLのルールID（XMLファイル名）
	 * @return createSokanRuleEngine 相関チェックルールエンジン用ハンドラクラスオブジェクト
	 */
	public static JRuleXMLHandler createSokanRuleEngine(String ruleId)
	{
		try
		{
			return createSokanRuleEngine(ruleId, JRuleXMLPattern.SINGLE_MODE_TYPE);
		}
		catch(Throwable th)
		{
			throw makeJCCbatFrameworkException(th);
		}
	}

	/**
	 * ルール定義パス、ルールID、モードタイプ【単一条件/複数条件】を引数に、JRuleXMLHandler(String, String, int)
	 * を呼び出して相関チェック用ルールエンジンのハンドラクラスオブジェクトを生成します。
	 * <br>
	 * @param ruleId 相関チェックしたいXMLのルールID
	 * @param modeType モードタイプ SINGLE_MODE_TYPE【単一条件】/MULTI_MODE_TYPE【複数条件】
	 * @return JRuleXMLHandler 相関チェックルールエンジン用ハンドラクラスオブジェクト
	 */
	public static JRuleXMLHandler createSokanRuleEngine(String ruleId, int modeType)
	{
		try
		{
			return new JRuleXMLHandler(path, ruleId, modeType);
		}
		catch(Throwable th)
		{
			throw makeJCCbatFrameworkException(th);
		}
	}

	/**
	 * ルールID、比較元CAANMsg[]、モードタイプ【単一条件】を引数に、 createSokanRuleEngine(String, CAANMsg[], int)
	 * を呼び出して相関チェック用ルールエンジンのハンドラクラスオブジェクトを生成します。
	 * <br>
	 * @param ruleId 相関チェックしたいXMLのルールID（XMLファイル名）
	 * @param orgModel 相関チェックする比較元となるCAANMsg[]
	 * @return createSokanRuleEngine 相関チェックルールエンジン用ハンドラクラスオブジェクト
	 */
	public static JRuleXMLHandler createSokanRuleEngine(String ruleId, CAANMsg[] orgModel)
	{		
		try
		{
			return createSokanRuleEngine(ruleId, orgModel, JRuleXMLPattern.SINGLE_MODE_TYPE);
		}
		catch(Throwable th)
		{
			throw makeJCCbatFrameworkException(th);
		}
	}

	/**
	 * ルール定義パス、ルールID、比較元CAANMsg[]、モードタイプ【単一条件/複数条件】を引数に、
	 * JRuleXMLHandler(String, String, CAANMsg[], int)相関チェック用ルールエンジンのハンドラクラスオブジェクトを生成します。
	 * <br>
	 * @param ruleId 相関チェックしたいXMLのルールID
	 * @param orgModel 相関チェックする比較元となるCAANMsg[]
	 * @param modeType モードタイプ SINGLE_MODE_TYPE【単一条件】/MULTI_MODE_TYPE【複数条件】
	 * @return JRuleXMLHandler 相関チェックルールエンジン用ハンドラクラスオブジェクト
	 */
	public static JRuleXMLHandler createSokanRuleEngine(String ruleId, CAANMsg[] orgModel, int modeType)
	{		
		try
		{
			return new JRuleXMLHandler(path, ruleId, orgModel, modeType);
		}
		catch(Throwable th)
		{
			throw makeJCCbatFrameworkException(th);
		}
	}

	/**
	 * ルールID、比較元CAANMsg[]、比較先CAANMsg[]、比較元と比較先CAANMsg[]入れ替えフラグ、モードタイプ【単一条件】を引数に、
	 * createSokanRuleEngine(String, CAANMsg[], CAANMsg[], boolean, int)を呼び出して
	 * 相関チェック用ルールエンジンのハンドラクラスオブジェクトを生成します。
	 * <br>
	 * @param ruleId 相関チェックしたいXMLのルールID（XMLファイル名）
	 * @param orgModel 相関チェックする比較元となるCAANMsg[]
	 * @param refModel 相関チェックする比較先となるCAANMsg[]
	 * @param compareFlg 比較元と比較先のCAANMsg[]を入れ替えるか判定するフラグ
	 * @return JRuleXMLHandler 相関チェックルールエンジン用ハンドラクラスオブジェクト
	 */
	public static JRuleXMLHandler createSokanRuleEngine(
			String ruleId, CAANMsg[] orgModel, CAANMsg[] refModel, boolean compareFlg)
	{
		try
		{
			return createSokanRuleEngine(ruleId, orgModel, refModel, compareFlg, JRuleXMLPattern.SINGLE_MODE_TYPE);
		}
		catch(Throwable th)
		{
			throw makeJCCbatFrameworkException(th);
		}
	}

	/**
	 * ルール定義パス、ルールID、比較元CAANMsg[]、比較先CAANMsg[]、比較元と比較先CAANMsg[]入れ替えフラグ、
	 * モードタイプ【単一条件/複数条件】を引数に、JRuleXMLHandler(String, String, CAANMsg[], CAANMsg[], boolean, int)を呼び出して
	 * 相関チェック用ルールエンジンのハンドラクラスオブジェクトを生成します。
	 * <br>
	 * @param ruleId 相関チェックしたいXMLのルールID（XMLファイル名）
	 * @param orgModel 相関チェックする比較元となるCAANMsg[]
	 * @param refModel 相関チェックする比較先となるCAANMsg[]
	 * @param compareFlg 比較元と比較先のCAANMsg[]を入れ替えるか判定するフラグ
	 * @param modeType モードタイプ SINGLE_MODE_TYPE【単一条件】/MULTI_MODE_TYPE【複数条件】
	 * @return JRuleXMLHandler 相関チェックルールエンジン用ハンドラクラスオブジェクト
	 */
	public static JRuleXMLHandler createSokanRuleEngine(
			String ruleId, CAANMsg[] orgModel, CAANMsg[] refModel, boolean compareFlg, int modeType)
	{
		try
		{
			return new JRuleXMLHandler(path, ruleId, orgModel, refModel, compareFlg, modeType);
		}
		catch(Throwable th)
		{
			throw makeJCCbatFrameworkException(th);
		}
	}
	
	/**
	 * XMLパターン判定を行い、判定結果の選択値リストを返却します。
	 * <p>
	 * <b>処理フロー</b><br>
	 * <pre>
	 * 1.保持しているXMLパターンリスト数分のXMLパターン判定を実行し、結果リスト取得します。<br>
	 * 2.実行結果リストに結果をセット（相関チェックCAANMsgリスト数分の要素を作る）します。<br>
	 * 3.実行結果がNULLの場合はリストにNULLをセットします。<br>
	 * </pre>
	 * <p>
	 * @param xmlHandler 相関チェックルールエンジン用ハンドラクラスオブジェクト
	 * @return 判定結果の選択値リスト
	 */
	public static ArrayList<ArrayList<HashMap<String, Object>>> getCheckResultArray(JRuleXMLHandler xmlHandler)
	{
		try
		{
			return xmlHandler.getCheckResultArray();
		}
		catch(Throwable th)
		{
			throw makeJCCbatFrameworkException(th);
		}
	}
	
	/**
	 * 指定されたマップ内の項目を基にXMLパターン判定を行い、判定結果の選択値リストを返却します。
	 * <p>
	 * <b>処理フロー</b><br>
	 * <pre>
	 * 1.保持しているXMLパターンリスト数分のXMLパターン判定を実行し、結果リスト取得します。<br>
	 * 2.実行結果リストに結果をセット（相関チェックCAANMsgリスト数分の要素を作る）します。<br>
	 * 3.実行結果がNULLの場合はリストにNULLをセットします。<br>
	 * </pre>
	 * <p>
	 * @param xmlHandler 相関チェックルールエンジン用ハンドラクラスオブジェクト
	 * @param map ユーザマップ
	 * @return 判定結果の選択値リスト
	 */
	public static ArrayList<ArrayList<HashMap<String, Object>>> getCheckResultArray(JRuleXMLHandler xmlHandler, HashMap<String , Object> map)
	{
		try
		{
			return xmlHandler.getCheckResultArray(map);
		}
		catch(Throwable th)
		{
			throw makeJCCbatFrameworkException(th);
		}
	}
	
	/**
	 * XMLパターン判定処理を行い、判定結果の選択値リストが存在するかどうかを返却します。
	 * <p>
	 * <b>処理フロー</b><br>
	 * <pre>
	 * 1.XMLパターン判定が行われていない場合は、XMLパターン判定実行、結果リスト取得しリスト化します。<br>
	 * 2.結果リストにひとつでもnullまたはfalseの要素が存在するデータがある場合false、そうでない場合はtrueを返却します。<br>
	 * </pre>
	 * <p>
	 * @param xmlHandler 相関チェックルールエンジン用ハンドラクラスオブジェクト
	 * @return 結果リストにひとつでもnullまたはfalseの要素が存在するデータがある場合false、そうでない場合はtrue
	 */
	public static boolean isExists(JRuleXMLHandler xmlHandler)
	{
		try
		{
			return xmlHandler.isExists();
		}
		catch(Throwable th)
		{
			throw makeJCCbatFrameworkException(th);
		}
	}
	
	/**
	 * 指定されたマップ内の項目を基にXMLパターン判定処理を行い、判定結果の選択値リストが存在するかどうかを返却します。
	 * <p>
	 * <b>処理フロー</b><br>
	 * <pre>
	 * 1.XMLパターン判定が行われていない場合は、XMLパターン判定実行、結果リスト取得しリスト化します。<br>
	 * 2.結果リストにひとつでもnullまたはfalseの要素が存在するデータがある場合false、そうでない場合はtrueを返却します。<br>
	 * </pre>
	 * <p>
	 * @param xmlHandler 相関チェックルールエンジン用ハンドラクラスオブジェクト
	 * @param map ユーザマップ
	 * @return 結果リストにひとつでもnullまたはfalseの要素が存在するデータがある場合false、そうでない場合はtrue
	 */
	public static boolean isExists(JRuleXMLHandler xmlHandler, HashMap<String , Object> map)
	{
		try
		{
			return xmlHandler.isExists(map);
		}
		catch(Throwable th)
		{
			throw makeJCCbatFrameworkException(th);
		}
	}
	
	/**
	 * XMLパターン判定処理を行い、判定結果の選択値リストが存在するかどうかをリストで返却します。
	 * <p>
	 * <b>処理フロー</b><br>
	 * <pre>
	 * 1.XMLパターン判定が行われていない場合は、XMLパターン判定実行、結果リスト取得しリスト化します。<br>
	 * 2.選択リストの属性にreturntypeがあり、かつ、値がfalseの場合はチェック結果をfalseにします。<br>
	 *   false以外、またはreturntype属性が存在しない場合はチェック結果をtrueにします。<br>
	 *   値がnullの場合はチェック結果をnullにします。<br>
	 * </pre>
	 * <p>
	 * @param xmlHandler 相関チェックルールエンジン用ハンドラクラスオブジェクト
	 * @return 選択リスト分のリスト
	 */
	public static ArrayList getIsExistsList(JRuleXMLHandler xmlHandler)
	{
		try
		{
			return xmlHandler.getIsExistsList();
		}
		catch(Throwable th)
		{
			throw makeJCCbatFrameworkException(th);
		}
	}
	
	/**
	 * 指定されたマップ内の項目を基にXMLパターン判定処理を行い、判定結果の選択値リストが存在するかどうかをリストで返却します。
	 * <p>
	 * <b>処理フロー</b><br>
	 * <pre>
	 * 1.XMLパターン判定が行われていない場合は、XMLパターン判定実行、結果リスト取得しリスト化します。<br>
	 * 2.選択リストの属性にreturntypeがあり、かつ、値がfalseの場合はチェック結果をfalseにします。<br>
	 *   false以外、またはreturntype属性が存在しない場合はチェック結果をtrueにします。<br>
	 *   値がnullの場合はチェック結果をnullにします。<br>
	 * </pre>
	 * <p>
	 * @param xmlHandler 相関チェックルールエンジン用ハンドラクラスオブジェクト
	 * @param map ユーザマップ
	 * @return 選択リスト分のリスト
	 */
	public static ArrayList getIsExistsList(JRuleXMLHandler xmlHandler, HashMap<String , Object> map)
	{
		try
		{
			return xmlHandler.getIsExistsList(map);
		}
		catch(Throwable th)
		{
			throw makeJCCbatFrameworkException(th);
		}
	}
	
	/**
	 * 結果リストをクリアします。
	 * 同一ルールを連続して使用する際は本メソッドで結果リストをクリアする必要があります。
	 */
	public static void clearReturnList(JRuleXMLHandler xmlHandler)
	{
		try
		{
			xmlHandler.clearReturnList();
		}
		catch(Throwable th)
		{
			throw makeJCCbatFrameworkException(th);
		}
	}

	/**
	 * 
	 * 指定された文字列にサニタイズ処理を行った文字列を返却します。
	 * 
	 * @param value サニタイズする文字列
	 * @return サニタイズ処理後の文字列
	 */
	public static String escapeString( String value )
	{
		try
		{
			return JCCSanitizingUtil.escapeString(value);
		}
		catch(Throwable th)
		{
			throw makeJCCbatFrameworkException(th);
		}
	}
	
	/**
	 * 
	 * サニタイズ処理が施された文字列を元に戻し、返却します。
	 * 
	 * @param value サニタイズ処理されている文字列
	 * @return サニタイズ処理された文字列を元に戻した文字列
	 */
	public static String reverseEscapeString( String value )
	{
		try
		{
			return JCCSanitizingUtil.reverseEscapeString(value);
		}
		catch(Throwable th)
		{
			throw makeJCCbatFrameworkException(th);
		}
	}
	
	/**
	 * 帳票ファイルのマスキング処理です。<br>
	 * 帳票ファイル（CSV形式）のファイルパスを受け取り、<br>
	 * 帳票マスキング定義ファイルの定義を元にマスクしたファイルを作成しパスを返却します。<br>
	 * <PRE>帳票マスキング定義ファイルへは、以下の形式でマスキング定義を設定してください。
	 * 帳票マスキング定義ファイルの設定
	 * 帳票ID=[カラム番号];[置換え文字]%[表示文字数]
	 * カラム番号：マスクを行いたいCSVのカラム番号を指定してください。番号は0から開始します。
	 * 置換え文字：マスクした際に表示する文字列を指定してください。
	 * 表示文字数：下N桁を残してマスクを行う場合に指定してください。指定文字数分マスキング前の値の末尾を表示します。
	 * (例)
	 * CCLST00101=2;********,3;************%4
	 * 上記設定の場合、以下のようにマスクが行われます。
	 * "00001","井尾太郎","abcdef","1234567890123456"
	 *                    ↓
	 * "00001","井尾太郎","********","************3456"
	 * 
	 * アプリケーションプロパティファイルへは、帳票ファイルの文字コード及び改行コードを設定してください。
	 * (設定例)
	 * 文字コード：CHOHYO_DATA_MOJI_CD=UTF-8　　※必須
	 * 改行コード：CCHOHYO_DATA_KAIGYO_CD=CRLF　※CRLF、LF、空白のいずれかを設定（空白設定時はOS準拠の改行コードを適用）
	 * </PRE>
	 * @param arg0       帳票ID
	 * @param arg1       マスキング対象ファイルパス
	 * @return           マスキング実施後のファイルパス
	 * @exception JCCFrameworkExceptionがスローされます。
	 */
	public static String maskingChyohyoFile(String arg0, String arg1)
	{
		/*************************
		/ パラメータチェック処理
		**************************/
		
		// 帳票IDがnullまたは空白の場合
		if(null == arg0 || "".equals(arg0))
		{
			throw new JCCFrameworkException("帳票IDがnullもしくは空白です。");
		}
		
		// ファイルパスがnullまたは空白の場合
		if(null == arg1 || "".equals(arg1))
		{
			throw new JCCFrameworkException("ファイルパスがnullもしくは空白です。");
		}
		
		
		/*************************
		/ 定義ファイル情報取得
		**************************/
		
		// 帳票マスキング定義ファイルのパスを取得
		String path = getApplicationConst("CHOHYO_MASK_FILE_PATH");
		// 帳票マスキング定義ファイルの文字コードを取得
		String encord = getApplicationConst("CHOHYO_MASK_FILE_ENCODING");
		// 帳票マスキング定義ファイルの文字コードを取得
		String chyohyoEncord = getApplicationConst("CHOHYO_DATA_MOJI_CD");
		// 帳票マスキング定義ファイルの改行コードを取得
		String chyohyoLineSep = getApplicationConst("CHOHYO_DATA_KAIGYO_CD");
		
		// 定義ファイル設定
		JCCChohyoMaskCache.setPath(path, encord);
		
		// 帳票IDをキーに帳票マスキング定義ファイル読み込み
		HashMap<Integer, ArrayList<String>> propMap = JCCChohyoMaskCache.getValue(arg0);
		
		// 帳票マスキング定義未登録時
		if(null == propMap || propMap.keySet().isEmpty())
		{
			// ファイルパスを無編集で返却
			return arg1;
		}
		
		
		/*************************
		/ マスキング処理の実行
		**************************/
		
		// 帳票マスキング部品のインスタンス生成
		JCCChohyoMaskUtil mask = new JCCChohyoMaskUtil();
		
		// マスキング処理呼び出し、結果パスを返却
		return mask.maskingInputFile(arg1, chyohyoEncord, chyohyoLineSep, propMap);
		
	}
//処理ID付与対応　2011/07/31 FST)fujita　start
	/**
	 * 処理ID取得
	 * @return 処理IDを返却します。
	 */
	public static String getTrnId()
	{
		return JCCBatAddTrnId.getTrnId();
	}
//処理ID付与対応　2011/07/31 FST)fujita　end
	
	// 暗号化／復号化対応 2012/01/04 FST start
	/**
	 * 文字列暗号化処理です。入力された文字列を暗号化して結果の文字列を返却します。
	 * (AES256暗号化方式)
	 *
	 * @param commonItem 共通電文
	 * @param inStr 暗号化対象の文字列
	 * @return 暗号化結果の文字列
	 * @throws JCCbatFrameworkException
	 */
	public static String getEncryptResult(JBSbatCommonItem commonItem, Object inStr) throws JCCFrameworkException
	{
		try
		{
			return JCCbatEncryptionUtil.getEncryptResult(commonItem, inStr);
		}
		catch(Throwable th)
		{
			throw makeJCCbatFrameworkException(th);
		}
	}
	
	/**
	 * 文字列復号化処理です。入力された文字列を復号化して結果の文字列を返却します。
	 * (AES256暗号化方式)
	 * 
	 * @param commonItem 共通電文
	 * @param inStr 復号化対象の文字列
	 * @return 復号化結果の文字列
	 * @throws JCCbatFrameworkException
	 */
	public static String getDecryptResult(JBSbatCommonItem commonItem, Object inStr) throws JCCFrameworkException
	{
		try
		{
			return JCCbatEncryptionUtil.getDecryptResult(commonItem, inStr);
		}
		catch(Throwable th)
		{
			throw makeJCCbatFrameworkException(th);
		}
	}
	// 暗号化／復号化対応 2012/01/04 FST end
	
	// パスワード暗号化／復号化対応 2012/02/26 FST start
	/**
	 * 文字列暗号化処理です。入力された文字列を暗号化して結果の文字列を返却します。
	 * (Blowfish暗号化方式)
	 *
	 * @param key 暗号化用キー
	 * @param inStr 暗号化対象の文字列
	 * @return 暗号化結果の文字列
	 * @throws JCCbatFrameworkException
	 */
	public static String getEncryptResultPassword(String inStr) throws JCCFrameworkException
	{
		try
		{
			String key = JCCBatCommon.getApplicationConst("ENCRYPT_KEY");
			if(null == key)
			{
				throw new JCCbatFrameworkException("APLConstに[ENCRYPT_KEY]が指定されていません。");
			}
			return JCCcomEncryptionUtil.encrypt(key, inStr);
		}
		catch(Throwable th)
		{
			throw makeJCCbatFrameworkException(th);
		}
	}
	
	/**
	 * 文字列復号化処理です。入力された文字列を復号化して結果の文字列を返却します。
	 * (Blowfish暗号化方式)
	 * 
	 * @param key 復号化用キー
	 * @param inStr 復号化対象の文字列
	 * @return 復号化結果の文字列
	 * @throws JCCbatFrameworkException
	 */
	public static String getDecryptResultPassword(String inStr) throws JCCFrameworkException
	{
		try
		{
			String key = JCCBatCommon.getApplicationConst("ENCRYPT_KEY");
			if(null == key)
			{
				throw new JCCbatFrameworkException("APLConstに[ENCRYPT_KEY]が指定されていません。");
			}
			return JCCcomEncryptionUtil.decrypt(key, inStr);
		}
		catch(Throwable th)
		{
			throw makeJCCbatFrameworkException(th);
		}
	}
	// 暗号化／復号化対応 2012/02/26 FST end
	
	//2012/05/29 圧縮ファイルアクセッサー追加対応 start
	/**
	 * ファイル圧縮処理です。圧縮対象ファイルフルパスを指定し、圧縮ファイルのbyte配列を返却します。
	 * 
	 * @param filePath 圧縮元ファイルのフルパス
	 * @return 圧縮ファイルのbyte配列
	 * @throws JCCbatFrameworkException
	 */
	public static byte[] createZipFile(String filePath) throws JCCFrameworkException
	{
		byte[] readData = null;
		String outDirPath = null;
		String outTmpPath = null;
		String compLevel = null;
		String zipFilePath = null;
		FileInputStream is = null;
		BufferedInputStream bis = null;
		File fl = null;
		try
		{
			// 圧縮ファイルを一時保存するディレクトリをAPLConstから取得
			outDirPath = getApplicationConst("DIR_COMP_TMP");
			if(null == outDirPath)
			{
				throw new Exception("APLConstに圧縮ファイルを一時保存するディレクトリを設定するキー[DIR_COMP_TMP]が設定されていません。");
			}
			// 圧縮レベルをAPLConstから取得
			compLevel = getApplicationConst("COMP_LEVEL");
			if(null == compLevel)
			{
				throw new Exception("APLConstに圧縮レベルを設定するキー[COMP_LEVEL]が設定されていません。");
			}
			// 一意となるディレクトリを生成してその中に圧縮ファイルを生成する
			outTmpPath = JCCFileUtil.createFileNameUid(outDirPath);
			fl = new File(outTmpPath);
			if(fl.mkdirs() == false)
			{
				throw new Exception("作業ディレクトリの作成に失敗しました");
			}
			// 圧縮ファイルのフルパスを取得
			zipFilePath = JCCCompressFileUtil.compressFile(filePath, outTmpPath, "", "0", compLevel);
			// ファイルをbyte配列化する
			is = new FileInputStream(zipFilePath);
			readData = new byte[is.available()];
			int ret = 0;
			bis = new BufferedInputStream(is, 5120);
			while(ret != -1)
			{
				ret = bis.read(readData);
				if(ret == -1)
				{
					break;
				}
			}
			return readData;
		}
		catch(Throwable th)
		{
			throw makeJCCbatFrameworkException(th);
		}
		finally
		{
			// ストリームのクローズ
			try
			{	
				if(null != bis)
				{
					bis.close();
				}
				if(null != is)
				{
					is.close();
				}
			}
			catch(Throwable th)
			{
				throw makeJCCbatFrameworkException(th);
			}
			// 一時ファイル格納パスの削除
			if(null != outTmpPath)
			{
				JCCFileUtil.removeDir(outTmpPath);
			}
		}
	}
	//2012/05/29 圧縮ファイルアクセッサー追加対応 end
	
	//2012/05/29 圧縮ファイルアクセッサー追加対応 start
	/**
	 * ファイル圧縮処理です。圧縮対象ファイルフルパスを指定し、圧縮ファイルのbyte配列を返却します。
	 * ファイル圧縮アクセッサーで直接圧縮したファイルの解凍のみ対応。
	 * Tool等を用いて圧縮したファイルについてはサポート外。
	 * 圧縮ファイル及び解凍ファイルは自動削除されないため、不要になったファイルの削除は
	 * 業務側での実装が必要です。
	 * 
	 * @param filePath 圧縮ファイルのフルパス
	 * @return 解凍後ファイルのフルパス
	 * @throws JCCbatFrameworkException
	 */
	public static String unpackZipFile(String filePath) throws JCCFrameworkException
	{
		String[] unpackPathList = null;
		String unpackDir = null;
		String tmpDir = null;
		try
		{
			// 解凍ファイルを一時保存するディレクトリをAPLConstから取得
			tmpDir = getApplicationConst("DIR_UNCOMP_TMP");
			if(null == tmpDir)
			{
				throw new Exception("APLConstに解凍ファイルを一時保存するディレクトリを設定するキー[DIR_COMP_TMP]が設定されていません。");
			}
			// 一意となるディレクトリを生成してその中に解凍ファイルを生成する
			File fl = new File(JCCFileUtil.createDirUid(tmpDir));
			if(fl.mkdirs() == false)
			{
				throw new Exception("ファイル解凍先ディレクトリの作成に失敗しました。");
			}
			unpackDir = fl.getPath();
			// ファイルを解凍する
			unpackPathList = JCCUnCompressFileUtil.uncompressFileMulti(filePath, unpackDir, "0");
			if(unpackPathList.length >= 2)
			{
				throw new Exception("複数ファイルを圧縮したzipファイルが指定されました。");
			}
			return unpackPathList[0];
		}
		catch(Throwable th)
		{
			throw makeJCCbatFrameworkException(th);
		}
	}


}