Beispiel #1
0
 public override int Advance(int target)
 {
     if (Debugging.AssertsEnabled)
     {
         Debugging.Assert(target > doc);
     }
     while (true)
     {
         if (current != null)
         {
             int doc;
             if (target < currentBase)
             {
                 // target was in the previous slice but there was no matching doc after it
                 doc = current.NextDoc();
             }
             else
             {
                 doc = current.Advance(target - currentBase);
             }
             if (doc == NO_MORE_DOCS)
             {
                 current = null;
             }
             else
             {
                 return(this.doc = doc + currentBase);
             }
         }
         else if (upto == numSubs - 1)
         {
             return(this.doc = NO_MORE_DOCS);
         }
         else
         {
             upto++;
             current     = subs[upto].DocsEnum;
             currentBase = subs[upto].Slice.Start;
         }
     }
 }
Beispiel #2
0
 public override int Advance(int target)
 {
     return(m_input.Advance(target));
 }