/*********************************************************************
*	All Rights reserved,Copyright (c) K-Opticom
**********************************************************************
*＜プログラム内容＞
*	システム名		：eo顧客基幹システム
*	モジュール名	：JKKejbEKK0931D010TKCK
*	ソースファイル名：JKKejbEKK0931D010TKCK.java
*	作成者			：富士通
*	日付			：2012年8月27日
*＜機能概要＞
*	サービス提供エリア警告対象住所登録制約部品
*＜修正履歴＞
*	バージョン	修正日		修正者		修正内容
*	v1.00.00	2012/08/27	FJ)			新規作成
*
**********************************************************************/

package eo.ejb.common.itemrelation;

import com.fujitsu.futurity.model.base.CAANMsg;
import com.fujitsu.futurity.model.ejb.common.fw.AgentDispatchContext;

import eo.ejb.cbs.cbsmsg.EKK0931D010CBSMsg;

/**
 * <p>
 * サービス提供エリア警告対象住所登録の単関連制約を行う部品
 * </p>
 * @author 富士通
 */
public class JKKejbEKK0931D010TKCK extends JKKejbTKCKBase
{

	/**  01：都道府県以下全域 */
	private static final String VTA_KKKU_WDASTISCP_CD_01 = "01";

	/**  02：市区町村以下全域 */
	private static final String VTA_KKKU_WDASTISCP_CD_02 = "02";

	/**  03：大字通称以下全域 */
	private static final String VTA_KKKU_WDASTISCP_CD_03 = "03";

	/**  04：字丁目以下全域 */
	private static final String VTA_KKKU_WDASTISCP_CD_04 = "04";

