/*******************************************************************************
*	 All Rights reserved,Copyright (c) K-Opticom 
********************************************************************************
*＜プログラム内容＞
*	システム名		：eo顧客基幹システム
*	モジュール名	：JSYejbEDK0011D020TMCK
*	ソースファイル名：JSYejbEDK0011D020TMCK.java
*	作成者			：EK909731
*	日付			：2013/02/26
*＜機能概要＞
*	配送受付 単項目チェック部品です。 
*＜修正履歴＞
*	バージョン	修正日		修正者		修正内容
*	ｖ1.00.00
*
********************************************************************************/

package eo.ejb.check.item;

import java.util.ArrayList;
import com.fujitsu.futurity.model.base.CAANMsg;
import com.fujitsu.futurity.model.ejb.common.JSYejbLog;
import com.fujitsu.futurity.model.ejb.common.ComPatternsCheck;
import com.fujitsu.futurity.model.ejb.common.fw.AgentDispatchContext;
import com.fujitsu.futurity.model.ejb.common.fw.TankomokuCheckHandler;
import eo.ejb.cbs.cbsmsg.EDK0011D020CBSMsg;
import eo.ejb.cbs.cbsmsg.EDK0011D020CBSMsg1List;
import eo.ejb.cbs.cbsmsg.EDK0011D020CBSMsg2List;
import eo.ejb.domain.JSYejbBaseDomain;

/**
 * 配送受付(EDK0011D020)の単項目チェッククラス
 */
public class JSYejbEDK0011D020TMCK implements TankomokuCheckHandler {

