/*
 * $Id: OQS4RConfig.java,v 1.4 2004/09/20 22:59:00 rampil Exp $
 * Copyright (c) 2004 LOGICAL-PARADOX.ORG
 */
package org.logical_paradox.rss.oqs4r;

import java.io.IOException;

import org.logical_paradox.rss.RSSConfig;
import org.logical_paradox.rss.RSSIllegalConfigException;
import org.logical_paradox.rss.RSSNullValueException;
import org.logical_paradox.rss.RSSValueFormatException;

/**
 * oqs4rのコンフィグ
 * @author  satoshi akabane@logical-paradox.org
 * @version $Revision: 1.4 $
 */
public class OQS4RConfig extends RSSConfig {
	// 分散サービスレジストリ
	private String dsr;
	// キャッシュタイムアウト秒数(msec)
	private int cacheExpireSec;
	// プーリングする接続数
	private int preparedConnections;
	// ログファイル名
	private String runlogFilename;
	// ログ設定
	private boolean runlogSwitch;

	/**
	 * コンストラクタ
	 * @param fn ファイル名
	 * @throws IOException コンフィグファイルの読み込みに失敗した
	 * @throws RSSIllegalConfigException コンフィグファイルの内容がおかしい場合に発生する例外
	 */
	public OQS4RConfig(String fn) throws IOException, RSSIllegalConfigException {
		super(fn);
	}

	public String getDSRName() {
		return dsr;
	}
	public int getCacheExpireSec() {
		return cacheExpireSec;
	}
	public boolean isEnableRunLog() {
		return runlogSwitch;
	}
	public String getRunLogFilename() {
		return runlogFilename;
	}
	public int getPreparedConnections() {
		return preparedConnections;
	}
	/**
	 * パラメータ確認メソッド
	 */
	protected String checkResourceVariables() {
		String errmsg = "";

		dsr = getProperty( "RSS_DSR" );
		if( dsr == null ) {
			errmsg += "RSS_DSRが指定されていません\n";
		}
		try {
			cacheExpireSec = getPropertyAsInt( "CACHE_EXPIRE_MSEC" );
		} catch(RSSValueFormatException vfe) {
			errmsg += "CACHE_EXPIRE_MSECの値が不正です\n";
		} catch(RSSNullValueException ne) {}
		try {
			preparedConnections = getPropertyAsInt( "PREPARED_CONNECTIONS" );
		} catch(RSSValueFormatException vfe) {
			errmsg += "PREPARED_CONNECTIONSの値が不正です\n";
		} catch(RSSNullValueException ne) {}

		runlogFilename = getProperty("OQS4R_RUNLOG_FILENAME");
		try {
			runlogSwitch = getPropertyAsBool( "OQS4R_RUNLOG_SW" );
		} catch(RSSValueFormatException vfe) {
			errmsg += "OQS4R_RUNLOG_SWの値が不正です\n";
		} catch(RSSNullValueException ne) {}
		return errmsg;
	}


}
