1 5 package prefuse.data.util; 6 7 import java.util.Iterator ; 8 9 import prefuse.data.Node; 10 11 16 public class TreeNodeIterator implements Iterator { 17 18 private Node m_node; 19 private Node m_root; 20 21 25 public TreeNodeIterator(Node root) { 26 m_root = root; 27 m_node = root; 28 } 29 30 33 public boolean hasNext() { 34 return m_node != null; 35 } 36 37 40 public Object next() { 41 Node n, c; 42 if ( (c=m_node.getChild(0)) != null ) { 43 } else if ( m_node!=m_root && (c=m_node.getNextSibling()) != null ) { 45 } else { 47 c = m_node.getParent(); 48 while ( c!=m_root && c != null ) { 49 if ( (n=c.getNextSibling()) != null ) { 50 c = n; 51 break; 52 } 53 c = c.getParent(); 54 } 55 if ( c == m_root ) 56 c = null; 57 } 58 n = m_node; 59 m_node = c; 60 return n; 61 } 62 63 67 public void remove() { 68 throw new UnsupportedOperationException ("Remove not supported"); 69 } 70 71 } | Popular Tags |