1
2
3
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 }