package util.nice;
import java.util.NoSuchElementException;
public class NiceQueueIterator implements NiceIterator {
private NiceQueue myQueue = null;
private NiceListLink cursor = null;
NiceQueueIterator(NiceQueue aQueue) {
myQueue = aQueue;
start();
}
public void start() {
cursor = myQueue.getHead();
}
public boolean cont() {
return cursor != null;
}
public void next() {
cursor = cursor.getNext();
}
public Niceable getCurrent() {
return cursor.getInfo();
}
public Niceable getNext() throws NoSuchElementException {
if (!hasNext())
throw new NoSuchElementException();
return cursor.getNext().getInfo();
}
public boolean hasNext() {
return (cont() && cursor.getNext() != null);
}
public void insertNext(Niceable info) {
cursor.setNext(new NiceListLink(info, cursor.getNext()));
NiceListLink last = myQueue.getTail().getNext();
if (last != null)
myQueue.setTail(last);
}
public void removeNext() throws NoSuchElementException {
if (!hasNext())
throw new NoSuchElementException();
NiceListLink next = cursor.getNext();
if (myQueue.getTail() == next)
myQueue.setTail(cursor);
cursor.setNext(next.getNext());
}
}