/*
 * $Id: RSSSyncConfig.java,v 1.2 2005/06/26 14:07:18 rampil Exp $
 * Copyright (c) 2004 LOGICAL-PARADOX.ORG
 */
package org.logical_paradox.rss.dsync;

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;

/**
 * RSSSyncConfig
 * 同期をサポートするオブジェクトの設定ファイルオブジェクト
 * @author satoshi akabane@logical-paradox.org
 * @version $Revision: 1.2 $
 */
public class RSSSyncConfig extends RSSConfig {
	/** 同期間隔 */
	protected int cfgSyncInterval;
	/** 同期キューサイズ */
	protected int cfgSyncQueueSize;

	/**
	 * コンストラクタ
	 * @param str コンフィグファイル名
	 */
	public RSSSyncConfig(String str) throws IOException, RSSIllegalConfigException {
		super(str);
	}
	/**
	 * 同期間隔を返す
	 * @return 同期間隔
	 */
	public int getSyncInterval() {
		if(cfgSyncInterval <= 0) {
			cfgSyncInterval = 500;
		}
		return cfgSyncInterval;
	}
	/**
	 * 同期キューのサイズを返す
	 * @return 同期キューのサイズ
	 */
	public int getSyncQueueSize() {
		if(cfgSyncQueueSize <= 0) {
			cfgSyncQueueSize = 200;
		}
		return cfgSyncQueueSize;
	}
	/**
	 * コンフィグファイルを解析する
	 * @return エラーメッセージ
	 */
	protected String checkResourceVariables() {
		StringBuffer errmsg = new StringBuffer();

		try {
			cfgSyncInterval = getPropertyAsInt("SYNC_INTERVAL");
		} catch(RSSValueFormatException vfe) {
			errmsg.append("SYNC_INTERVALの値が不正です");
		} catch(RSSNullValueException ne) {}

		try {
			cfgSyncQueueSize = getPropertyAsInt("SYNC_QUEUE_SIZE");
		} catch(RSSValueFormatException vfe) {
			errmsg.append("SYNC_QUEUE_SIZEの値が不正です");
		} catch(RSSNullValueException ne) {}

		return errmsg.toString();
	}
}

// end of RSSSyncConfig.java