	/**
	 * 広域指定妥当性チェック処理
	 * <p>
	 * 入力されたサービス提供エリア警告対象住所の広域指定の入力が、妥当かどうかのチェックを行う
	 * </p>
	 * @param inMsg メッセージキャリア
	 * @param inContext ディスパッチコンテキスト
	 * @return 広域範囲指定が妥当であればtrue。妥当でなければfalse
	 */
	public static boolean isWideAreaVal(CAANMsg inMsg, AgentDispatchContext inContext)
	{

		// CBSﾒｯｾｰｼﾞ「サービス提供エリア警告広域指定範囲コード」がnullでない場合
		if (!inMsg.isNull(EKK0931D010CBSMsg.SVTA_KKKU_WDASTISCP_CD))
		{
			// CBSﾒｯｾｰｼﾞ「サービス提供エリア警告対象番地号」がnullでない場合
			if (!inMsg.isNull(EKK0931D010CBSMsg.SVTA_KKKU_TG_BNCHIGO))
			{
				return false;
			}
		}

		// CBSﾒｯｾｰｼﾞ「サービス提供エリア警告対象番地号」がnullでない場合
		if (!inMsg.isNull(EKK0931D010CBSMsg.SVTA_KKKU_TG_BNCHIGO))
		{
			// CBSﾒｯｾｰｼﾞ「サービス提供エリア警告対象字丁目名」がnullである場合
			if (inMsg.isNull(EKK0931D010CBSMsg.SVTA_KKKU_TG_AZCHO_NM))
			{
				return false;
			}
		}

		// CBSﾒｯｾｰｼﾞ「サービス提供エリア警告対象字丁目名」がnullでない場合
		if (!inMsg.isNull(EKK0931D010CBSMsg.SVTA_KKKU_TG_AZCHO_NM))
		{
			// CBSﾒｯｾｰｼﾞ「サービス提供エリア警告対象大字通称名」がnullである場合
			if (inMsg.isNull(EKK0931D010CBSMsg.SVTA_KKKU_TG_OAZTSU_NM))
			{
				return false;
			}
		}

		// CBSﾒｯｾｰｼﾞ「サービス提供エリア警告対象大字通称名」がnullでない場合
		if (!inMsg.isNull(EKK0931D010CBSMsg.SVTA_KKKU_TG_OAZTSU_NM))
		{
			// CBSﾒｯｾｰｼﾞ「サービス提供エリア警告対象市区町村名」がnullである場合
			if (inMsg.isNull(EKK0931D010CBSMsg.SVTA_KKKU_TG_CITY_NM))
			{
				return false;
			}
		}

		// CBSﾒｯｾｰｼﾞ「サービス提供エリア警告対象市区町村名」がnullでない場合
		if (!inMsg.isNull(EKK0931D010CBSMsg.SVTA_KKKU_TG_CITY_NM))
		{
			// CBSﾒｯｾｰｼﾞ「サービス提供エリア警告対象都道府県名」がnullである場合
			if (inMsg.isNull(EKK0931D010CBSMsg.SVTA_KKKU_TG_STATE_NM))
			{
				return false;
			}
		}

		// CBSﾒｯｾｰｼﾞ「サービス提供エリア警告広域指定範囲コード」が'01'の場合
		if (VTA_KKKU_WDASTISCP_CD_01.equals(inMsg.getString(EKK0931D010CBSMsg.SVTA_KKKU_WDASTISCP_CD)))
		{
			// CBSﾒｯｾｰｼﾞ「サービス提供エリア警告対象都道府県名」がnullであるまたはCBSﾒｯｾｰｼﾞ「サービス提供エリア警告対象市区町村名」がnullでない場合
			if (inMsg.isNull(EKK0931D010CBSMsg.SVTA_KKKU_TG_STATE_NM) || !inMsg.isNull(EKK0931D010CBSMsg.SVTA_KKKU_TG_CITY_NM))
			{
				return false;
			}
		}

		// CBSﾒｯｾｰｼﾞ「サービス提供エリア警告広域指定範囲コード」が'02'の場合
		if (VTA_KKKU_WDASTISCP_CD_02.equals(inMsg.getString(EKK0931D010CBSMsg.SVTA_KKKU_WDASTISCP_CD)))
		{
			// CBSﾒｯｾｰｼﾞ「サービス提供エリア警告対象市区町村名」がnullであるまたはCBSﾒｯｾｰｼﾞ「サービス提供エリア警告対象大字通称名」がnullでない場合
			if (inMsg.isNull(EKK0931D010CBSMsg.SVTA_KKKU_TG_CITY_NM) || !inMsg.isNull(EKK0931D010CBSMsg.SVTA_KKKU_TG_OAZTSU_NM))
			{
				return false;
			}
		}

		// CBSﾒｯｾｰｼﾞ「サービス提供エリア警告広域指定範囲コード」が'03'の場合
		if (VTA_KKKU_WDASTISCP_CD_03.equals(inMsg.getString(EKK0931D010CBSMsg.SVTA_KKKU_WDASTISCP_CD)))
		{
			// CBSﾒｯｾｰｼﾞ「サービス提供エリア警告対象大字通称名」がnullであるまたはCBSﾒｯｾｰｼﾞ「サービス提供エリア警告対象字丁目名」がnullでない場合
			if (inMsg.isNull(EKK0931D010CBSMsg.SVTA_KKKU_TG_OAZTSU_NM) || !inMsg.isNull(EKK0931D010CBSMsg.SVTA_KKKU_TG_AZCHO_NM))
			{
				return false;
			}
		}

		// CBSﾒｯｾｰｼﾞ「サービス提供エリア警告広域指定範囲コード」が'04'またはCBSﾒｯｾｰｼﾞ「サービス提供エリア警告広域指定範囲コード」がnullの場合
		if (VTA_KKKU_WDASTISCP_CD_04.equals(inMsg.getString(EKK0931D010CBSMsg.SVTA_KKKU_WDASTISCP_CD))
				|| inMsg.isNull(EKK0931D010CBSMsg.SVTA_KKKU_WDASTISCP_CD))
		{
			// CBSﾒｯｾｰｼﾞ「サービス提供エリア警告対象字丁目名」がnullである場合
			if (inMsg.isNull(EKK0931D010CBSMsg.SVTA_KKKU_TG_AZCHO_NM))
			{
				return false;
			}
		}

		return true;
	}

}
