Home » jakarta-jmeter-2.3.4_src » org.apache.jorphan.collections » [javadoc | source]
org.apache.jorphan.collections
public class: HashTree [javadoc | source]
java.lang.Object
   org.apache.jorphan.collections.HashTree

All Implemented Interfaces:
    Cloneable, Map, Serializable

Direct Known Subclasses:
    ListedHashTree, SortedHashTree

This class is used to create a tree structure of objects. Each element in the tree is also a key to the next node down in the tree. It provides many ways to add objects and branches, as well as many ways to retrieve.

HashTree implements the Map interface for convenience reasons. The main difference between a Map and a HashTree is that the HashTree organizes the data into a recursive tree structure, and provides the means to manipulate that structure.

Of special interest is the #traverse(HashTreeTraverser) method, which provides an expedient way to traverse any HashTree by implementing the HashTreeTraverser interface in order to perform some operation on the tree, or to extract information from the tree.

Field Summary
protected final  Map data     
Constructor:
 public HashTree() 
 protected HashTree(Map _map) 
    Allow subclasses to provide their own Map.
 public HashTree(Object key) 
    Creates a new HashTree and adds the given object as a top-level node.
    Parameters:
    key -
 public HashTree(Collection keys) 
    Creates a new HashTree and adds all the objects in the given collection as top-level nodes in the tree.
    Parameters:
    keys - a collection of objects to be added to the created HashTree.
 public HashTree(Object[] keys) 
    Creates a new HashTree and adds all the objects in the given array as top-level nodes in the tree.
