/**
 * 
 */
package com.fujitsu.futurity.bp.custom.reqchk;

import java.util.ArrayList;
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;


/**
 * KKSV0042 オプションサービス契約一覧(KKW02301)初期表示<br>
 * KKSV004207SC サービス契約内訳<eo光電話>一覧照会<br>
 * <br>
 * サービス契約のサービスコードが「電話」の場合に当ＳＣを実行可能とします。
 * 
 * @author 富士通
 * @since 2011-08-24
 */
public class JKKSV004207ReqChk extends AbstractCustomReqChk {

	/**
	 * サービス契約内訳<eo光電話>一覧照会ＳＣ　実行判定メソッド
	 */
	@SuppressWarnings("unchecked")
	@Override
	public boolean checkExecution(IRequestParameterReadOnly arg0, IConditionValue arg1) throws ReqChkException
	{
		boolean ret = false;

		//SCマップから必要な情報を取り出す
		HashMap<String, Object> parentMap;
		try 
		{
			//サービス契約一意照会マップ
			parentMap = (HashMap<String, Object>)arg0.getData("KKSV004201SC");
			ArrayList<HashMap<String, Object>> list = (ArrayList<HashMap<String, Object>>)parentMap.get("EKK0081A010CBSMsg1List");
			if (list != null && 0 < list.size()) {
				HashMap<String, Object> childMap = list.get(0);
				if (childMap != null && 0 < childMap.size()) {
					//サービスコードを取得
					String svc_cd = (String)childMap.get("svc_cd");
					//サービスコードが電話サービスなら実行ＯＫ
					if (svc_cd != null && "02".equals(svc_cd))
					{
						ret = true;
					}
				}
			}
		}
		catch (RequestParameterException e) 
		{
			/*NOP*/ ;
		}

		return ret;
	}

}
