1 package jalview.datamodel;
3 import java.util.Iterator;
4 import java.util.NoSuchElementException;
7 * Iterator over each element in a set of ranges i.e. if ranges is {[3,6],
8 * [12,15]} it will iterate over {3,4,5,6,12,13,14,15}. Uses a local copy of the
14 public class RangeElementsIterator implements Iterator<Integer>
22 private Iterator<int[]> rangeIterator;
24 private int[] nextRange = null;
26 RangeElementsIterator(Iterator<int[]> it)
29 if (rangeIterator.hasNext())
31 nextRange = rangeIterator.next();
38 public boolean hasNext()
40 return rangeIterator.hasNext() || next <= last;
48 throw new NoSuchElementException();
56 // if there are more ranges need to check if next is in a range
62 * Check how next position relates to next range, and update next position if
65 private void checkNextRange()
67 if (nextRange != null && next > nextRange[1])
69 if (rangeIterator.hasNext())
71 nextRange = rangeIterator.next();
86 throw new UnsupportedOperationException();