/*********************************************************************
* All Rights reserved,Copyright (c) K-Opticom
**********************************************************************
*＜プログラム内容＞
*   システム名      ：顧客契約
*   モジュール名    ：番号ポータビリティ情報登録コピーサービス実行判定
*   ソースファイル名：JKKSV009301ReqChk.java
*   作成者          ：FJ
*   日付            ：2011年06月13日
*＜機能概要＞
*   番号ポータビリティ情報登録コピーサービスの実行判定を行う。
*＜修正履歴＞
*   バージョン  修正日       修正者      修正内容
*   v1.00.00    2011/06/13   FJ          新規作成
*
**********************************************************************/
package com.fujitsu.futurity.bp.custom.reqchk;

import java.util.HashMap;

import com.fujitsu.futurity.bp.x21.bpm.common.AbstractCustomReqChk;
import com.fujitsu.futurity.bp.x21.bpm.common.IConditionValue;
import com.fujitsu.futurity.bp.x21.bpm.exception.RequestParameterException;
import com.fujitsu.futurity.bp.x21.bpm.parameter.IRequestParameterReadOnly;
import com.fujitsu.futurity.bp.x21.bpm.reqchk.exception.ReqChkException;

/**
 * 番号ポータビリティ情報登録コピーサービスの実行判定を行うクラスです。<p>
 * <BR>
 * @author FJ
 */
public class JKKSV009301ReqChk extends AbstractCustomReqChk
{
	/** 条件コード（顧客） */
	private static final String CONDITION_VALUE_KOKYAKU = "1";
	/** 条件コード（回線内訳） */
	private static final String CONDITION_VALUE_KAISEN_UW = "2";
	/** キー（チェック条件項目マップ） */
	private static final String KEY_REQCHK = "REQCHK";
	/** キー（住所情報入力補助コード） */
	private static final String KEY_AD_INF_INP_HOJO_CD = "ad_inf_input_hojo_cd";
	
	/**
	 * カスタム実行判定処理を実装するメソッド
	 * <br>
	 * @param irp リクエストパラメータ
	 * @param conditionvalue 判定値格納クラス
	 * @return アクセス分析サブオプションがあればTrue
	 * @throws ReqChkException
	 */
	@SuppressWarnings("unchecked")
	public boolean checkExecution(IRequestParameterReadOnly irp,
			IConditionValue conditionvalue) throws ReqChkException
	{

		String adInfInpHojoCd = null;
		Boolean resflg = false;
		
		HashMap<String, Object> parentMap = null;
		
		try 
		{
			//SCマップから必要な情報を取り出す
			parentMap = (HashMap<String, Object>)irp.getData(KEY_REQCHK);
			adInfInpHojoCd = (String)parentMap.get(KEY_AD_INF_INP_HOJO_CD);
			
		} 
		catch (RequestParameterException e) 
		{
			
		}
		
		// 判定処理
		if (CONDITION_VALUE_KOKYAKU.equals(conditionvalue.get(null)))
		{
			// お客様一意照会SCより呼び出された場合
			// 2012/07/13 IT2-2012-0001325 MOD START
			if("1".equals(adInfInpHojoCd))
			{
				// 住所情報リスト「1.契約者住所情報と同じ」が選択されている場合
				resflg = true;
			}
			else if("2".equals(adInfInpHojoCd))
			{
				// 住所情報リスト「2.利用場所住所情報と同じ」が選択されている場合
				resflg = false;
			}
//			if("XX".equals(adInfInpHojoCd))
//			{
//				// 住所情報入力補助コード(仮)が"コード未定義"(お客様住所(仮))の場合
//				resflg = true;
//			}
//			else if("YY".equals(adInfInpHojoCd))
//			{
//				// 住所情報入力補助コード(仮)が"コード未定義"(利用場所(仮))の場合
//				resflg = false;
//			}
			// 2012/07/13 IT2-2012-0001325 MOD END
		}
		else if (CONDITION_VALUE_KAISEN_UW.equals(conditionvalue.get(null)))
		{
			// サービス契約回線内訳一覧照会SCより呼び出された場合
			// 2012/07/13 IT2-2012-0001325 MOD START
			if("1".equals(adInfInpHojoCd))
			{
				// 住所情報リスト「1.契約者住所情報と同じ」が選択されている場合
				resflg = false;
			}
			else if("2".equals(adInfInpHojoCd))
			{
				// 住所情報リスト「2.利用場所住所情報と同じ」が選択されている場合
				resflg = true;
			}
//			if("XX".equals(adInfInpHojoCd))
//			{
//				// 住所情報入力補助コード(仮)が"コード未定義"(お客様住所(仮))の場合
//				resflg = false;
//			}
//			else if("YY".equals(adInfInpHojoCd))
//			{
//				// 住所情報入力補助コード(仮)が"コード未定義"(利用場所(仮))の場合
//				resflg = true;
//			}
			// 2012/07/13 IT2-2012-0001325 MOD END
		}
		
		return resflg;
	}
}
