/* * Genoogle: Similar DNA Sequences Searching Engine and Tools. (http://genoogle.pih.bio.br) * Copyright (C) 2008,2009 Felipe Fernandes Albrecht (felipe.albrecht@gmail.com) * * For further information check the LICENSE file. */ package bio.pih.genoogle.util; import bio.pih.genoogle.seq.SymbolList; /** * Abstract class for the symbol list iterator. * * @author albrecht */ public abstract class AbstractSymbolListWindowIterator implements SymbolListWindowIterator { protected int windowSize; protected int actualPos; protected SymbolList sequence; /** * @param sequence * @param windowLength */ public AbstractSymbolListWindowIterator(SymbolList sequence, int windowLength) throws IndexOutOfBoundsException { if (windowLength < 1) { throw new IndexOutOfBoundsException("The windowSize must has the size at least one"); } this.sequence = sequence; this.windowSize = windowLength; this.actualPos = 0; } @Override public SymbolList getSymbolList() { return sequence; } @Override public int getWindowSize() { return windowSize; } @Override public void setWindowSize(int size) { this.windowSize = size; } @Override public int getActualPos() { return actualPos; } @Override public boolean hasNext() { if (actualPos + windowSize <= sequence.getLength()) { return true; } return false; } @Override public void remove() { throw new UnsupportedOperationException(); } }