MtasSpanMatchNoneSpans.java

  1. package mtas.search.spans;

  2. import java.io.IOException;

  3. import org.apache.lucene.search.TwoPhaseIterator;
  4. import org.apache.lucene.search.spans.SpanCollector;

  5. import mtas.search.spans.util.MtasSpanQuery;
  6. import mtas.search.spans.util.MtasSpans;

  7. /**
  8.  * The Class MtasSpanMatchNoneSpans.
  9.  */
  10. public class MtasSpanMatchNoneSpans extends MtasSpans {

  11.   /** The query. */
  12.   private MtasSpanQuery query;

  13.   /** The current start position. */
  14.   private int currentStartPosition;

  15.   /** The current end position. */
  16.   private int currentEndPosition;

  17.   /** The doc id. */
  18.   private int docId;

  19.   /**
  20.    * Instantiates a new mtas span match none spans.
  21.    *
  22.    * @param query the query
  23.    */
  24.   public MtasSpanMatchNoneSpans(MtasSpanQuery query) {
  25.     currentStartPosition = NO_MORE_POSITIONS;
  26.     currentEndPosition = NO_MORE_POSITIONS;
  27.     docId = -1;
  28.     this.query = query;
  29.   }

  30.   /*
  31.    * (non-Javadoc)
  32.    *
  33.    * @see org.apache.lucene.search.spans.Spans#nextStartPosition()
  34.    */
  35.   @Override
  36.   public int nextStartPosition() throws IOException {
  37.     return currentStartPosition;
  38.   }

  39.   /*
  40.    * (non-Javadoc)
  41.    *
  42.    * @see org.apache.lucene.search.spans.Spans#startPosition()
  43.    */
  44.   @Override
  45.   public int startPosition() {
  46.     return currentStartPosition;
  47.   }

  48.   /*
  49.    * (non-Javadoc)
  50.    *
  51.    * @see org.apache.lucene.search.spans.Spans#endPosition()
  52.    */
  53.   @Override
  54.   public int endPosition() {
  55.     return currentEndPosition;
  56.   }

  57.   /*
  58.    * (non-Javadoc)
  59.    *
  60.    * @see org.apache.lucene.search.spans.Spans#width()
  61.    */
  62.   @Override
  63.   public int width() {
  64.     return 0;
  65.   }

  66.   /*
  67.    * (non-Javadoc)
  68.    *
  69.    * @see
  70.    * org.apache.lucene.search.spans.Spans#collect(org.apache.lucene.search.spans
  71.    * .SpanCollector)
  72.    */
  73.   @Override
  74.   public void collect(SpanCollector collector) throws IOException {
  75.     // do nothing
  76.   }

  77.   /*
  78.    * (non-Javadoc)
  79.    *
  80.    * @see org.apache.lucene.search.DocIdSetIterator#docID()
  81.    */
  82.   @Override
  83.   public int docID() {
  84.     return docId;
  85.   }

  86.   /*
  87.    * (non-Javadoc)
  88.    *
  89.    * @see org.apache.lucene.search.DocIdSetIterator#nextDoc()
  90.    */
  91.   @Override
  92.   public int nextDoc() throws IOException {
  93.     docId = NO_MORE_DOCS;
  94.     currentStartPosition = NO_MORE_POSITIONS;
  95.     currentEndPosition = NO_MORE_POSITIONS;
  96.     return docId;
  97.   }

  98.   /*
  99.    * (non-Javadoc)
  100.    *
  101.    * @see org.apache.lucene.search.DocIdSetIterator#advance(int)
  102.    */
  103.   @Override
  104.   public int advance(int target) throws IOException {
  105.     docId = NO_MORE_DOCS;
  106.     currentStartPosition = NO_MORE_POSITIONS;
  107.     currentEndPosition = NO_MORE_POSITIONS;
  108.     return docId;
  109.   }

  110.   /*
  111.    * (non-Javadoc)
  112.    *
  113.    * @see org.apache.lucene.search.DocIdSetIterator#cost()
  114.    */
  115.   @Override
  116.   public long cost() {
  117.     return 0;
  118.   }

  119.   /*
  120.    * (non-Javadoc)
  121.    *
  122.    * @see org.apache.lucene.search.spans.Spans#positionsCost()
  123.    */
  124.   @Override
  125.   public float positionsCost() {
  126.     return 0;
  127.   }

  128.   /*
  129.    * (non-Javadoc)
  130.    *
  131.    * @see mtas.search.spans.util.MtasSpans#asTwoPhaseIterator()
  132.    */
  133.   @Override
  134.   public TwoPhaseIterator asTwoPhaseIterator() {
  135.     if (!query.twoPhaseIteratorAllowed()) {
  136.       return null;
  137.     } else {
  138.       // TODO
  139.       return null;
  140.     }
  141.   }

  142. }