Method from org.apache.jorphan.collections.HashTree Summary:
add,   add,   add,   add,   add,   add,   add,   add,   add,   add,   add,   add,   add,   add,   addTreePath,   clear,   clone,   cloneTree,   containsKey,   containsValue,   createNewTree,   createNewTree,   createNewTree,   entrySet,   equals,   get,   getArray,   getArray,   getArray,   getArray,   getTree,   getTree,   getTree,   getTreePath,   hashCode,   isEmpty,   keySet,   list,   list,   list,   list,   put,   putAll,   remove,   replace,   search,   set,   set,   set,   set,   set,   set,   set,   set,   set,   size,   toString,   traverse,   values
Methods from java.lang.Object:
clone,   equals,   finalize,   getClass,   hashCode,   notify,   notifyAll,   toString,   wait,   wait,   wait
Method from org.apache.jorphan.collections.HashTree Detail:
 public  void add(HashTree newTree) 
    Adds all the nodes and branches of the given tree to this tree. Is like merging two trees. Duplicates are ignored.
 public HashTree add(Object key) 
    Adds an key into the HashTree at the current level.
 public  void add(Object[] keys) 
    Adds all the given objects as nodes at the current level.
 public  void add(Collection keys) 
    Adds a bunch of keys into the HashTree at the current level.
 public  void add(Object key,
    HashTree subTree) 
    Adds a key as a node at the current level and then adds the given HashTree to that new node.
 public HashTree add(Object key,
    Object value) 
    Adds a key and it's value in the HashTree. The first argument becomes a node at the current level, and the second argument becomes a node of it.
 public  void add(Object key,
    Object[] values) 
    Adds a key and it's values in the HashTree. The first argument becomes a node at the current level, and adds all the values in the array to the new node.
 public  void add(Object key,
    Collection values) 
    Adds a key as a node at the current level and then adds all the objects in the second argument as nodes of the new node.
 public  void add(Object[] treePath,
    Object[] values) 
    Adds a series of nodes into the HashTree using the given path. The first argument is an array that represents a path to a specific node in the tree. If the path doesn't already exist, it is created (the objects are added along the way). At the path, all the objects in the second argument are added as nodes.
 public  void add(Object[] treePath,
    Collection values) 
    Adds a series of nodes into the HashTree using the given path. The first argument is an array that represents a path to a specific node in the tree. If the path doesn't already exist, it is created (the objects are added along the way). At the path, all the objects in the second argument are added as nodes.
 public HashTree add(Object[] treePath,
    Object value) 
 public  void add(Collection treePath,
    Object[] values) 
    Adds a series of nodes into the HashTree using the given path. The first argument is a List that represents a path to a specific node in the tree. If the path doesn't already exist, it is created (the objects are added along the way). At the path, all the objects in the second argument are added as nodes.
 public HashTree add(Collection treePath,
    Object value) 
    Adds a series of nodes into the HashTree using the given path. The first argument is a List that represents a path to a specific node in the tree. If the path doesn't already exist, it is created (the objects are added along the way). At the path, the object in the second argument is added as a node.
 public  void add(Collection treePath,
    Collection values) 
    Adds a series of nodes into the HashTree using the given path. The first argument is a SortedSet that represents a path to a specific node in the tree. If the path doesn't already exist, it is created (the objects are added along the way). At the path, all the objects in the second argument are added as nodes.
 protected HashTree addTreePath(Collection treePath) 
 public  void clear() 
    Clears the HashTree of all contents.
 public Object clone() 
    Create a clone of this HashTree. This is not a deep clone (ie, the contents of the tree are not cloned).
 protected  void cloneTree(HashTree newTree) 
 public boolean containsKey(Object o) 
    If the HashTree contains the given object as a key at the top level, then a true result is returned, otherwise false.
 public boolean containsValue(Object value) 
    Implemented as required by the Map interface, but is not very useful here. All 'values' in a HashTree are HashTree's themselves.
 protected HashTree createNewTree() 
    Creates a new tree. This method exists to allow inheriting classes to generate the appropriate types of nodes. For instance, when a node is added, it's value is a HashTree. Rather than directly calling the HashTree() constructor, the createNewTree() method is called. Inheriting classes should override these methods and create the appropriate subclass of HashTree.
 protected HashTree createNewTree(Object key) 
    Creates a new tree. This method exists to allow inheriting classes to generate the appropriate types of nodes. For instance, when a node is added, it's value is a HashTree. Rather than directly calling the HashTree() constructor, the createNewTree() method is called. Inheriting classes should override these methods and create the appropriate subclass of HashTree.
 protected HashTree createNewTree(Collection values) 
    Creates a new tree. This method exists to allow inheriting classes to generate the appropriate types of nodes. For instance, when a node is added, it's value is a HashTree. Rather than directly calling the HashTree() constructor, the createNewTree() method is called. Inheriting classes should override these methods and create the appropriate subclass of HashTree.
 public Set entrySet() 
    Exists to satisfy the Map interface.
 public boolean equals(Object o) 
    Compares all objects in the tree and verifies that the two trees contain the same objects at the same tree levels. Returns true if they do, false otherwise.
 public Object get(Object key) 
    Returns the HashTree object associated with the given key. Same as calling #getTree(Object) .
 public Object[] getArray() 
    Gets an array of all keys in the current HashTree node. If the HashTree represented a file system, this would be like getting an array of all the files in the current folder.
 public Object[] getArray(Object key) 
    Gets an array of all keys in the HashTree mapped to the given key of the current HashTree object (in other words, one level down). If the HashTree represented a file system, this would like getting a list of all files in a sub-directory (of the current directory) specified by the key argument.
 public Object[] getArray(Object[] treePath) 
    Recurses down into the HashTree stucture using each subsequent key in the array of keys, and returns an array of keys of the HashTree object at the end of the recursion. If the HashTree represented a file system, this would be like getting a list of all the files in a directory specified by the treePath, relative from the current directory.
 public Object[] getArray(Collection treePath) 
    Recurses down into the HashTree stucture using each subsequent key in the treePath argument, and returns an array of keys of the HashTree object at the end of the recursion. If the HashTree represented a file system, this would be like getting a list of all the files in a directory specified by the treePath, relative from the current directory.
 public HashTree getTree(Object key) 
    Gets the HashTree mapped to the given key.
 public HashTree getTree(Object[] treePath) 
    Gets the HashTree object mapped to the last key in the array by recursing through the HashTree structure one key at a time.
 public HashTree getTree(Collection treePath) 
    Gets the HashTree object mapped to the last key in the SortedSet by recursing through the HashTree structure one key at a time.
 protected HashTree getTreePath(Collection treePath) 
 public int hashCode() 
    Returns a hashcode for this HashTree.
 public boolean isEmpty() 
    If the HashTree is empty, true is returned, false otherwise.
 public Set keySet() 
    Returns a Set of all the keys in the top-level of this HashTree.
 public Collection list() 
    Gets a Collection of all keys in the current HashTree node. If the HashTree represented a file system, this would be like getting a collection of all the files in the current folder.
 public Collection list(Object key) 
    Gets a Set of all keys in the HashTree mapped to the given key of the current HashTree object (in other words, one level down. If the HashTree represented a file system, this would like getting a list of all files in a sub-directory (of the current directory) specified by the key argument.
 public Collection list(Object[] treePath) 
    Recurses down into the HashTree stucture using each subsequent key in the array of keys, and returns the Set of keys of the HashTree object at the end of the recursion. If the HashTree represented a file system, this would be like getting a list of all the files in a directory specified by the treePath, relative from the current directory.
 public Collection list(Collection treePath) 
    Recurses down into the HashTree stucture using each subsequent key in the List of keys, and returns the Set of keys of the HashTree object at the end of the recursion. If the HashTree represented a file system, this would be like getting a list of all the files in a directory specified by the treePath, relative from the current directory.
 public Object put(Object key,
    Object value) 
    This is the same as calling HashTree.add(key,value).
 public  void putAll(Map map) 
    The Map given must also be a HashTree, otherwise an UnsupportedOperationException is thrown. If it is a HashTree, this is like calling the add(HashTree) method.
 public Object remove(Object key) 
    Removes the entire branch specified by the given key.
 public  void replace(Object currentKey,
    Object newKey) 
    Finds the given current key, and replaces it with the given new key. Any tree structure found under the original key is moved to the new key.
 public HashTree search(Object key) 
    Searches the HashTree structure for the given key. If it finds the key, it returns the HashTree mapped to the key. If it finds nothing, it returns null.
 public  void set(Collection values) 
    Sets the nodes of the current tree to be the objects of the given collection. Any nodes previously in the tree are removed.
 public  void set(Object key,
    Object value) 
    Sets a key and it's value in the HashTree. It actually sets up a key, and then creates a node for the key and sets the value to the new node, as a key. Any previous nodes that existed under the given key are lost.
 public  void set(Object key,
    HashTree t) 
    Sets a key into the current tree and assigns it a HashTree as its subtree. Any previous entries under the given key are removed.
 public  void set(Object key,
    Object[] values) 
    Sets a key and its values in the HashTree. It sets up a key in the current node, and then creates a node for that key, and sets all the values in the array as keys in the new node. Any keys previously held under the given key are lost.
 public  void set(Object key,
    Collection values) 
    Sets a key and its values in the HashTree. It sets up a key in the current node, and then creates a node for that key, and set all the values in the array as keys in the new node. Any keys previously held under the given key are removed.
 public  void set(Object[] treePath,
    Object[] values) 
    Sets a series of keys into the HashTree. It sets up the first object in the key array as a key in the current node, recurses into the next HashTree node through that key and adds the second object in the array. Continues recursing in this manner until the end of the first array is reached, at which point all the values of the second array are set as keys to the bottom-most node. All previous keys of that bottom-most node are removed.
 public  void set(Object[] treePath,
    Collection values) 
    Sets a series of keys into the HashTree. It sets up the first object in the key array as a key in the current node, recurses into the next HashTree node through that key and adds the second object in the array. Continues recursing in this manner until the end of the first array is reached, at which point all the values of the Collection of values are set as keys to the bottom-most node. Any keys previously held by the bottom-most node are lost.
 public  void set(Collection treePath,
    Object[] values) 
    Sets a series of keys into the HashTree. It sets up the first object in the key list as a key in the current node, recurses into the next HashTree node through that key and adds the second object in the list. Continues recursing in this manner until the end of the first list is reached, at which point all the values of the array of values are set as keys to the bottom-most node. Any previously existing keys of that bottom node are removed.
 public  void set(Collection treePath,
    Collection values) 
    Sets a series of keys into the HashTree. It sets up the first object in the key list as a key in the current node, recurses into the next HashTree node through that key and adds the second object in the list. Continues recursing in this manner until the end of the first list is reached, at which point all the values of the Collection of values are set as keys to the bottom-most node. Any previously existing keys of that bottom node are lost.
 public int size() 
    Returns the number of top-level entries in the HashTree.
 public String toString() 
    Generate a printable representation of the tree.
 public  void traverse(HashTreeTraverser visitor) 
    Allows any implementation of the HashTreeTraverser interface to easily traverse (depth-first) all the nodes of the HashTree. The Traverser implementation will be given notification of each node visited.
 public Collection values() 
    Returns a collection of all the sub-trees of the current tree.