	/**
	 * 配送受付(EDK0011D020)の単項目チェックを行う
	 *
	 * @param inCBSMsg  CBSMsg
	 * @param inContext Agentから渡されたAgentDispatchContext
	 */
	public void invoke(CAANMsg inCBSMsg, AgentDispatchContext inContext) {

		//チェック対象項目の配列
		final String[][] tmckArgs = {
			//{項目,項目エラー,必須ErrFlg,ドメインErrFlg,桁ErrFlg,リファErrFlg,必須CHK区分,ドメインID,桁CHK区分,桁From,桁to,リファ型,リファレンス値}
			//配送先工事会社コード 必須なし，ドメイン：コード(6桁)，桁：ドメインに従う，リファレンス：ドメインに従う
			{EDK0011D020CBSMsg.HISOS_KOCOMP_CD, EDK0011D020CBSMsg.HISOS_KOCOMP_CD_ERR, "E1", "E2", "E3", "E4", "0", "C0000075", "1", "", "", "9", "" },
			//配送区分 必須あり，ドメイン：区分(2桁)，桁：ドメインに従う，リファレンス：ドメインに従う
			{EDK0011D020CBSMsg.HAISO_DIV, EDK0011D020CBSMsg.HAISO_DIV_ERR, "E1", "E2", "E3", "E4", "1", "C0000102", "1", "", "", "9", "" },
			//配送先個別指定フラグ 必須あり，ドメイン：フラグ，桁：ドメインに従う，リファレンス：ドメインに従う
			{EDK0011D020CBSMsg.HISOS_KSITEI_FLG, EDK0011D020CBSMsg.HISOS_KSITEI_FLG_ERR, "E1", "E2", "E3", "E4", "1", "C0000022", "1", "", "", "9", "" },
			//配送先名 必須なし，ドメイン：氏名，桁：ドメインに従う，リファレンス：ドメインに従う
			{EDK0011D020CBSMsg.HISOS_NM, EDK0011D020CBSMsg.HISOS_NM_ERR, "E1", "E2", "E3", "E4", "0", "C0000110", "1", "", "", "9", "" },
			//配送先住所コード 必須なし，ドメイン：住所コード，桁：ドメインに従う，リファレンス：ドメインに従う
			{EDK0011D020CBSMsg.HISOS_AD_CD, EDK0011D020CBSMsg.HISOS_AD_CD_ERR, "E1", "E2", "E3", "E4", "0", "C0000014", "1", "", "", "9", "" },
			//配送先郵便番号 必須なし，ドメイン：郵便番号，桁：ドメインに従う，リファレンス：ドメインに従う
			{EDK0011D020CBSMsg.HISOS_PCD, EDK0011D020CBSMsg.HISOS_PCD_ERR, "E1", "E2", "E3", "E4", "0", "C0000013", "1", "", "", "9", "" },
			//配送先都道府県名 必須なし，ドメイン：都道府県名，桁：ドメインに従う，リファレンス：ドメインに従う
			{EDK0011D020CBSMsg.HISOS_STATE_NM, EDK0011D020CBSMsg.HISOS_STATE_NM_ERR, "E1", "E2", "E3", "E4", "0", "C0000015", "1", "", "", "9", "" },
			//配送先市区町村名 必須なし，ドメイン：市区町村名，桁：ドメインに従う，リファレンス：ドメインに従う
			{EDK0011D020CBSMsg.HISOS_CITY_NM, EDK0011D020CBSMsg.HISOS_CITY_NM_ERR, "E1", "E2", "E3", "E4", "0", "C0000016", "1", "", "", "9", "" },
			//配送先大字通称名 必須なし，ドメイン：大字通称名，桁：ドメインに従う，リファレンス：ドメインに従う
			{EDK0011D020CBSMsg.HISOS_OAZTSU_NM, EDK0011D020CBSMsg.HISOS_OAZTSU_NM_ERR, "E1", "E2", "E3", "E4", "0", "C0000017", "1", "", "", "9", "" },
			//配送先字丁目名 必須なし，ドメイン：字丁目名，桁：ドメインに従う，リファレンス：ドメインに従う
			{EDK0011D020CBSMsg.HISOS_AZCHO_NM, EDK0011D020CBSMsg.HISOS_AZCHO_NM_ERR, "E1", "E2", "E3", "E4", "0", "C0000018", "1", "", "", "9", "" },
			//配送先番地号 必須なし，ドメイン：番地号(都道府県名〜番地号)，桁：ドメインに従う，リファレンス：ドメインに従う
			{EDK0011D020CBSMsg.HISOS_BNCHIGO, EDK0011D020CBSMsg.HISOS_BNCHIGO_ERR, "E1", "E2", "E3", "E4", "0", "C0000326", "1", "", "", "9", "" },
			//配送先住所補記・建物名 必須なし，ドメイン：補記・建物名，桁：ドメインに従う，リファレンス：ドメインに従う
			{EDK0011D020CBSMsg.HISOS_ADRTTM, EDK0011D020CBSMsg.HISOS_ADRTTM_ERR, "E1", "E2", "E3", "E4", "0", "C0000020", "1", "", "", "9", "" },
			//配送先住所補記・部屋番号 必須なし，ドメイン：補記・部屋番号，桁：ドメインに従う，リファレンス：ドメインに従う
			{EDK0011D020CBSMsg.HISOS_ADRRM, EDK0011D020CBSMsg.HISOS_ADRRM_ERR, "E1", "E2", "E3", "E4", "0", "C0000021", "1", "", "", "9", "" },
			//配送先電話番号 必須なし，ドメイン：電話番号(10桁-11桁)，桁：ドメインに従う，リファレンス：ドメインに従う
			{EDK0011D020CBSMsg.HISOS_TELNO, EDK0011D020CBSMsg.HISOS_TELNO_ERR, "E1", "E2", "E3", "E4", "0", "C0000083", "1", "", "", "9", "" },
			//配送元倉庫コード 必須なし，ドメイン：コード(6桁)，桁：ドメインに従う，リファレンス：ドメインに従う
			{EDK0011D020CBSMsg.HAISO_MOTO_SOKO_CD, EDK0011D020CBSMsg.HAISO_MOTO_SOKO_CD_ERR, "E1", "E2", "E3", "E4", "0", "C0000075", "1", "", "", "9", "" },
			//法人サービス契約受付番号 必須なし，ドメイン：番号(10桁)，桁：ドメインに従う，リファレンス：ドメインに従う
			{EDK0011D020CBSMsg.HOJIN_SVC_KEI_UK_NO, EDK0011D020CBSMsg.HOJIN_SVC_KEI_UK_NO_ERR, "E1", "E2", "E3", "E4", "0", "C0000089", "1", "", "", "9", "" },
			//法人契約者名 必須なし，ドメイン：名，桁：ドメインに従う，リファレンス：ドメインに従う
			{EDK0011D020CBSMsg.HOJIN_KEISHA_NM, EDK0011D020CBSMsg.HOJIN_KEISHA_NM_ERR, "E1", "E2", "E3", "E4", "0", "C0000030", "1", "", "", "9", "" },
			//法人連絡先携帯電話番号 必須なし，ドメイン：電話番号(10桁-11桁)，桁：ドメインに従う，リファレンス：ドメインに従う
			{EDK0011D020CBSMsg.HOJIN_RRKS_KTAI_TELNO, EDK0011D020CBSMsg.HOJIN_RRKS_KTAI_TELNO_ERR, "E1", "E2", "E3", "E4", "0", "C0000083", "1", "", "", "9", "" },
			//法人料金グループコード 必須なし，ドメイン：コード(2桁)，桁：ドメインに従う，リファレンス：ドメインに従う
			{EDK0011D020CBSMsg.HOJIN_PRC_GRP_CD, EDK0011D020CBSMsg.HOJIN_PRC_GRP_CD_ERR, "E1", "E2", "E3", "E4", "0", "C0000071", "1", "", "", "9", "" },
			//法人料金コースコード 必須なし，ドメイン：コード(3桁)，桁：ドメインに従う，リファレンス：ドメインに従う
			{EDK0011D020CBSMsg.HOJIN_PCRS_CD, EDK0011D020CBSMsg.HOJIN_PCRS_CD_ERR, "E1", "E2", "E3", "E4", "0", "C0000072", "1", "", "", "9", "" },
			//法人料金プランコード 必須なし，ドメイン：コード(6桁)，桁：ドメインに従う，リファレンス：ドメインに従う
			{EDK0011D020CBSMsg.HOJIN_PPLAN_CD, EDK0011D020CBSMsg.HOJIN_PPLAN_CD_ERR, "E1", "E2", "E3", "E4", "0", "C0000075", "1", "", "", "9", "" },
			//配送予定年月日 必須あり，ドメイン：年月日(yyyyMMdd)，桁：ドメインに従う，リファレンス：ドメインに従う
			{EDK0011D020CBSMsg.HAISO_RSV_YMD, EDK0011D020CBSMsg.HAISO_RSV_YMD_ERR, "E1", "E2", "E3", "E4", "1", "C0000001", "1", "", "", "9", "" },
			//住所未確定フラグ 必須あり，ドメイン：フラグ，桁：ドメインに従う，リファレンス：ドメインに従う
			{EDK0011D020CBSMsg.AD_MI_FIX_FLG, EDK0011D020CBSMsg.AD_MI_FIX_FLG_ERR, "E1", "E2", "E3", "E4", "1", "C0000022", "1", "", "", "9", "" },
			//出荷待機フラグ 必須あり，ドメイン：フラグ，桁：ドメインに従う，リファレンス：ドメインに従う
			{EDK0011D020CBSMsg.SHUKKA_TAIKI_FLG, EDK0011D020CBSMsg.SHUKKA_TAIKI_FLG_ERR, "E1", "E2", "E3", "E4", "1", "C0000022", "1", "", "", "9", "" },
			//物流保全番号 必須なし，ドメイン：番号(10桁)(識別子)，桁：ドメインに従う，リファレンス：ドメインに従う
			{EDK0011D020CBSMsg.BTRYHOZN_NO, EDK0011D020CBSMsg.BTRYHOZN_NO_ERR, "E1", "E2", "E3", "E4", "0", "C0000155", "1", "", "", "9", "" },
			//配送期限年月日 必須なし，ドメイン：年月日(yyyyMMdd)，桁：ドメインに従う，リファレンス：ドメインに従う
			{EDK0011D020CBSMsg.HAISO_KIGEN_YMD, EDK0011D020CBSMsg.HAISO_KIGEN_YMD_ERR, "E1", "E2", "E3", "E4", "0", "C0000001", "1", "", "", "9", "" },
			//配送到着指定年月日 必須なし，ドメイン：年月日(yyyyMMdd)，桁：ドメインに従う，リファレンス：ドメインに従う
			{EDK0011D020CBSMsg.HAISO_ARIV_SHITEI_YMD, EDK0011D020CBSMsg.HAISO_ARIV_SHITEI_YMD_ERR, "E1", "E2", "E3", "E4", "0", "C0000001", "1", "", "", "9", "" },
			//申込番号 必須なし，ドメイン：番号(12桁)(識別子)，桁：ドメインに従う，リファレンス：ドメインに従う
			{EDK0011D020CBSMsg.MSKM_NO, EDK0011D020CBSMsg.MSKM_NO_ERR, "E1", "E2", "E3", "E4", "0", "C0000026", "1", "", "", "9", "" },
			//配送到着指定時間帯コード 必須なし，ドメイン：コード(1桁)，桁：ドメインに従う，リファレンス：ドメインに従う
			{EDK0011D020CBSMsg.HAISO_ARIV_SHITEI_TIME_CD, EDK0011D020CBSMsg.HAISO_ARIV_SHITEI_TIME_CD_ERR, "E1", "E2", "E3", "E4", "0", "C0000070", "1", "", "", "9", "" },
			//通知書添付コード 必須なし，ドメイン：コード(1桁)，桁：ドメインに従う，リファレンス：ドメインに従う
			{EDK0011D020CBSMsg.TCHISHO_TEMP_CD, EDK0011D020CBSMsg.TCHISHO_TEMP_CD_ERR, "E1", "E2", "E3", "E4", "0", "C0000070", "1", "", "", "9", "" },
			//移動元管理場所識別コード 必須あり，ドメイン：コード(1桁)，桁：ドメインに従う，リファレンス：ドメインに従う
			{EDK0011D020CBSMsg.IDOMOTO_KRIPLACE_SKCD, EDK0011D020CBSMsg.IDOMOTO_KRIPLACE_SKCD_ERR, "E1", "E2", "E3", "E4", "1", "C0000070", "1", "", "", "9", "" },
			//移動元工事会社コード 必須なし，ドメイン：コード(6桁)，桁：ドメインに従う，リファレンス：ドメインに従う
			{EDK0011D020CBSMsg.IDOMOTO_KOCOMP_CD, EDK0011D020CBSMsg.IDOMOTO_KOCOMP_CD_ERR, "E1", "E2", "E3", "E4", "0", "C0000075", "1", "", "", "9", "" },
			//移動元預託先オフィスコード 必須なし，ドメイン：コード(6桁)，桁：ドメインに従う，リファレンス：ドメインに従う
			{EDK0011D020CBSMsg.IDOMOTO_YTKSKOF_CD, EDK0011D020CBSMsg.IDOMOTO_YTKSKOF_CD_ERR, "E1", "E2", "E3", "E4", "0", "C0000075", "1", "", "", "9", "" }
		};
		final String[][] strArMsg = createTMCKArgs(tmckArgs);

		//明細EDK0011D020CBSMsg1Listのチェック対象項目の配列
		final String[][] tmckArgs_EDK0011D020CBSMsg1List = {
			//{項目,項目エラー,必須ErrFlg,ドメインErrFlg,桁ErrFlg,リファErrFlg,必須CHK区分,ドメインID,桁CHK区分,桁From,桁to,リファ型,リファレンス値}
			//機器提供サービス契約番号 必須あり，ドメイン：番号(12桁)(識別子)，桁：ドメインに従う，リファレンス：ドメインに従う
			{EDK0011D020CBSMsg1List.KKTK_SVC_KEI_NO, EDK0011D020CBSMsg1List.KKTK_SVC_KEI_NO_ERR, "E1", "E2", "E3", "E4", "1", "C0000026", "1", "", "", "9", "" },
			//登録契機契約異動区分 必須あり，ドメイン：区分(5桁)，桁：ドメインに従う，リファレンス：ドメインに従う
			{EDK0011D020CBSMsg1List.ADD_OPTNTY_KEI_IDO_DIV, EDK0011D020CBSMsg1List.ADD_OPTNTY_KEI_IDO_DIV_ERR, "E1", "E2", "E3", "E4", "1", "C0000097", "1", "", "", "9", "" },
			//登録契機契約異動年月日時分秒 必須あり，ドメイン：年月日時分秒(yyyyMMddHHmmssSSS)，桁：ドメインに従う，リファレンス：ドメインに従う
			{EDK0011D020CBSMsg1List.ADD_OPTNTY_KEI_IDO_DTM, EDK0011D020CBSMsg1List.ADD_OPTNTY_KEI_IDO_DTM_ERR, "E1", "E2", "E3", "E4", "1", "C0000004", "1", "", "", "9", "" },
			//法人サービス契約受付番号子 必須なし，ドメイン：番号(10桁)，桁：ドメインに従う，リファレンス：ドメインに従う
			{EDK0011D020CBSMsg1List.HOJIN_SVC_KEI_UK_NOPARTS, EDK0011D020CBSMsg1List.HOJIN_SVC_KEI_UK_NOPARTS_ERR, "E1", "E2", "E3", "E4", "0", "C0000089", "1", "", "", "9", "" },
			//法人eo読替サービス契約番号 必須なし，ドメイン：番号(10桁)，桁：ドメインに従う，リファレンス：ドメインに従う
			{EDK0011D020CBSMsg1List.HJIN_EO_YKAE_SVKEI_NO, EDK0011D020CBSMsg1List.HJIN_EO_YKAE_SVKEI_NO_ERR, "E1", "E2", "E3", "E4", "0", "C0000089", "1", "", "", "9", "" },
			//宅内機器種別コード 必須なし，ドメイン：コード(2桁)，桁：ドメインに従う，リファレンス：ドメインに従う
			{EDK0011D020CBSMsg1List.TAKNKIKI_SBT_CD, EDK0011D020CBSMsg1List.TAKNKIKI_SBT_CD_ERR, "E1", "E2", "E3", "E4", "0", "C0000071", "1", "", "", "9", "" },
			//付属品種別コード 必須なし，ドメイン：コード(2桁)，桁：ドメインに従う，リファレンス：ドメインに従う
			{EDK0011D020CBSMsg1List.HUZOKUHIN_SBT_CD, EDK0011D020CBSMsg1List.HUZOKUHIN_SBT_CD_ERR, "E1", "E2", "E3", "E4", "0", "C0000071", "1", "", "", "9", "" },
			//宅内機器型式コード 必須なし，ドメイン：コード(1桁-20桁)(半角英数字2)，桁：ドメインに従う，リファレンス：ドメインに従う
			{EDK0011D020CBSMsg1List.TAKNKIKI_MODEL_CD, EDK0011D020CBSMsg1List.TAKNKIKI_MODEL_CD_ERR, "E1", "E2", "E3", "E4", "0", "C0000181", "1", "", "", "9", "" },
			//付属品型式コード 必須なし，ドメイン：コード(1桁-20桁)(半角英数字2)，桁：ドメインに従う，リファレンス：ドメインに従う
			{EDK0011D020CBSMsg1List.HUZOKUHIN_MODEL_CD, EDK0011D020CBSMsg1List.HUZOKUHIN_MODEL_CD_ERR, "E1", "E2", "E3", "E4", "0", "C0000181", "1", "", "", "9", "" },
			//宅内機器セット品型コード 必須なし，ドメイン：コード(1桁-20桁)(半角英数字2)(識別子)，桁：ドメインに従う，リファレンス：ドメインに従う
			{EDK0011D020CBSMsg1List.TAKNKIKI_SETHIN_MODEL_CD, EDK0011D020CBSMsg1List.TAKNKIKI_SETHIN_MODEL_CD_ERR, "E1", "E2", "E3", "E4", "0", "C0000258", "1", "", "", "9", "" },
			//宅内機器セット品番号 必須なし，ドメイン：番号(1桁-20桁)(半角英数字2)(識別子)，桁：ドメインに従う，リファレンス：ドメインに従う
			{EDK0011D020CBSMsg1List.TAKNKIKI_SETHIN_NO, EDK0011D020CBSMsg1List.TAKNKIKI_SETHIN_NO_ERR, "E1", "E2", "E3", "E4", "0", "C0000252", "1", "", "", "9", "" },
			//配送機器変更コード 必須なし，ドメイン：コード(1桁)，桁：ドメインに従う，リファレンス：ドメインに従う
			{EDK0011D020CBSMsg1List.HAISO_KIKI_CHGE_CD, EDK0011D020CBSMsg1List.HAISO_KIKI_CHGE_CD_ERR, "E1", "E2", "E3", "E4", "0", "C0000070", "1", "", "", "9", "" },
			//申込明細番号 必須なし，ドメイン：番号(12桁)(識別子)，桁：ドメインに従う，リファレンス：ドメインに従う
			{EDK0011D020CBSMsg1List.MSKM_DTL_NO, EDK0011D020CBSMsg1List.MSKM_DTL_NO_ERR, "E1", "E2", "E3", "E4", "0", "C0000026", "1", "", "", "9", "" },
			//工事案件番号 必須なし，ドメイン：番号(10桁)(識別子)，桁：ドメインに従う，リファレンス：ドメインに従う
			{EDK0011D020CBSMsg1List.KOJIAK_NO, EDK0011D020CBSMsg1List.KOJIAK_NO_ERR, "E1", "E2", "E3", "E4", "0", "C0000155", "1", "", "", "9", "" },
			//申込書番号 必須なし，ドメイン：番号(10桁)(半角英数字8)，桁：ドメインに従う，リファレンス：ドメインに従う
			{EDK0011D020CBSMsg1List.MSKMSHO_NO, EDK0011D020CBSMsg1List.MSKMSHO_NO_ERR, "E1", "E2", "E3", "E4", "0", "C0000387", "1", "", "", "9", "" },
			//機器付加情報コード 必須なし，ドメイン：コード(3桁)，桁：ドメインに従う，リファレンス：ドメインに従う
			{EDK0011D020CBSMsg1List.KIKI_HUKA_INFO_CD, EDK0011D020CBSMsg1List.KIKI_HUKA_INFO_CD_ERR, "E1", "E2", "E3", "E4", "0", "C0000072", "1", "", "", "9", "" },
			//料金コースコード 必須なし，ドメイン：コード(3桁)，桁：ドメインに従う，リファレンス：ドメインに従う
			{EDK0011D020CBSMsg1List.PCRS_CD, EDK0011D020CBSMsg1List.PCRS_CD_ERR, "E1", "E2", "E3", "E4", "0", "C0000072", "1", "", "", "9", "" },
			//法人販売種別コード 必須なし，ドメイン：コード(2桁)，桁：ドメインに従う，リファレンス：ドメインに従う
			{EDK0011D020CBSMsg1List.HOJIN_HAMBAI_SBT_CD, EDK0011D020CBSMsg1List.HOJIN_HAMBAI_SBT_CD_ERR, "E1", "E2", "E3", "E4", "0", "C0000071", "1", "", "", "9", "" },
			//法人提供種別コード 必須なし，ドメイン：コード(2桁)，桁：ドメインに従う，リファレンス：ドメインに従う
			{EDK0011D020CBSMsg1List.HOJIN_TK_SBT_CD, EDK0011D020CBSMsg1List.HOJIN_TK_SBT_CD_ERR, "E1", "E2", "E3", "E4", "0", "C0000071", "1", "", "", "9", "" },
			//機器変更番号 必須あり，ドメイン：番号(12桁)，桁：ドメインに従う，リファレンス：ドメインに従う
			{EDK0011D020CBSMsg1List.KIKI_CHG_NO, EDK0011D020CBSMsg1List.KIKI_CHG_NO_ERR, "E1", "E2", "E3", "E4", "1", "C0000128", "1", "", "", "9", "" },
			//機器設置先場所番号 必須なし，ドメイン：場所番号，桁：ドメインに従う，リファレンス：ドメインに従う
			{EDK0011D020CBSMsg1List.KIKI_STC_SAKI_PLACE_NO, EDK0011D020CBSMsg1List.KIKI_STC_SAKI_PLACE_NO_ERR, "E1", "E2", "E3", "E4", "0", "C0000360", "1", "", "", "9", "" },
			//配送元倉庫棚コード 必須なし，ドメイン：コード(3桁)，桁：ドメインに従う，リファレンス：ドメインに従う
			{EDK0011D020CBSMsg1List.HAISO_MOTO_SKDN_CD, EDK0011D020CBSMsg1List.HAISO_MOTO_SKDN_CD_ERR, "E1", "E2", "E3", "E4", "0", "C0000072", "1", "", "", "9", "" },
			//移動元工事会社棚コード 必須なし，ドメイン：コード(3桁)，桁：ドメインに従う，リファレンス：ドメインに従う
			{EDK0011D020CBSMsg1List.IDOMOTO_KOCOMP_SLF_CD, EDK0011D020CBSMsg1List.IDOMOTO_KOCOMP_SLF_CD_ERR, "E1", "E2", "E3", "E4", "0", "C0000072", "1", "", "", "9", "" },
			//移動元預託先オフィス棚コード 必須なし，ドメイン：コード(3桁)，桁：ドメインに従う，リファレンス：ドメインに従う
			{EDK0011D020CBSMsg1List.IDOMOTO_YTKSKOF_SLF_CD, EDK0011D020CBSMsg1List.IDOMOTO_YTKSKOF_SLF_CD_ERR, "E1", "E2", "E3", "E4", "0", "C0000072", "1", "", "", "9", "" }
		};
		final String[][] strArMsg_EDK0011D020CBSMsg1List = createTMCKArgs(tmckArgs_EDK0011D020CBSMsg1List);

		//明細EDK0011D020CBSMsg2Listのチェック対象項目の配列
		final String[][] tmckArgs_EDK0011D020CBSMsg2List = {
			//{項目,項目エラー,必須ErrFlg,ドメインErrFlg,桁ErrFlg,リファErrFlg,必須CHK区分,ドメインID,桁CHK区分,桁From,桁to,リファ型,リファレンス値}
			//同封物用機器提供サービス契約番号 必須なし，ドメイン：番号(12桁)(識別子)，桁：ドメインに従う，リファレンス：ドメインに従う
			{EDK0011D020CBSMsg2List.DOHUBT_KKTK_SVC_KEI_NO, EDK0011D020CBSMsg2List.DOHUBT_KKTK_SVC_KEI_NO_ERR, "E1", "E2", "E3", "E4", "0", "C0000026", "1", "", "", "9", "" },
			//同封物用機器変更番号 必須なし，ドメイン：番号(12桁)，桁：ドメインに従う，リファレンス：ドメインに従う
			{EDK0011D020CBSMsg2List.DOHUBT_KIKI_CHG_NO, EDK0011D020CBSMsg2List.DOHUBT_KIKI_CHG_NO_ERR, "E1", "E2", "E3", "E4", "0", "C0000128", "1", "", "", "9", "" },
			//印字対象宅内機器型式コード 必須なし，ドメイン：コード(1桁-20桁)(半角英数字2)，桁：ドメインに従う，リファレンス：ドメインに従う
			{EDK0011D020CBSMsg2List.PRT_TG_TAKNKIKI_MODEL_CD, EDK0011D020CBSMsg2List.PRT_TG_TAKNKIKI_MODEL_CD_ERR, "E1", "E2", "E3", "E4", "0", "C0000181", "1", "", "", "9", "" },
			//印字対象付属品型式コード 必須なし，ドメイン：コード(1桁-20桁)(半角英数字2)，桁：ドメインに従う，リファレンス：ドメインに従う
			{EDK0011D020CBSMsg2List.PRT_TG_HUZOKUHIN_MODEL_CD, EDK0011D020CBSMsg2List.PRT_TG_HUZOKUHIN_MODEL_CD_ERR, "E1", "E2", "E3", "E4", "0", "C0000181", "1", "", "", "9", "" },
			//印字対象機器製造番号 必須なし，ドメイン：番号(1桁-20桁)(半角英数字2)，桁：ドメインに従う，リファレンス：ドメインに従う
			{EDK0011D020CBSMsg2List.PRT_TG_KIKI_SEIZO_NO, EDK0011D020CBSMsg2List.PRT_TG_KIKI_SEIZO_NO_ERR, "E1", "E2", "E3", "E4", "0", "C0000183", "1", "", "", "9", "" },
			//数量 必須なし，ドメイン：数値(12桁)，桁：ドメインに従う，リファレンス：ドメインに従う
			{EDK0011D020CBSMsg2List.CNT, EDK0011D020CBSMsg2List.CNT_ERR, "E1", "E2", "E3", "E4", "0", "C0000029", "1", "", "", "9", "" },
			//同封物用申込明細番号 必須なし，ドメイン：番号(12桁)(識別子)，桁：ドメインに従う，リファレンス：ドメインに従う
			{EDK0011D020CBSMsg2List.DOHUBT_MSKM_DTL_NO, EDK0011D020CBSMsg2List.DOHUBT_MSKM_DTL_NO_ERR, "E1", "E2", "E3", "E4", "0", "C0000026", "1", "", "", "9", "" },
			//同封物用工事案件番号 必須なし，ドメイン：番号(10桁)(識別子)，桁：ドメインに従う，リファレンス：ドメインに従う
			{EDK0011D020CBSMsg2List.DOHUBT_KOJIAK_NO, EDK0011D020CBSMsg2List.DOHUBT_KOJIAK_NO_ERR, "E1", "E2", "E3", "E4", "0", "C0000155", "1", "", "", "9", "" },
			//同封物用申込書番号 必須なし，ドメイン：番号(10桁)(半角英数字8)，桁：ドメインに従う，リファレンス：ドメインに従う
			{EDK0011D020CBSMsg2List.DOHUBT_MSKMSHO_NO, EDK0011D020CBSMsg2List.DOHUBT_MSKMSHO_NO_ERR, "E1", "E2", "E3", "E4", "0", "C0000387", "1", "", "", "9", "" },
			//梱包機器取付指示設計書番号 必須なし，ドメイン：番号(1桁-11桁)(半角英数字2)，桁：ドメインに従う，リファレンス：ドメインに従う
			{EDK0011D020CBSMsg2List.KONKIKI_ATT_SJI_DDT_NO, EDK0011D020CBSMsg2List.KONKIKI_ATT_SJI_DDT_NO_ERR, "E1", "E2", "E3", "E4", "0", "C0000397", "1", "", "", "9", "" }
		};
		final String[][] strArMsg_EDK0011D020CBSMsg2List = createTMCKArgs(tmckArgs_EDK0011D020CBSMsg2List);

		JSYejbLog.println(JSYejbLog.DEBUG,this.getClass(),"Call");

		//チェックを行う
		ComPatternsCheck.check(inContext, inCBSMsg, strArMsg, EDK0011D020CBSMsg.STATUS);

		//明細EDK0011D020CBSMSG1LISTのチェックを行う
		CAANMsg[] child_EDK0011D020CBSMsg1List = inCBSMsg.getCAANMsgList(EDK0011D020CBSMsg.EDK0011D020CBSMSG1LIST);
		if (child_EDK0011D020CBSMsg1List != null) {
			for (int cnt_1 = 0; cnt_1 < child_EDK0011D020CBSMsg1List.length; cnt_1++) {
				ComPatternsCheck.checkDetail(inContext, inCBSMsg, child_EDK0011D020CBSMsg1List[cnt_1], strArMsg_EDK0011D020CBSMsg1List, EDK0011D020CBSMsg.STATUS, cnt_1 + 1);
			}
		}

		//明細EDK0011D020CBSMSG2LISTのチェックを行う
		CAANMsg[] child_EDK0011D020CBSMsg2List = inCBSMsg.getCAANMsgList(EDK0011D020CBSMsg.EDK0011D020CBSMSG2LIST);
		if (child_EDK0011D020CBSMsg2List != null) {
			for (int cnt_2 = 0; cnt_2 < child_EDK0011D020CBSMsg2List.length; cnt_2++) {
				ComPatternsCheck.checkDetail(inContext, inCBSMsg, child_EDK0011D020CBSMsg2List[cnt_2], strArMsg_EDK0011D020CBSMsg2List, EDK0011D020CBSMsg.STATUS, cnt_2 + 1);
			}
		}

		JSYejbLog.println(JSYejbLog.DEBUG,this.getClass(),"End");

	}

	/**
	 * 単項目制約定義とドメイン定義から、単項目チェック定義を生成
	 * @param args 単項目制約定義情報
	 * @return	単項目制約情報（単項目チェック部品へ引き渡すチェック用パラメタ配列）
	 *
	 */
	private String[][] createTMCKArgs(String[][] args) {
		
		ArrayList tmckList = new ArrayList();
		for ( int i=0; i< args.length; i++ ) {
			ArrayList tmckRec = new ArrayList();
			String[] komokuDef = args[i];
			String domainID = komokuDef[7];
			String domainCls = "eo.ejb.domain.JSYejb" + domainID + "Domain";
			try {
				JSYejbBaseDomain domain =
					(JSYejbBaseDomain) Class.forName(domainCls).newInstance();
				tmckRec = domain.getTmckDefine(komokuDef);
				for (int p=0;p<tmckRec.size();p++) {
					tmckList.add(tmckRec.get(p));
				}
			} catch (Exception e) {
			}
		}
	
		return (String[][])tmckList.toArray(new String[tmckList.size()][0]);
	
	}

}
