/*********************************************************************
 *	All Rights reserved,Copyright (c) K-Opticom
 **********************************************************************
 *＜プログラム内容＞
 *	システム名		：eo顧客基幹システム
 *	モジュール名	：JFUSV012001ReqChk
 *	ソースファイル名：JFUSV012001ReqChk.java
 *	作成者			：FJ
 *	日付			：2011年07月19日
 *＜機能概要＞
 *	BPチェッククラスです。
 *＜修正履歴＞
 *	バージョン	修正日		修正者		修正内容
 *	v1.00.00	2011/07/19	FJ		新規作成
 *
 **********************************************************************/

package com.fujitsu.futurity.bp.custom.reqchk;

import java.util.ArrayList;
import java.util.HashMap;

import javax.faces.model.SelectItemGroup;

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;

/**
 * BPから呼び出すサービスIFの 実行条件判定を行う
 * 
 */
public class JCNSV002802ReqChk extends AbstractCustomReqChk {

	/**
	 * サービスIFの実行判定を実施する。
	 * 
	 * @param irp
	 * @param conditionvalue
	 * @return 判定結果
	 * @throws Throwable
	 */
	@SuppressWarnings("unchecked")
	public boolean checkExecution(IRequestParameterReadOnly irp,
			IConditionValue conditionvalue) throws ReqChkException {
		
		try {

			HashMap scMap = (HashMap) irp.getData("CNSV002801SC");

			if (null == scMap) {
				return false;
			}
			
			// EKK0201B001の検索結果が０件の場合実行しない。
			if (scMap.containsKey("EKK0201B001CBSMsg1List")) {

				ArrayList msgList = (ArrayList) scMap
						.get("EKK0201B001CBSMsg1List");

				if (msgList.size() < 1) {
					return false;
				}
			}

			// 会員種別が11または21かつ、コンテンツ契約番号選択値がNULLの場合実行する。
			if (scMap.containsKey("mbtype_cd")
					&& scMap.containsKey("select_cont_kei_no")) {

				String mbtype_cd = (String) scMap.get("mbtype_cd");
				String select_count_kei_no = (String) scMap
						.get("select_cont_kei_no");

				if ((("11".equals(mbtype_cd) || "21".equals(mbtype_cd)) && (null == select_count_kei_no || ""
						.equals(select_count_kei_no)))) {
					return true;
				}

			} 
		
		} catch (RequestParameterException e) {
			e.printStackTrace();
		}

		return false;
	}

}
