XML Iterator DP |
---|
/** ************************************************************************** * Name: LevelIterator * Description: This iterator traverses the tree by levels. * Note that it could be replaced in the main program for * any other iterator conforming with AbstractIteratorIF, * without changing anything in the main program logic. ************************************************************************** */ import org.w3c.dom.*; import java.util.Vector; public class LevelIterator implements AbstractIteratorIF { public boolean end() { return (aux.size() == 0); }
public void next() { if(aux.size() > 0) {
current = (Node) aux.elementAt(0); aux.removeElementAt(0);
} if (current.hasChildNodes()) {
NodeList nl = current.getChildNodes(); int size = nl.getLength(); for (int i = 0; i < size; i++) aux.addElement(nl.item(i));
} }
public Node getValue() { return current; }
public LevelIterator(Node c) { current = c; aux.addElement(current); }
Node current; Vector aux = new Vector();
}