package sequence.utility; import exceptions.InvalidPositionException; import position.Position; /** * A simple node class for a doubly-linked list. Each DNode has a * reference to a stored element, a previous node, and a next node. * * @author Roberto Tamassia */ //Copyright (c) 2003 Brown University, Providence, RI //Additional modifications and methods by xgiovio public class DNodeIndex implements Position { private DNodeIndex prev = null; private DNodeIndex next = null; private E element = null; private int index = -1; public DNodeIndex(DNodeIndex newPrev, DNodeIndex newNext, E elem, int in_idex) { prev = newPrev; next = newNext; element = elem; index = in_idex; } public DNodeIndex(DNodeIndex newPrev, DNodeIndex newNext, E elem) { prev = newPrev; next = newNext; element = elem; } public E element() throws InvalidPositionException { if ((prev == null) && (next == null)) throw new InvalidPositionException("Position is not in a list!"); return element; } public DNodeIndex getNext() { return next; } public DNodeIndex getPrev() { return prev; } public void setNext(DNodeIndex newNext) { next = newNext; } public void setPrev(DNodeIndex newPrev) { prev = newPrev; } public void setElement(E newElement) { element = newElement; } public int getIndex() { return index; } public void setIndex(int index) { this.index = index; } }