/*******************************************************************************
*	All Rights reserved,Copyright (c) K-Opticom
********************************************************************************
*＜プログラム内容＞
*	システム名		：eo顧客基幹システム
*   モジュール名    ：JCCPrintAccessLog
*   ソースファイル名：JCCPrintAccessLog.java
*   作成者          ：富士通
*   日付            ：2011年06月06日
*＜機能概要＞
*   アクセスログ出力部品クラス
*＜修正履歴＞
*   バージョン  修正日      修正者      修正内容
*   v1.00.00    2011/06/06  富士通      新規作成
*   v9.00.00    2014/06/20  FJ          ANK-2086-00-00 アクセスログ量販対応
*
**********************************************************************/

package eo.ejb.common;


import java.util.HashMap;

import com.fujitsu.futurity.model.ejb.common.JSYejbLog;

import eo.ejb.cbs.cbsmsg.ECCLOG00001CBSMsg;


/**
 * 指定した画面IDがアクセスログ出力対象定義ファイルに登録されている場合、アクセスログを出力します。
 * 登録されていない場合、何もしません。
 * 
 * @author 富士通
 */
public class JCCPrintAccessLog {
	
	/** アクセスログ出力定義エラーフラグ */
	public static final String ERR_TEIGI = "ERR_TEIGI";
	
	/** アクセスログ出力有無 */
	public static final String UM_ACCSS_LOG = "UM_ACCSS_LOG";
	
	/** ログ出力実行エラーフラグ */
	public static final String ERR_LOG_OUTPUT = "ERR_LOG_OUTPUT";
	
	/**
	 * プロパティファイルに登録されている画面IDと一致した場合にアクセスログを出力します。
	 * @param  sosaDiv   個人情報に対して行おうとした操作
	 * @param  gamenId	  画面を一意で識別するコード
	 * @param  sosaDivSub 差し替え用操作区分
	 * @return outputMap 出力結果の HashMap
	 */
	public static HashMap<String, String> outputAccessLog(String sosaDiv, String gamenId, String sosaDivSub) 
	{
		HashMap<String, String> outputMap = new HashMap<String, String>();
		String repStr = null;
		
		// 2012/05/17 VIEW層からのアクセスログ出力対応 start
		try
		{
			// sosaDivの設定値を分割して画面名とボタン名と操作区分を取得する
			String[] splt1 = sosaDiv.split(":");
			String[] splt2 = splt1[0].split(";");
			
			// 操作区分を再設定
			sosaDiv = splt1[1];
			// v9.00.00 ANK-2086-00-00 代替操作区分があれば上書き
			if (sosaDivSub != null && sosaDivSub.length() > 0) {
				sosaDiv = sosaDivSub;
			}
			
			// 画面名 + 全角スペース + ボタン名を出力形式として設定
			repStr = splt2[0] + "　" + splt2[1];
		}
		catch (Exception e)
		{
			outputMap.put(ERR_TEIGI, "1");
			outputMap.put(UM_ACCSS_LOG, "0");
			outputMap.put(ERR_LOG_OUTPUT, "0");
			return outputMap;
		}
		
		// 出力用mapに値をセット
		outputMap.put(ERR_TEIGI, "0");
		outputMap.put(UM_ACCSS_LOG, "1");
		outputMap.put(ERR_LOG_OUTPUT, "0");
		
		// 2012/05/17 VIEW層からのアクセスログ出力対応 end
		
		try
		{
			//アクセスログ出力
			JSYejbLog.printAccessLog(ECCLOG00001CBSMsg.class, "BPCON0I002", new String[]{repStr}, sosaDiv, null);
		}
		catch (Exception e)
		{
			outputMap.put(ERR_LOG_OUTPUT, "1");
			return outputMap;
		}
		
		outputMap.put(ERR_LOG_OUTPUT, "0");

		return outputMap;
	}
}
