Package org.abego.treelayout.util
Class AbstractTreeForTreeLayout<TreeNode>
- java.lang.Object
-
- org.abego.treelayout.util.AbstractTreeForTreeLayout<TreeNode>
-
- Type Parameters:
TreeNode
- Type of elements used as nodes in the tree
- All Implemented Interfaces:
TreeForTreeLayout<TreeNode>
- Direct Known Subclasses:
DefaultTreeForTreeLayout
public abstract class AbstractTreeForTreeLayout<TreeNode> extends java.lang.Object implements TreeForTreeLayout<TreeNode>
Provides an easy way to implement theTreeForTreeLayout
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 (seegetParent(Object)
).See also
DefaultTreeForTreeLayout
.
-
-
Constructor Summary
Constructors Constructor Description AbstractTreeForTreeLayout(TreeNode root)
-
Method Summary
All Methods Instance Methods Abstract Methods Concrete Methods Modifier and Type Method Description java.lang.Iterable<TreeNode>
getChildren(TreeNode node)
Returns the children of a parent node.abstract java.util.List<TreeNode>
getChildrenList(TreeNode node)
Return the children of a node as aList
.java.lang.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.
-
-
-
Field Detail
-
root
private final TreeNode root
-
-
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 java.util.List<TreeNode> getChildrenList(TreeNode node)
Return the children of a node as aList
.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 interfaceTreeForTreeLayout<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 interfaceTreeForTreeLayout<TreeNode>
- Parameters:
node
-- 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 interfaceTreeForTreeLayout<TreeNode>
- Parameters:
node
-parentNode
-- Returns:
- true iff the node is a child of the given parentNode
-
getChildren
public java.lang.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 interfaceTreeForTreeLayout<TreeNode>
- Parameters:
node
- [!isLeaf(parentNode)]- Returns:
- the children of the given parentNode, from first to last
-
getChildrenReverse
public java.lang.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 interfaceTreeForTreeLayout<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 interfaceTreeForTreeLayout<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 interfaceTreeForTreeLayout<TreeNode>
- Parameters:
parentNode
- [!isLeaf(parentNode)]- Returns:
- the last child of the parentNode
-
-