View Javadoc

1   /*
2    * To change this template, choose Tools | Templates
3    * and open the template in the editor.
4    */
5   package org.galagosearch.core.retrieval.structured;
6   
7   import org.galagosearch.tupleflow.Parameters;
8   
9   /***
10   *
11   * @author trevor
12   */
13  public class FilteredCombinationIterator extends ScoreCombinationIterator {
14      public FilteredCombinationIterator(Parameters parameters, ScoreIterator[] childIterators) {
15          super(parameters, childIterators);
16      }
17  
18      public int nextCandidate() {
19          int candidate = 0;
20  
21          for (ScoreIterator iterator : iterators) {
22              if (iterator.isDone()) {
23                  return Integer.MAX_VALUE;
24              }
25              candidate = Math.max(candidate, iterator.nextCandidate());
26          }
27  
28          return candidate;
29      }
30  
31      public boolean hasMatch(int document) {
32          for (ScoreIterator iterator : iterators) {
33              if (iterator.isDone() || !iterator.hasMatch(document)) {
34                  return false;
35              }
36          }
37  
38          return true;
39      }
40  
41      public boolean isDone() {
42          for (ScoreIterator iterator : iterators) {
43              if (iterator.isDone()) {
44                  return true;
45              }
46          }
47  
48          return false;
49      }
50  }