public boolean hasNext(){
  if (this.samIterator == null) {
    iterator();
  }
  while (complete.isEmpty() && ((!accumulator.isEmpty()) || samHasMore() || hasRemainingMaskBases())) {
    final LocusInfo locusInfo=next();
    if (locusInfo != null) {
      complete.add(0,locusInfo);
    }
  }
  return !complete.isEmpty();
}

public boolean hasNext ( ) { if ( this . samIterator == null ) { iterator ( ) ; } while ( complete . isEmpty ( ) && ( ( ! accumulator . isEmpty ( ) ) || samHasMore ( ) || hasRemainingMaskBases ( ) ) ) { final LocusInfo locusInfo = next ( ) ; if ( locusInfo != null ) { complete . add ( 0 , locusInfo ) ; } } return ! complete . isEmpty ( ) ; }
returns true if there are more locusinfo objects that can be returned , due to any of the following reasons : 1 ) there are more aligned reads in the sam file 2 ) there are locusinfos in some stage of accumulation 3 ) there are loci in the target mask that have yet to be accumulated ( even if there are no reads covering them )
