/*
 * $Id: SimpleConcreteInterfaceFactory.java,v 1.5 2005/05/31 14:38:20 rampil Exp $
 * Copyright (c) 2004 LOGICAL-PARADOX.ORG
 */
package org.logical_paradox.koike.simple;

import java.util.Iterator;

import org.logical_paradox.common.util.Cache;
import org.logical_paradox.koike.core.ConcreteInterfaceFactory;
import org.logical_paradox.koike.core.document.DocumentAccessor;
import org.logical_paradox.koike.core.indexer.IndexAccessor;
import org.logical_paradox.koike.core.search.SearchConditionOptimizer;
import org.logical_paradox.koike.simple.document.LocalQueueCollection;
import org.logical_paradox.koike.simple.document.SimpleDocumentAccessor;
import org.logical_paradox.koike.simple.indexer.SimpleIndexAccessor;

/**
 * スタンドアローンで動作するタイプの具象インターフェースファクトリ
 * @author satoshi akabane@logical-paradox.org
 * @version $Revision: 1.5 $
 */
public class SimpleConcreteInterfaceFactory extends ConcreteInterfaceFactory {
	/**
	 * コンストラクタ
	 * @param param 初期化文字列
	 * @throws Exception インスタンスの生成中に発生した例外
	 */
	public SimpleConcreteInterfaceFactory(String param) throws Exception {
		super(param);
	}

	public void setup() throws Exception {
	}

	public DocumentAccessor getDocumentAccessor() throws Exception {
		return new SimpleDocumentAccessor();
	}

	public IndexAccessor getIndexAccessor() throws Exception {
		return new SimpleIndexAccessor();
	}
	/**
	 * キューからコンテンツのダイジェストを取得するイテレータを返す
	 * @return イテレータ(要素の扱いが完全に同期化されているタイプ)
	 */
	public Iterator getRemoteQueueIterator() throws Exception {
		LocalQueueCollection.load(SimpleSetConstant.LOCAL_CONTENTS_DIR);
		Cache cache = LocalQueueCollection.getQueue(); 
		return cache.iterator();
	}

	/* (非 Javadoc)
	 * @see org.logical_paradox.koike.core.ConcreteInterfaceFactory#getOptimizer()
	 */
	public SearchConditionOptimizer getOptimizer() throws Exception {
		// TODO 自動生成されたメソッド・スタブ
		return null;
	}

}
