org.abego.treelayout.util
Class AbstractTreeForTreeLayout<TreeNode>

java.lang.Object
  extended by org.abego.treelayout.util.AbstractTreeForTreeLayout<TreeNode>
Type Parameters:
TreeNode -
All Implemented Interfaces:
TreeForTreeLayout<TreeNode>
Direct Known Subclasses:
DefaultTreeForTreeLayout

public abstract class AbstractTreeForTreeLayout<TreeNode>
extends Object
implements TreeForTreeLayout<TreeNode>

Provides an easy way to implement the TreeForTreeLayout interface by defining just two simple methods and a constructor.

To use this class the underlying tree must provide the children as a list (see getChildrenList(Object) and give direct access to the parent of a node (see getParent(Object)).

See also DefaultTreeForTreeLayout.

Author:
Udo Borkowski (ub@abego.org)

Constructor Summary
AbstractTreeForTreeLayout(TreeNode root)
           
 
Method Summary
 Iterable<TreeNode> getChildren(TreeNode node)
          Returns the children of a parent node.
abstract  List<TreeNode> getChildrenList(TreeNode node)
          Return the children of a node as a List.
 Iterable<TreeNode> getChildrenReverse(TreeNode node)
          Returns the children of a parent node, in reverse order.
 TreeNode getFirstChild(TreeNode parentNode)
          Returns the first child of a parent node.
 TreeNode getLastChild(TreeNode parentNode)
          Returns the last child of a parent node.
abstract  TreeNode getParent(TreeNode node)
          Returns the parent of a node, if it has one.
 TreeNode getRoot()
          Returns the the root of the tree.
 boolean isChildOfParent(TreeNode node, TreeNode parentNode)
          Tells if a node is a child of a given parentNode.
 boolean isLeaf(TreeNode node)
          Tells if a node is a leaf in the tree.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

AbstractTreeForTreeLayout

public AbstractTreeForTreeLayout(TreeNode root)
Method Detail

getParent

public abstract TreeNode getParent(TreeNode node)
Returns the parent of a node, if it has one.

Time Complexity: O(1)

Parameters:
node -
Returns:
[nullable] the parent of the node, or null when the node is a root.

getChildrenList

public abstract List<TreeNode> getChildrenList(TreeNode node)
Return the children of a node as a List.

Time Complexity: O(1)

Also the access to an item of the list must have time complexity O(1).

A client must not modify the returned list.

Parameters:
node -
Returns:
the children of the given node. When node is a leaf the list is empty.

getRoot

public TreeNode getRoot()
Description copied from interface: TreeForTreeLayout
Returns the the root of the tree.

Time Complexity: O(1)

Specified by:
getRoot in interface TreeForTreeLayout<TreeNode>
Returns:
the root of the tree

isLeaf

public boolean isLeaf(TreeNode node)
Description copied from interface: TreeForTreeLayout
Tells if a node is a leaf in the tree.

Time Complexity: O(1)

Specified by:
isLeaf in interface TreeForTreeLayout<TreeNode>
Returns:
true iff node is a leaf in the tree, i.e. has no children.

isChildOfParent

public boolean isChildOfParent(TreeNode node,
                               TreeNode parentNode)
Description copied from interface: TreeForTreeLayout
Tells if a node is a child of a given parentNode.

Time Complexity: O(1)

Specified by:
isChildOfParent in interface TreeForTreeLayout<TreeNode>
Returns:
true iff the node is a child of the given parentNode

getChildren

public Iterable<TreeNode> getChildren(TreeNode node)
Description copied from interface: TreeForTreeLayout
Returns the children of a parent node.

Time Complexity: O(1)

Specified by:
getChildren in interface TreeForTreeLayout<TreeNode>
Parameters:
node - [!isLeaf(parentNode)]
Returns:
the children of the given parentNode, from first to last

getChildrenReverse

public Iterable<TreeNode> getChildrenReverse(TreeNode node)
Description copied from interface: TreeForTreeLayout
Returns the children of a parent node, in reverse order.

Time Complexity: O(1)

Specified by:
getChildrenReverse in interface TreeForTreeLayout<TreeNode>
Parameters:
node - [!isLeaf(parentNode)]
Returns:
the children of given parentNode, from last to first

getFirstChild

public TreeNode getFirstChild(TreeNode parentNode)
Description copied from interface: TreeForTreeLayout
Returns the first child of a parent node.

Time Complexity: O(1)

Specified by:
getFirstChild in interface TreeForTreeLayout<TreeNode>
Parameters:
parentNode - [!isLeaf(parentNode)]
Returns:
the first child of the parentNode

getLastChild

public TreeNode getLastChild(TreeNode parentNode)
Description copied from interface: TreeForTreeLayout
Returns the last child of a parent node.

Time Complexity: O(1)

Specified by:
getLastChild in interface TreeForTreeLayout<TreeNode>
Parameters:
parentNode - [!isLeaf(parentNode)]
Returns:
the last child of the parentNode


Copyright © 2011 abego Software GmbH, Germany. All Rights Reserved.