|
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();
}