Treeviz 0.37 2010-10-17

ch.randelshofer.tree
Class TreePath2<T>

java.lang.Object
  extended by ch.randelshofer.tree.TreePath2<T>
All Implemented Interfaces:
java.io.Serializable

public class TreePath2<T>
extends java.lang.Object
implements java.io.Serializable

Reimplementation of javax.swing.TreePath2 with supports for generics.

Author:
Werner Randelshofer  @version 1.0 Jan 26, 2008 Created.
See Also:
Serialized Form

Constructor Summary
protected TreePath2()
          Primarily provided for subclasses that represent paths in a different manner.
  TreePath2(T singlePath)
          Constructs a TreePath2 containing only a single element.
  TreePath2(T[] path)
          Constructs a path from an array of Objects, uniquely identifying the path from the root of the tree to a specific node, as returned by the tree's data model.
protected TreePath2(T[] path, int length)
          Constructs a new TreePath2 with the identified path components of length length.
protected TreePath2(TreePath2<T> parent, T lastElement)
          Constructs a new TreePath2, which is the path identified by parent ending in lastElement.
 
Method Summary
 boolean equals(java.lang.Object o)
          Tests two TreePaths for equality by checking each element of the paths for equality.
 T getLastPathComponent()
          Returns the last component of this path.
 TreePath2 getParentPath()
          Returns a path containing all the elements of this object, except the last path component.
 T[] getPath()
          Returns an ordered array of Objects containing the components of this TreePath2.
 T getPathComponent(int element)
          Returns the path component at the specified index.
 int getPathCount()
          Returns the number of elements in the path.
 int hashCode()
          Returns the hashCode for the object.
 boolean isDescendant(TreePath2 aTreePath)
          Returns true if aTreePath is a descendant of this TreePath2.
 TreePath2 pathByAddingChild(T child)
          Returns a new path containing all the elements of this object plus child.
 java.lang.String toString()
          Returns a string that displays and identifies this object's properties.
 
Methods inherited from class java.lang.Object
clone, finalize, getClass, notify, notifyAll, wait, wait, wait
 

Constructor Detail

TreePath2

public TreePath2(T[] path)
Constructs a path from an array of Objects, uniquely identifying the path from the root of the tree to a specific node, as returned by the tree's data model.

The model is free to return an array of any Objects it needs to represent the path. The DefaultTreeModel returns an array of TreeNode objects. The first TreeNode in the path is the root of the tree, the last TreeNode is the node identified by the path.

Parameters:
path - an array of Objects representing the path to a node

TreePath2

public TreePath2(T singlePath)
Constructs a TreePath2 containing only a single element. This is usually used to construct a TreePath2 for the the root of the TreeModel.

Parameters:
singlePath - an Object representing the path to a node
See Also:
#TreePath2(Object[])

TreePath2

protected TreePath2(TreePath2<T> parent,
                    T lastElement)
Constructs a new TreePath2, which is the path identified by parent ending in lastElement.


TreePath2

protected TreePath2(T[] path,
                    int length)
Constructs a new TreePath2 with the identified path components of length length.


TreePath2

protected TreePath2()
Primarily provided for subclasses that represent paths in a different manner. If a subclass uses this constructor, it should also override the getPath, getPathCount, and getPathComponent methods, and possibly the equals method.

Method Detail

getPath

public T[] getPath()
Returns an ordered array of Objects containing the components of this TreePath2. The first element (index 0) is the root.

Returns:
an array of Objects representing the TreePath2
See Also:
#TreePath2(Object[])

getLastPathComponent

public T getLastPathComponent()
Returns the last component of this path. For a path returned by DefaultTreeModel this will return an instance of TreeNode.

Returns:
the Object at the end of the path
See Also:
#TreePath2(Object[])

getPathCount

public int getPathCount()
Returns the number of elements in the path.

Returns:
an int giving a count of items the path

getPathComponent

public T getPathComponent(int element)
Returns the path component at the specified index.

Parameters:
element - an int specifying an element in the path, where 0 is the first element in the path
Returns:
the Object at that index location
Throws:
java.lang.IllegalArgumentException - if the index is beyond the length of the path
See Also:
#TreePath2(Object[])

equals

public boolean equals(java.lang.Object o)
Tests two TreePaths for equality by checking each element of the paths for equality. Two paths are considered equal if they are of the same length, and contain the same elements (.equals).

Overrides:
equals in class java.lang.Object
Parameters:
o - the Object to compare

hashCode

public int hashCode()
Returns the hashCode for the object. The hash code of a TreePath2 is defined to be the hash code of the last component in the path.

Overrides:
hashCode in class java.lang.Object
Returns:
the hashCode for the object

isDescendant

public boolean isDescendant(TreePath2 aTreePath)
Returns true if aTreePath is a descendant of this TreePath2. A TreePath2 P1 is a descendent of a TreePath2 P2 if P1 contains all of the components that make up P2's path. For example, if this object has the path [a, b], and aTreePath has the path [a, b, c], then aTreePath is a descendant of this object. However, if aTreePath has the path [a], then it is not a descendant of this object.

Returns:
true if aTreePath is a descendant of this path

pathByAddingChild

public TreePath2 pathByAddingChild(T child)
Returns a new path containing all the elements of this object plus child. child will be the last element of the newly created TreePath2. This will throw a NullPointerException if child is null.


getParentPath

public TreePath2 getParentPath()
Returns a path containing all the elements of this object, except the last path component.


toString

public java.lang.String toString()
Returns a string that displays and identifies this object's properties.

Overrides:
toString in class java.lang.Object
Returns:
a String representation of this object

Copyright 2007-2008 (c) Werner Randelshofer.
All rights reserved.