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(int from, int to, Iterator<int[]> it)
32 if (rangeIterator.hasNext())
34 nextRange = rangeIterator.next();
40 public boolean hasNext()
50 throw new NoSuchElementException();
58 // if there are more ranges need to check if next is in a range
64 * Check how next position relates to next range, and update next position if
67 private void checkNextRange()
69 if (nextRange != null && next >= nextRange[0])
71 next = nextRange[1] + 1;
72 if (rangeIterator.hasNext())
74 nextRange = rangeIterator.next();
87 throw new UnsupportedOperationException();