/*
 * @(#)ZProperties.java
 *
 * Copyright 2001 by Intelligent Technology Inc. All rights reserved.
 *
 * プロパティアクセス
 */
package jp.co.iti.fagot.util;

import java.awt.Color;

import java.util.Properties;

import jp.co.iti.fagot.util.ZDebug;
/**
 * プロパティのアクセス簡易メソッドを定義する
 *
 * @author  福島康治
 * @version 1.01 2002/10/23
 */
public class ZProperties extends Properties {

	//## Int ##########################################################
	/**
	 * キーに対応する数値を取得します。
	 * @param szKey リソースキーワード
	 * @param nDefault 未設定の場合のデフォルト値
	 */
	public int getInt(String szKey,int nDefault) {
	String szStr;
	int    nValue;
	szStr = getProperty(szKey);
	if ( szStr != null ) {
		try {
			nValue = Integer.parseInt(szStr);
		} catch(NumberFormatException nf) {
			nValue = nDefault ;
		}
	} else {
		nValue = nDefault ;
	}
	return nValue;
	}

	/**
	 * キーに対応するリソース文字列を設定します。
	 * @param szKey リソースキーワード
	 * @param nValue 設定値
	 */
	public void putInt(String szKey,int nValue) {
	setProperty(szKey,String.valueOf(nValue));
	}

	//## Boolean ######################################################
	/**
	 * キーに対応する真理値を取得します。
	 * @param szKey リソースキーワード
	 * @param bDefault デフォルト値
	 */
	public boolean getBoolean(String szKey,boolean bDefault) {
	boolean bRet = bDefault;
	String szStr = getProperty(szKey);
	if ( szStr != null ) {
		if ( szStr.toLowerCase().equals("true") ) {
			bRet = true;
		} else if ( szStr.toLowerCase().equals("false") ) {
			bRet = false;
		}
	}
	return bRet;
	}

	/**
	 * キーに対応する真理値を設定します。
	 * 設定されていない場合はfalseを返します
	 * @param szKey リソースキーワード
	 * @param bValue 設定値
	 */
	public void putBoolean(String szKey,boolean bValue) {
	setProperty(szKey,(bValue?"true":"false"));
	}

	//## Color ########################################################
	/**
	 * キーに対応する色を取得します。
	 * @param szKey リソースキーワード
	 */
	public Color getColor(String szKey) {
	String szStr = getProperty(szKey);
	return ZGraphicUtil.stringToColor(szStr);
	}

	//## アトリビュート ###############################################
}
