/*********************************************************************
* All Rights reserved,Copyright (c) K-Opticom
**********************************************************************
*＜プログラム内容＞
*   システム名      ：KK
*   モジュール名    ：JKKSetSessionMessage
*   ソースファイル名：JKKSetSessionMessage.java
*   作成者          ：富士通
*   日付            ：2012年04月02日
*＜機能概要＞
*   完了画面共通メッセージ設定部品です。
*＜修正履歴＞
*   バージョン  修正日       修正者      修正内容
*   v1.00.00    2012/04/02   富士通      新規作成
*
**********************************************************************/
package eo.web.webview.common;

import java.util.ArrayList;
import java.util.HashMap;
import javax.servlet.http.HttpSession;

import com.fujitsu.futurity.web.x31.X31BWebBusinessLogic;
import com.fujitsu.futurity.web.x31.X31CWebConst;
import com.fujitsu.futurity.web.x31.X31SDataBeanAccess;
import com.fujitsu.futurity.web.x33.X33CUtil;
import eo.web.webview.CommonInfoCF.CommonInfoCFConst;
import eo.web.webview.common.JCCMessageCache;

/**
 * 完了画面共通メッセージ設定部品です。<p>
 * XIＥＷロジック等で実装します。<p>
 * <BR>
 * @author 富士通
 */
public class JKKSetSessionMessage {
	
	/**画面ID*/
	public static final String SCREEN_ID = "NEXT_SCREEN_ID";
	
	@SuppressWarnings("unchecked")
	public static void setSessionMessage( X31BWebBusinessLogic arg0,ArrayList<HashMap<String, Object>> msgList) throws Exception 
	{
		
		if(msgList == null || msgList.isEmpty())
		{
			return;
		}
		
		for (int i = 0; i < msgList.size(); i++)
		{
			if(msgList.get(i) == null)
			{
				return;
			}
		}
		
		//セッションID取得
		String sessionId = arg0.getSession().getViewParamId().getSessionID();
		
		//セッション取得
		HttpSession session = X33CUtil.getSession( sessionId ).getSession();
		
		//セッション情報格納用の作成
		ArrayList<HashMap<String, String>> MsglistBaseMap = 
			(ArrayList<HashMap<String, String>>) session.getAttribute("MessageBodyInfo");
		if (MsglistBaseMap == null)
		{
			MsglistBaseMap = new ArrayList<HashMap<String, String>>();
			session.setAttribute("MessageBodyInfo", MsglistBaseMap);
		}

		//共有フォームBeanの遷移先画面ＩＤ
		//共有Bean アクセスクラスの取得
		X31SDataBeanAccess commonInfoBean = arg0.getCommonInfoBean();
		
		StringBuffer keyBuf = new StringBuffer();
		keyBuf.append(commonInfoBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_ID, X31CWebConst.DATABEAN_GET_VALUE));
		keyBuf.append("_Message_Body");

		// メッセージ編集処理
		String msg[]  = new String[msgList.size()];
		for (int i = 0; i < msg.length; i++)
		{
			if(msgList.get(i).get("rep_msg_list") == null)
			{
				msg[i] = JCCMessageCache.getMessage((String)msgList.get(i).get("msg_id"));
			}else{
				
				ArrayList<HashMap<String, Object>> outMsglist = (ArrayList<HashMap<String, Object>>)msgList.get(i).get("rep_msg_list");
				String[] repMsg = new String[outMsglist.size()];
				for (int j = 0; j < outMsglist.size(); j++)
				{
					repMsg[j] = (String)outMsglist.get(j).get("rep_msg");
				}
				msg[i] = JCCMessageCache.getMessage((String)msgList.get(i).get("msg_id"),repMsg);
			}
		}

		for (int i = 0; i < msg.length; i++)
		{
			HashMap<String,String> MsglistInfoMap = null;
			//新規にセッション格納用MAP作成
			MsglistInfoMap = new HashMap<String,String>();

			// 詰め替えたメッセージの配列を設定する
			MsglistInfoMap.put("MSG_BODY",msg[i]);

			//作成した情報オブジェクトをセッションへ格納する。
			MsglistBaseMap.add(MsglistInfoMap);
		}
	}
}
