1
22
23 package com.liferay.portal.kernel.util;
24
25 import java.util.ArrayList;
26 import java.util.List;
27
28
33 public class TreeNode<T extends Comparable<T>> {
34
35 public TreeNode(T value) {
36 this(value, null);
37 }
38
39 public TreeNode(T value, TreeNode<T> parentNode) {
40 this(value, parentNode, new ArrayList<TreeNode<T>>());
41 }
42
43 public TreeNode(
44 T value, TreeNode<T> parentNode, List<TreeNode<T>> childNodes) {
45
46 _value = value;
47 _parentNode = parentNode;
48 _childNodes = childNodes;
49 }
50
51 public TreeNode<T> addChildNode(T value) {
52 TreeNode<T> childNode = new TreeNode<T>(value, this);
53
54 _childNodes.add(childNode);
55
56 return childNode;
57 }
58
59 public List<TreeNode<T>> getChildNodes() {
60 return _childNodes;
61 }
62
63 public List<T> getChildValues() {
64 List<T> values = new ArrayList<T>(_childNodes.size());
65
66 for (TreeNode<T> childNode : _childNodes) {
67 values.add(childNode.getValue());
68 }
69
70 return values;
71 }
72
73 public TreeNode<T> getParentNode() {
74 return _parentNode;
75 }
76
77 public T getValue() {
78 return _value;
79 }
80
81 public boolean isRootNode() {
82 if (_parentNode == null) {
83 return true;
84 }
85 else {
86 return false;
87 }
88 }
89
90 private final List<TreeNode<T>> _childNodes;
91 private final TreeNode<T> _parentNode;
92 private final T _value;
93
94 }