52 lines
886 B
Java
52 lines
886 B
Java
package com.twitter.search.common.query;
|
|
|
|
import java.io.IOException;
|
|
|
|
import org.apache.lucene.search.DocIdSetIterator;
|
|
|
|
public class SingleDocDocIdSetIterator extends DocIdSetIterator {
|
|
|
|
// the only docid in the list
|
|
private final int doc;
|
|
|
|
private int docid = -1;
|
|
|
|
public SingleDocDocIdSetIterator(int doc) {
|
|
this.doc = doc;
|
|
}
|
|
|
|
@Override
|
|
public int docID() {
|
|
return docid;
|
|
}
|
|
|
|
@Override
|
|
public int nextDoc() throws IOException {
|
|
if (docid == -1) {
|
|
docid = doc;
|
|
} else {
|
|
docid = NO_MORE_DOCS;
|
|
}
|
|
return docid;
|
|
}
|
|
|
|
@Override
|
|
public int advance(int target) throws IOException {
|
|
if (docid == NO_MORE_DOCS) {
|
|
return docid;
|
|
} else if (doc < target) {
|
|
docid = NO_MORE_DOCS;
|
|
return docid;
|
|
} else {
|
|
docid = doc;
|
|
}
|
|
return docid;
|
|
}
|
|
|
|
@Override
|
|
public long cost() {
|
|
return 1;
|
|
}
|
|
|
|
}
|