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;

public class JKKSV0674263CCReqChk extends AbstractCustomReqChk
{

	/**
	 * 実行判定処理
     * <BR>
     * @param irp
     * @param conditionvalue
	 * @return 条件を満たすときはtrue、満たさないときはfalse
	 * @throws ReqChkException
	 */
	@Override
	@SuppressWarnings( "unchecked" )
	public boolean checkExecution(IRequestParameterReadOnly irp, IConditionValue conditionvalue) throws ReqChkException {

		try {
			// 宅内機器在庫ＣＣ（電話）へのパラメータが無い場合はＣＣ呼出なし
			if (irp.getData("KKSV0674263CC") == null) {
				return false;
			}
			
			// 機器変更ＣＣ（電話）の結果を取得し、交換機器の一覧を取得する
			HashMap<String, Object> parentMap = (HashMap<String, Object>)irp.getData("KKSV0674257CC");
			if (parentMap == null) {
				return false;	// 機器変更ＣＣのパラメータなし
			}
			
			ArrayList list = (ArrayList)parentMap.get("chg_kiki_list");
			if (list == null || list.isEmpty()) {
				return false;	// 直送機器なし
			}
			
			return true;	// 宅内機器在庫を更新する機器あり

		} catch (RequestParameterException e) {
			e.printStackTrace();
			throw new ReqChkException(e.getMessage(), e);
		}
	}
}
