/**
 * プロジェクト名 miniShop
 * クラス名 PropertyLoader.java
 * 作成日: 2006/02/25
 * 
 */
package jp.co.lax.sample.service.util;

import java.io.IOException;
import java.util.Enumeration;
import java.util.HashMap;
import java.util.Map;
import java.util.ResourceBundle;

/**
 * 
 * ファイル名：PropertyLoader.java.
 * 
 * @author 中村真一郎 作成時刻：12:11:11
 * 
 */
public final class PropertyLoader {
	/**
	 * アプリケーションの設定値が格納されている.
	 */
	private static Map APP_MAP = null;

	/**
	 * アプリケーションの設定ファイル名.
	 */
	private static final String PROP_FILE = "dbConf";

	/**
	 * ユーティリティクラスであるからstatic methodのみ.
	 * 
	 */
	private PropertyLoader() {

	}

	/**
	 * プロペティ値のロード.
	 * 
	 * @return java.util.Map map
	 * 
	 */
	public static Map loadSystemProperties() throws IOException {
		ResourceBundle bundle = null;
		bundle = ResourceBundle.getBundle(PROP_FILE);
		if (APP_MAP == null) {
			APP_MAP = toMap(bundle);
		}

		return APP_MAP;
	}

	private static Map toMap(ResourceBundle bundle) {
		if (bundle == null) {
			throw new IllegalArgumentException("bundle=" + bundle);
		}

		Map result = new HashMap();
		for (Enumeration enumeration = bundle.getKeys(); enumeration
				.hasMoreElements();) {
			String key = (String) enumeration.nextElement();
			Object value = bundle.getObject(key);
			result.put(key, value);
		}
		return result;
	}
}
