Coverage Report - org.galagosearch.core.retrieval.structured.FilteredCombinationIterator
 
Classes in this File Line Coverage Branch Coverage Complexity
FilteredCombinationIterator
94%
15/16
86%
12/14
0
 
 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  20
         super(parameters, childIterators);
 16  20
     }
 17  
 
 18  
     public int nextCandidate() {
 19  16
         int candidate = 0;
 20  
 
 21  48
         for (ScoreIterator iterator : iterators) {
 22  32
             if (iterator.isDone()) {
 23  0
                 return Integer.MAX_VALUE;
 24  
             }
 25  32
             candidate = Math.max(candidate, iterator.nextCandidate());
 26  
         }
 27  
 
 28  16
         return candidate;
 29  
     }
 30  
 
 31  
     public boolean hasMatch(int document) {
 32  52
         for (ScoreIterator iterator : iterators) {
 33  40
             if (iterator.isDone() || !iterator.hasMatch(document)) {
 34  16
                 return false;
 35  
             }
 36  
         }
 37  
 
 38  12
         return true;
 39  
     }
 40  
 
 41  
     public boolean isDone() {
 42  28
         for (ScoreIterator iterator : iterators) {
 43  20
             if (iterator.isDone()) {
 44  4
                 return true;
 45  
             }
 46  
         }
 47  
 
 48  8
         return false;
 49  
     }
 50  
 }