/*******************************************************************************
*	All Rights reserved,Copyright (c) K-Opticom
********************************************************************************
*＜プログラム内容＞
*	システム名		：eo顧客基幹システム
*	モジュール名	：JCCAccessLogEventCache
*	ソースファイル名：JCCAccessLogEventCache.java
*	作成者			：富士通
*	日付			：2011年06月06日
*＜機能概要＞
*	アクセスログ出力制御プロパティのキャッシュクラス
*＜修正履歴＞
*	バージョン	修正日		修正者		修正内容
*	v1.00.00	2011/06/06	富士通		新規作成
*
**********************************************************************/

package eo.ejb.common;

import java.util.HashMap;

import com.fujitsu.futurity.common.JCMPropertyCache;
import com.fujitsu.futurity.model.common.JCMAPLConstMgr;


/**
 * アクセスログ出力制御プロパティファイルの読み込みを行うクラス。
 * <p>
 * 
 * @author 富士通
 * @since 9.00.00
 */
public class JCCAccessLogEventCache extends JCMPropertyCache
{
	/**
	 * 本クラスのシングルトンインスタンス
	 */
	private static JCCAccessLogEventCache prop = null;

	private static HashMap propMap = new HashMap();

	/**
	 * アクセスログ出力制御プロパティのパスを設定します。
	 * @param prop_path     アクセスログ出力制御プロパティファイルのパス
	 * @param prop_encoding アクセスログ出力制御プロパティファイルの文字コード
	 */
	private static void setPath(String prop_path, String prop_encoding)
	{
		JCCAccessLogEventCache rc = JCCAccessLogEventCache.getInstance();

		rc.PATH = prop_path;
		rc.ENCODING = prop_encoding;

	}

	/**
	 * 本クラスのシングルトンインスタンスを取得します。
	 * 
	 * @return JCMLogMaskItemCache シングルトンインスタンス
	 */
	private static JCCAccessLogEventCache getInstance()
	{
		if (null == prop)
		{
			prop = new JCCAccessLogEventCache();
		}

		return prop;
	}

	/**
	 * 指定されたキーに対応する値を返却します。
	 * 
	 * @param key サービスＩ／Ｆ−ＩＤ
	 * @return String 出力有無文字列
	 * @throws Exception
	 */
	public synchronized static String getValue(String key) throws Exception
	{
		//プロパティファイルからファイルパスと文字コードを取得
		String ACCESSLOGEVENT_FILE_PATH = JCMAPLConstMgr.getString(JCMAPLConstMgr.ACCESSLOGEVENT_FILE_PATH);
		String ACCESSLOGEVENT_FILE_ENCODING = JCMAPLConstMgr.getString(JCMAPLConstMgr.ACCESSLOGEVENT_FILE_ENCODING);
		
		// パスを設定
		setPath(ACCESSLOGEVENT_FILE_PATH, ACCESSLOGEVENT_FILE_ENCODING);
		
		// 親クラスのgetValuePropメソッドを値を取得
		String val = JCCAccessLogEventCache.getInstance().getValueProp(key);
		
		return val;
	}
}
