//
//	メソッド 環境クラス
//			変更履歴
//				2005.03.13	新規作成　梅原 浩司
//
package jp.co.ntt.lms.lo.method;

import java.util.*;
import jp.co.ntt.lms.lo.*;
import jp.co.ntt.lms.xmo.util.*;

public class MethodEnv extends LoEnvironment
{

	private static final String mstrFileName = "/conf/lo/Method.ini";

	/** プロパティファイルを保持します */
	private static Properties objProperty = null;

	// プロパティ定義
	/** 登録メニューURLパス */
	public static final String INSERT_MENU_URL = "insert_menu_url";		
	/** 更新メニューURLパス */
	public static final String UPDATE_MENU_URL = "update_menu_url";		
	/** 削除メニューURLパス */
	public static final String DELETE_MENU_URL = "delete_menu_url";
	/** メソッドLOのLoType */
	public static final String LO_TYPE = "lo_type"; 

	/**
	 * コンストラクタです
	 * @exception LOException
	 */
	public MethodEnv()
		throws LOException
	{
		super();
		// クラス単位の排他処理を行う。
		synchronized(this.getClass())
		{
			//	環境情報の初期化が行われていない時のみ
			//	環境ファイルを読み込む
			if(objProperty == null)
			{
				objProperty = loadProperty(mstrFileName);
			}
		}
	}
	
	/**
	 * メソッド登録メニューURLを取得します
	 *
	 * @return String 登録メニューURL
	 * @exception LOException LO固有の例外エラー
	 */
	public String getInsertMenuURL()
		throws LOException
	{
		try
		{
			return getProperty(INSERT_MENU_URL, objProperty);
		}
		catch(Exception e)
		{
			DebugLog.write( this.getClass(), e, DebugLog.HIGHT );
			throw new LOException(e.getMessage());
		}
	}

	/**
	 * メソッド更新メニューURLを取得します
	 *
	 * @return String 更新メニューURL
	 * @exception LOException LO固有の例外エラー
	 */
	public String getUpdateMenuURL()
		throws LOException
	{
		try
		{
			return getProperty(UPDATE_MENU_URL, objProperty);
		}
		catch(Exception e)
		{
			DebugLog.write( this.getClass(), e, DebugLog.HIGHT );
			throw new LOException(e.getMessage());
		}
	}

	/**
	 * メソッド削除メニューURLを取得します
	 *
	 * @return String 削除メニューURL
	 * @exception LOException LO固有の例外エラー
	 */
	public String getDeleteMenuURL()
		throws LOException
	{
		try
		{
			return getProperty(DELETE_MENU_URL, objProperty);
		}
		catch(Exception e)
		{
			DebugLog.write( this.getClass(), e, DebugLog.HIGHT );
			throw new LOException(e.getMessage());
		}
	}


	/**
	 * メソッドLOのLoTypeを取得します
	 *
	 * @return String メソッドLOのLoType
	 * @exception LOException LO固有の例外エラー
	 */
	public String getLoType()
		throws LOException
	{
		try
		{
			return getProperty(LO_TYPE, objProperty);
		}
		catch(Exception e)
		{
			DebugLog.write( this.getClass(), e, DebugLog.HIGHT );
			throw new LOException(e.getMessage());
		}
	}

	/**
	 * 評価ウィンドウオープンフラグを取得します
	 *
	 * @return String 評価ウィンドウオープンフラグ
	 */
	public String getEstimation()
		throws LOException
	{
		try
		{
			return getProperty(ESTIMATION, objProperty);
		}
		catch(Exception e)
		{
			DebugLog.write( this.getClass(), e, DebugLog.HIGHT );
			throw new LOException(e.getMessage());
		}
	}
}
