|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Object | +--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 |
Stack stack
Walker.Frame currentFrame
Object nextNode
Constructor Detail |
public Walker(Walkable root)
Method Detail |
private void moveToNext()
private void visit(Walker.Frame parent, Object node)
public boolean hasMoreElements()
hasMoreElements
in interface Enumeration
public Object nextElement()
nextElement
in interface Enumeration
public void prune()
public void pruneSiblings()
public Object currentElement()
public int level()
public final Object getParent()
public final Object getAncestor(int iDepth)
private Walker.Frame getAncestorFrame(int iDepth)
iDepth
th ancestor of the current element
public int getOrdinal()
public int getAncestorOrdinal(int iDepth)
iDepth
th
ancestor.
public Object[] getChildren(Object node)
private static int arrayFind(Object[] array, Object o)
public static void main(String[] args)
|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |