T
- Class that should be searched forpublic class SearchByClass<T> extends Object implements HashTreeTraverser
Usage is simple. Given a HashTree
object "tree", and a SearchByClass
object:
HashTree tree = new HashTree(); // ... tree gets filled with objects SearchByClass searcher = new SearchByClass(StringBuilder.class); tree.traverse(searcher); Iterator iter = searcher.getSearchResults().iterator(); while (iter.hasNext()) { StringBuilder foundNode = (StringBuilder) iter.next(); HashTree subTreeOfFoundNode = searcher.getSubTree(foundNode); // .... do something with node and subTree... }
HashTree
,
HashTreeTraverser
Constructor and Description |
---|
SearchByClass(Class<T> searchClass)
Creates an instance of SearchByClass, and sets the Class to be searched
for.
|
Modifier and Type | Method and Description |
---|---|
void |
addNode(Object node,
HashTree subTree)
The tree traverses itself depth-first, calling addNode for each object it
encounters as it goes.
|
Collection<T> |
getSearchResults()
After traversing the HashTree, call this method to get a collection of
the nodes that were found.
|
HashTree |
getSubTree(Object root)
Given a specific found node, this method will return the sub tree of that
node.
|
void |
processPath()
Process path is called when a leaf is reached.
|
void |
subtractNode()
Indicates traversal has moved up a step, and the visitor should remove
the top node from its stack structure.
|
public Collection<T> getSearchResults()
public HashTree getSubTree(Object root)
root
- the node for which the sub tree is requestedpublic void addNode(Object node, HashTree subTree)
addNode
in interface HashTreeTraverser
node
- the node currently encounteredsubTree
- the HashTree under the node encounteredpublic void subtractNode()
subtractNode
in interface HashTreeTraverser
public void processPath()
HashTreeTraverser.subtractNode()
call. This is a callback method, and should
not be called except by a HashTree during traversal.processPath
in interface HashTreeTraverser
Copyright © 1998-2019 Apache Software Foundation. All Rights Reserved.