package com.browseengine.bobo.api; import java.io.IOException; import java.util.Map; import java.util.Set; import org.apache.lucene.index.IndexReader; import org.apache.lucene.search.Collector; import org.apache.lucene.search.Query; import org.apache.lucene.search.SortField; import org.apache.lucene.search.Weight; import com.browseengine.bobo.facets.FacetHandler; import com.browseengine.bobo.sort.SortCollector; public interface Browsable { void browse(BrowseRequest req, Weight w, Collector hitCollector, Map<String, FacetAccessible> facets, int start) throws BrowseException; IndexReader getIndexReader(); BrowseResult browse(BrowseRequest req) throws BrowseException; Set<String> getFacetNames(); void setFacetHandler(FacetHandler<?> facetHandler) throws IOException; FacetHandler<?> getFacetHandler(String name); Map<String, FacetHandler<?>> getFacetHandlerMap(); String[] getFieldVal(int docid, String fieldname) throws IOException; Object[] getRawFieldVal(int docid, String fieldname) throws IOException; int numDocs(); SortCollector getSortCollector(SortField[] sort, Query q, int offset, int count, boolean fetchStoredFields, Set<String> termVectorsToFetch, String[] groupBy, int maxPerGroup, boolean collectDocIdCache); void doClose() throws IOException; }