Esempio n. 1
0
            public virtual bool Next()
            {
                if (firstTime)
                {
                    // first time -- initialize
                    for (int i = 0; i < all.Count; i++)
                    {
                        Spans spans = (Spans)all[i];
                        if (spans.Next())
                        {
                            // move to first entry
                            queue.Put(spans);                             // build queue
                        }
                        else
                        {
                            all.RemoveAt(i--);
                        }
                    }
                    firstTime = false;
                    return(queue.Size() != 0);
                }

                if (queue.Size() == 0)
                {
                    // all done
                    return(false);
                }

                if (Top().Next())
                {
                    // move to next
                    queue.AdjustTop();
                    return(true);
                }

                all.Remove(queue.Pop());                 // exhausted a clause

                return(queue.Size() != 0);
            }
Esempio n. 2
0
 private bool InitSpanQueue(int target)
 {
     queue = new SpanQueue(enclosingInstance, Enclosing_Instance.clauses.Count);
     System.Collections.IEnumerator i = Enclosing_Instance.clauses.GetEnumerator();
     while (i.MoveNext())
     {
         PayloadSpans spans = ((SpanQuery)i.Current).GetPayloadSpans(reader);
         if (((target == -1) && spans.Next()) || ((target != -1) && spans.SkipTo(target)))
         {
             queue.Put(spans);
         }
     }
     return(queue.Size() != 0);
 }
Esempio n. 3
0
			private bool InitSpanQueue(int target)
			{
				queue = new SpanQueue(enclosingInstance, Enclosing_Instance.clauses.Count);
				System.Collections.IEnumerator i = Enclosing_Instance.clauses.GetEnumerator();
				while (i.MoveNext())
				{
					Spans spans = ((SpanQuery) i.Current).GetSpans(reader);
					if (((target == - 1) && spans.Next()) || ((target != - 1) && spans.SkipTo(target)))
					{
						queue.Put(spans);
					}
				}
				return queue.Size() != 0;
			}
Esempio n. 4
0
            private bool InitSpanQueue(int target)
            {
                queue = new SpanQueue(enclosingInstance, Enclosing_Instance.clauses.Count);
                foreach (SpanQuery i in Enclosing_Instance.clauses)
                {
                    Spans spans = i.GetSpans(reader);
                    if (((target == -1) && spans.Next()) || ((target != -1) && spans.SkipTo(target)))
                    {
                        queue.Put(spans);
                    }
                }

                return(queue.Size() != 0);
            }