/**
 * 
 */
package com.fujitsu.futurity.bp.custom.reqchk;

import java.util.HashMap;

import com.fujitsu.futurity.bp.custom.constant.KKSV0101_KKSV0101OP;
import com.fujitsu.futurity.bp.custom.constant.KKSV0101_KKSV0101OP_KKSV010109SC;
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;


/**
 * KKSV0101 050番号発番登録確認<br>
 * KKSV010109SC 電話番号予約削除SC<br>
 * <br>
 * 予約の場合のみ当ＳＣを実行可能とします。
 * 
 * @author 富士通
 * @since 2011-08-31
 */
public class JKKSV010109ReqChk extends AbstractCustomReqChk {

	/**
	 * 電話番号予約削除ＳＣ　実行判定メソッド
	 * <br>
	 * @param irp リクエストパラメータ
	 * @param conditionvalue 判定値格納クラス
	 * @return アクセス分析サブオプションがあればTrue
	 * @throws ReqChkException
	 */
	@SuppressWarnings("unchecked")
	public boolean checkExecution(IRequestParameterReadOnly irp,
			IConditionValue conditionvalue) throws ReqChkException
	{
		boolean ret = false;

		try 
		{
			//電話番号予約削除SCマップ
			HashMap<String, Object> parentMap = 
				(HashMap<String, Object>)irp.getData(KKSV0101_KKSV0101OP.KKSV010109SC);

			//予約種別コードを取得
			String rsv_sbt_cd = (String)parentMap.get(KKSV0101_KKSV0101OP_KKSV010109SC.RSV_SBT_CD);

			if (rsv_sbt_cd != null && (
				"01".equals(rsv_sbt_cd) ||		//通常予約
				"02".equals(rsv_sbt_cd) ||		//指定予約
				"03".equals(rsv_sbt_cd)			//引継予約
			))
			{
				ret = true;
			}
		}
		catch (RequestParameterException e) 
		{
			/*NOP*/ ;
		}

		return ret;
	}

}
