package org.logical_paradox.rss.rcm.df;

/**
 * データフィルタを動的に選択するファクトリ
 * 
 * @author satoshi akabane@logical-paradox.org
 * @version $Revision: 1.2 $
 */
public final class DataFilterFactory {
	public static final int GZIP = 1;
	public static final int ZIP = 2;

	private static final GZIPDataFilter typeGZIPfilter = new GZIPDataFilter();
	/**
	 * データフィルタを生成するファクトリメソッド
	 * @param type データフィルタのタイプ
	 * @return 生成されたデータフィルタ
	 * @throws IllegalArgumentException 指定されたタイプが定義されていない
	 */
	public static DataFilter getFilter(int type) throws IllegalArgumentException {
		switch(type) {
			case GZIP:
				return typeGZIPfilter;
			case ZIP:
				return null;
			default:
				throw new IllegalArgumentException("not found such type: " + type);
		}
	}
}
