org.apache.jorphan.collections

Class SearchByClass

Implemented Interfaces:
HashTreeTraverser

public class SearchByClass
extends Object
implements HashTreeTraverser

Useful for finding all nodes in the tree that represent objects of a particular type. For instance, if your tree contains all strings, and a few StringBuffer objects, you can use the SearchByClass traverser to find all the StringBuffer objects in your tree.

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(StringBuffer.class);
 tree.traverse(searcher);
 Iterator iter = searcher.getSearchResults().iterator();
 while (iter.hasNext()) {
  StringBuffer foundNode = (StringBuffer) iter.next();
  HashTree subTreeOfFoundNode = searcher.getSubTree(foundNode);
  //  .... do something with node and subTree...
 }
 
Version:
$Revision: 747194 $
See Also:
HashTree, HashTreeTraverser

Constructor Summary

SearchByClass()
Creates an instance of SearchByClass.
SearchByClass(Class searchClass)
Creates an instance of SearchByClass, and sets the Class to be searched for.

Method Summary

void
addNode(Object node, HashTree subTree)
Collection
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()
void
subtractNode()

Constructor Details

SearchByClass

public SearchByClass()
Creates an instance of SearchByClass. However, without setting the Class to search for, it will be a useless object.

SearchByClass

public SearchByClass(Class searchClass)
Creates an instance of SearchByClass, and sets the Class to be searched for.
Parameters:
searchClass -

Method Details

addNode

public void addNode(Object node,
                    HashTree subTree)
Specified by:
addNode in interface HashTreeTraverser

getSearchResults

public Collection getSearchResults()
After traversing the HashTree, call this method to get a collection of the nodes that were found.
Returns:
Collection All found nodes of the requested type

getSubTree

public HashTree getSubTree(Object root)
Given a specific found node, this method will return the sub tree of that node.
Parameters:
root - the node for which the sub tree is requested
Returns:
HashTree

processPath

public void processPath()
Specified by:
processPath in interface HashTreeTraverser

subtractNode

public void subtractNode()
Specified by:
subtractNode in interface HashTreeTraverser

Copyright © 1998-2010 Apache Software Foundation. All Rights Reserved.