package org.solbase.cache;
import java.io.IOException;
import java.util.HashMap;
import java.util.Set;
import java.util.concurrent.TimeoutException;
import net.rubyeye.xmemcached.exception.MemcachedException;
import org.apache.lucene.index.Term;
import org.apache.solr.search.DocList;
import org.solbase.lucenehbase.CompactedTermDocMetadataArray;
import org.solbase.lucenehbase.ReaderCache;
import org.solbase.lucenehbase.TermDocMetadataVersionIdentifier;
public class DocListCachedWrapper {
private DocList docList;
private HashMap<Term, Long> termMap = new HashMap<Term, Long>();
private long timestamp;
public DocListCachedWrapper(DocList docList, Set<Term> terms, String indexName, int startDocId, int endDocId) throws IOException, InterruptedException, MemcachedException, TimeoutException {
this.docList = docList;
this.timestamp = System.currentTimeMillis();
for (Term term : terms) {
CachedObjectWrapper<CompactedTermDocMetadataArray, TermDocMetadataVersionIdentifier> cow = ReaderCache.getTermDocsMetadata(term, indexName, startDocId, endDocId);
termMap.put(term, cow == null ? 0 :cow.getVersionIdentifier().getVersionIdentifier());
}
}
public DocList getDocList() {
return docList;
}
public Long getVersionId(Term term) {
return termMap.get(term);
}
public long getTimestamp() {
return timestamp;
}
}