public override bool Next() { if (queue == null) { return(InitSpanQueue(-1)); } if (queue.Size() == 0) // all done { return(false); } if (Top().Next()) // move to next { queue.UpdateTop(); return(true); } queue.Pop(); // exhausted a clause return(queue.Size() != 0); }
public virtual bool Next() { if (queue == null) { return(InitSpanQueue(-1)); } if (queue.Size() == 0) { // all done return(false); } if (Top().Next()) { // move to next queue.AdjustTop(); return(true); } queue.Pop(); // exhausted a clause return(queue.Size() != 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); }
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; }
private bool InitSpanQueue(int target, IState state) { queue = new SpanQueue(enclosingInstance, Enclosing_Instance.clauses.Count); System.Collections.Generic.IEnumerator <SpanQuery> i = Enclosing_Instance.clauses.GetEnumerator(); while (i.MoveNext()) { Spans spans = i.Current.GetSpans(reader, state); if (((target == -1) && spans.Next(state)) || ((target != -1) && spans.SkipTo(target, state))) { queue.Add(spans); } } return(queue.Size() != 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); }
private bool InitSpanQueue(int target) { queue = new SpanQueue(OuterInstance, OuterInstance.clauses.Count); IEnumerator <SpanQuery> i = OuterInstance.clauses.GetEnumerator(); while (i.MoveNext()) { Spans spans = i.Current.GetSpans(Context, AcceptDocs, TermContexts); cost += spans.Cost(); if (((target == -1) && spans.Next()) || ((target != -1) && spans.SkipTo(target))) { queue.Add(spans); } } return(queue.Size() != 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); }