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 java.util.ArrayList;
8   import org.galagosearch.tupleflow.Parameters;
9   
10  /***
11   *
12   * @author trevor
13   */
14  public class UnfilteredCombinationIterator extends ScoreCombinationIterator {
15      public UnfilteredCombinationIterator(Parameters parameters, ScoreIterator[] childIterators) {
16          super(parameters, childIterators);
17      }
18  
19      public int nextCandidate() {
20          int candidate = Integer.MAX_VALUE;
21  
22          for (ScoreIterator iterator : iterators) {
23              if (iterator.isDone()) {
24                  continue;
25              }
26              candidate = Math.min(candidate, iterator.nextCandidate());
27          }
28  
29          return candidate;
30      }
31  
32      public boolean hasMatch(int document) {
33          for (ScoreIterator iterator : iterators) {
34              if (!iterator.isDone() && iterator.hasMatch(document)) {
35                  return true;
36              }
37          }
38  
39          return false;
40      }
41      
42      public boolean isDone() {
43          for (ScoreIterator iterator : iterators) {
44              if (!iterator.isDone()) {
45                  return false;
46              }
47          }
48  
49          return true;
50      }
51  }