package proj.zoie.impl.indexing; import java.io.IOException; import java.util.ArrayList; import java.util.List; import org.apache.log4j.Logger; import org.apache.lucene.index.IndexReader; import proj.zoie.api.IndexReaderFactory; import proj.zoie.api.ZoieException; import proj.zoie.api.ZoieMultiReader; public class SimpleReaderCache<R extends IndexReader> extends AbstractReaderCache<R> { private static final Logger logger = Logger.getLogger(SimpleReaderCache.class); private final IndexReaderFactory<R> _readerFactory; public SimpleReaderCache(IndexReaderFactory<R> readerfactory) { _readerFactory = readerfactory; } @Override public List<ZoieMultiReader<R>> getIndexReaders() { try { return _readerFactory.getIndexReaders(); } catch (IOException e) { logger.error(e.getMessage(), e); return new ArrayList<ZoieMultiReader<R>>(); } } @Override public void returnIndexReaders(List<ZoieMultiReader<R>> readers) { _readerFactory.returnIndexReaders(readers); } @Override public void refreshCache(long timeout) throws ZoieException { } @Override public void start() { } @Override public void shutdown() { } @Override public void setFreshness(long freshness) { } @Override public long getFreshness() { return 0; } public static ReaderCacheFactory FACTORY = new ReaderCacheFactory() { @Override public <R extends IndexReader> AbstractReaderCache<R> newInstance( IndexReaderFactory<R> readerfactory) { return new SimpleReaderCache<R>(readerfactory); } }; }