X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;f=src%2Fjalview%2Fdatamodel%2FHiddenColsIterator.java;fp=src%2Fjalview%2Fdatamodel%2FHiddenColsIterator.java;h=0000000000000000000000000000000000000000;hb=ea2e22f20579b0ca244583058a291d0fcffbf6d5;hp=0084912fb304b00e65e675d037b30a7b24c08dd7;hpb=fe3b5b968ae0e34663be2d91eba7924f645e29c9;p=jalview.git diff --git a/src/jalview/datamodel/HiddenColsIterator.java b/src/jalview/datamodel/HiddenColsIterator.java deleted file mode 100644 index 0084912..0000000 --- a/src/jalview/datamodel/HiddenColsIterator.java +++ /dev/null @@ -1,111 +0,0 @@ -package jalview.datamodel; - -import java.util.ArrayList; -import java.util.Iterator; -import java.util.List; - -/** - * An iterator which iterates over hidden column regions in a range. Works with - * a copy of the hidden columns collection. Intended to be used by callers - * OUTSIDE of HiddenColumns. - */ -public class HiddenColsIterator implements Iterator -{ - // current index in hiddenColumns - private int currentPosition = 0; - - // current column in hiddenColumns - private int[] currentRegion; - - // local copy or reference to hiddenColumns - private List localHidden; - - /** - * Unbounded constructor - */ - HiddenColsIterator(List hiddenColumns) - { - if (!hiddenColumns.isEmpty()) - { - int last = hiddenColumns.get(hiddenColumns.size() - 1)[1]; - init(0, last, hiddenColumns); - } - else - { - init(0, 0, hiddenColumns); - } - } - - /** - * Construct an iterator over hiddenColums bounded at [lowerBound,upperBound] - * - * @param lowerBound - * lower bound to iterate from - * @param upperBound - * upper bound to iterate to - */ - HiddenColsIterator(int lowerBound, int upperBound, - List hiddenColumns) - { - init(lowerBound, upperBound, hiddenColumns); - } - - /** - * Construct an iterator over hiddenColums bounded at [lowerBound,upperBound] - * - * @param lowerBound - * lower bound to iterate from - * @param upperBound - * upper bound to iterate to - */ - private void init(int lowerBound, int upperBound, - List hiddenColumns) - { - int start = lowerBound; - int end = upperBound; - - if (hiddenColumns != null) - { - localHidden = new ArrayList<>(); - - // iterate until a region overlaps with [start,end] - int i = 0; - while ((i < hiddenColumns.size()) - && (hiddenColumns.get(i)[1] < start)) - { - i++; - } - - // iterate from start to end, adding each hidden region. Positions are - // absolute, and all regions which *overlap* [start,end] are added. - while (i < hiddenColumns.size() && (hiddenColumns.get(i)[0] <= end)) - { - int[] rh = hiddenColumns.get(i); - int[] cp = new int[2]; - System.arraycopy(rh, 0, cp, 0, rh.length); - localHidden.add(cp); - i++; - } - } - } - - @Override - public boolean hasNext() - { - return (localHidden != null) && (currentPosition < localHidden.size()); - } - - @Override - public int[] next() - { - currentRegion = localHidden.get(currentPosition); - currentPosition++; - return currentRegion; - } - - @Override - public void remove() - { - localHidden.remove(--currentPosition); - } -}