1 package jalview.datamodel;
3 import java.util.ArrayList;
4 import java.util.Iterator;
8 * An iterator which iterates over visible regions in a range. Provides a
9 * special "endsAtHidden" indicator to allow callers to determine if the final
10 * visible column is adjacent to a hidden region.
12 public class VisibleContigsIterator implements Iterator<int[]>
14 private List<int[]> vcontigs = new ArrayList<>();
16 private int currentPosition = 0;
18 private boolean endsAtHidden = false;
20 VisibleContigsIterator(int start, int end,
21 List<int[]> hiddenColumns)
23 if (hiddenColumns != null && hiddenColumns.size() > 0)
29 for (int[] region : hiddenColumns)
32 hideStart = region[0];
40 if (hideStart > vstart)
42 if (end - 1 > hideStart - 1)
44 int[] contig = new int[] { vstart, hideStart - 1 };
50 int[] contig = new int[] { vstart, end - 1 };
56 // exit if we're past the end
65 int[] contig = new int[] { vstart, end - 1 };
72 int[] contig = new int[] { start, end - 1 };
78 public boolean hasNext()
80 return (currentPosition < vcontigs.size());
86 int[] result = vcontigs.get(currentPosition);
91 public boolean endsAtHidden()