MtasSpanStartSpans.java
package mtas.search.spans;
import java.io.IOException;
import org.apache.lucene.search.TwoPhaseIterator;
import org.apache.lucene.search.spans.SpanCollector;
import org.apache.lucene.search.spans.Spans;
import mtas.search.spans.util.MtasSpans;
/**
* The Class MtasSpanStartSpans.
*/
public class MtasSpanStartSpans extends MtasSpans {
/** The query. */
private MtasSpanStartQuery query;
/** The spans. */
private Spans spans;
/**
* Instantiates a new mtas span start spans.
*
* @param query the query
* @param spans the spans
*/
public MtasSpanStartSpans(MtasSpanStartQuery query, Spans spans) {
super();
this.query = query;
this.spans = spans;
}
/*
* (non-Javadoc)
*
* @see org.apache.lucene.search.spans.Spans#nextStartPosition()
*/
@Override
public int nextStartPosition() throws IOException {
return (spans == null) ? NO_MORE_POSITIONS : spans.nextStartPosition();
}
/*
* (non-Javadoc)
*
* @see org.apache.lucene.search.spans.Spans#startPosition()
*/
@Override
public int startPosition() {
return (spans == null) ? -1 : spans.startPosition();
}
/*
* (non-Javadoc)
*
* @see org.apache.lucene.search.spans.Spans#endPosition()
*/
@Override
public int endPosition() {
return (spans == null) ? -1 : spans.startPosition();
}
/*
* (non-Javadoc)
*
* @see org.apache.lucene.search.spans.Spans#width()
*/
@Override
public int width() {
return 0;
}
/*
* (non-Javadoc)
*
* @see
* org.apache.lucene.search.spans.Spans#collect(org.apache.lucene.search.spans
* .SpanCollector)
*/
@Override
public void collect(SpanCollector collector) throws IOException {
if (spans != null) {
spans.collect(collector);
}
}
/*
* (non-Javadoc)
*
* @see org.apache.lucene.search.DocIdSetIterator#docID()
*/
@Override
public int docID() {
return (spans == null) ? NO_MORE_DOCS : spans.docID();
}
/*
* (non-Javadoc)
*
* @see org.apache.lucene.search.DocIdSetIterator#nextDoc()
*/
@Override
public int nextDoc() throws IOException {
return (spans == null) ? NO_MORE_DOCS : spans.nextDoc();
}
/*
* (non-Javadoc)
*
* @see org.apache.lucene.search.DocIdSetIterator#advance(int)
*/
@Override
public int advance(int target) throws IOException {
return (spans == null) ? NO_MORE_DOCS : spans.advance(target);
}
/*
* (non-Javadoc)
*
* @see mtas.search.spans.util.MtasSpans#asTwoPhaseIterator()
*/
@Override
public TwoPhaseIterator asTwoPhaseIterator() {
if (spans == null || !query.twoPhaseIteratorAllowed()) {
return null;
} else {
return spans.asTwoPhaseIterator();
}
}
/*
* (non-Javadoc)
*
* @see org.apache.lucene.search.DocIdSetIterator#cost()
*/
@Override
public long cost() {
return (spans == null) ? 0 : spans.cost();
}
/*
* (non-Javadoc)
*
* @see org.apache.lucene.search.spans.Spans#positionsCost()
*/
@Override
public float positionsCost() {
return (spans == null) ? 0 : spans.positionsCost();
}
}