|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Object | +--net.sf.saffron.util.Walker
Walks over a tree, returning nodes in prefix order. Objects which are an
instance of Walkable
supply their children using
getChildren()
; other objects are assumed to have no children.
Do not modify the tree during the enumeration. Example use:Tree t;
Walker w = new Walker(t); while (w.hasMoreElements()) { Tree node = (Tree)
w.nextNode(); System.out.println(node.toString()); }
Nested Class Summary | |
(package private) class |
Walker.Frame
|
private static class |
Walker.Region
|
Field Summary | |
(package private) Walker.Frame |
currentFrame
|
(package private) Object |
nextNode
|
(package private) Stack |
stack
|
Constructor Summary | |
Walker(Walkable root)
|
Method Summary | |
private static int |
arrayFind(Object[] array,
Object o)
|
Object |
currentElement()
returns the current object. |
Object |
getAncestor(int iDepth)
|
private Walker.Frame |
getAncestorFrame(int iDepth)
returns the iDepth th ancestor of the current element |
int |
getAncestorOrdinal(int iDepth)
get the ordinal within its parent node of the iDepth th
ancestor. |
Object[] |
getChildren(Object node)
Override this function to prune the tree, or to allow objects which are not Walkable to have children. |
int |
getOrdinal()
get the ordinal within its parent node of the current node. |
Object |
getParent()
|
boolean |
hasMoreElements()
|
int |
level()
returns level in the tree of the current element (that is, last element returned from nextElement()). |
static void |
main(String[] args)
|
private void |
moveToNext()
|
Object |
nextElement()
|
void |
prune()
Tell walker that we don't want to visit any (more) children of this node. |
void |
pruneSiblings()
|
private void |
visit(Walker.Frame parent,
Object node)
|
Methods inherited from class java.lang.Object |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
Field Detail |
Walker.Frame currentFrame
Object nextNode
Stack stack
Constructor Detail |
public Walker(Walkable root)
Method Detail |
public final Object getAncestor(int iDepth)
public final Object getParent()
public int getAncestorOrdinal(int iDepth)
iDepth
th
ancestor.
public Object[] getChildren(Object node)
public int getOrdinal()
public Object currentElement()
public boolean hasMoreElements()
hasMoreElements
in interface Enumeration
public int level()
public static void main(String[] args)
public Object nextElement()
nextElement
in interface Enumeration
public void prune()
public void pruneSiblings()
private Walker.Frame getAncestorFrame(int iDepth)
iDepth
th ancestor of the current element
private static int arrayFind(Object[] array, Object o)
private void moveToNext()
private void visit(Walker.Frame parent, Object node)
|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |