/*********************************************************************
*   All Rights reserved,Copyright (c) K-Opticom
**********************************************************************
*＜プログラム内容＞
*   システム名      ：eo顧客基幹システム
*   モジュール名    ：JKUejbRule0049001
*   ソースファイル名：JKUejbRule0049001.java
*   作成者          ：富士通
*   日付            ：2011年04月26日
*＜機能概要＞
*   主要機器判定相関ルールチェック部品
*＜修正履歴＞
*   バージョン  修正日      修正者      修正内容
*   v1.00.00    2011/04/26  富士通      新規作成
*
**********************************************************************/

package eo.ejb.common.rule;

import java.util.ArrayList;
import java.util.HashMap;
import com.fujitsu.futurity.model.base.CAANMsg;
import com.fujitsu.futurity.model.ejb.common.JSYejbSokanRuleEngineAccessor;
import com.fujitsu.futurity.rule.common.JRuleXMLHandler;

import eo.common.constant.JKUStrConst;
import eo.common.constant.JRule0049001Const;

/**
 * 相関ルールチェック部品
 * 料金グループコードの主要機器を返却する
 * @author 富士通
 */
public class JKUejbRule0049001
{
	/**
	 * 相関ルールIDを指定する
	 */
	private static final String RULEID = JRule0049001Const.RULEID;

	/**
	 * 相関ルール呼び出しを呼び出します
	 * @param arg PRC_GRP_CD
	 * @return String DOJI_MSKM_PRC_GRP_MAIN_KIKI
	 * @author 富士通
	 */
	public String chkSokanRule0049001(String arg)
	{
		
		// ルールエンジン実行用のハンドラを生成
		JRuleXMLHandler hndl = JSYejbSokanRuleEngineAccessor.createSokanRuleEngine(RULEID);
		
		// 前処理
		HashMap<String, Object> userMap = createUserMap(arg);
		
		// 相関ルール呼び出し
		HashMap<String, Object> resultMap = execRule(hndl, userMap);
		
		return (String)resultMap.get(JRule0049001Const.DOJI_MSKM_PRC_GRP_MAIN_KIKI);
	}

	/**
	 * ルールエンジンに入力するuserMapを作成します
	 * 
	 * @param arg
	 * @return userMap
	 * @author 富士通
	 */
	private HashMap<String, Object> createUserMap(String arg)
	{
		// 入力用HashMapの作成
		HashMap<String, Object> userMap = new HashMap<String, Object>();
		
		
		userMap.put(JRule0049001Const.PRC_GRP_CD, arg); 
		
		return userMap;
		
	}


	/**
	 * ルールエンジンの呼び出しを行います
	 * 
	 * @param hndl
	 *            呼び出すルールのID呼び出すルールのID
	 * @param userMap
	 *            ルールエンジンに入力するuserMap
	 * @return エンジンの処理結果をHashMapで返却
	 * @author 富士通
	 */
	private HashMap<String, Object> execRule(JRuleXMLHandler hndl, HashMap<String, Object> userMap)
	{
		// userMapを指定してルールエンジンを実行
		ArrayList<ArrayList<HashMap<String, Object>>> list = hndl.getCheckResultArray(userMap);
	
		HashMap<String, Object> resultMap = new HashMap<String, Object>();
	
		if (list != null && list.size() != 0)
		{
			resultMap = list.get(0).get(0);
		}
		
		return resultMap;
	
	}
}
