OSDN Git Service

imported from subversion repository
[xerial/xerial-core.git] / src / main / java / org / xerial / util / tree / impl / TreeNodeImpl.java
1 /*--------------------------------------------------------------------------\r
2  *  Copyright 2009 Taro L. Saito\r
3  *\r
4  *  Licensed under the Apache License, Version 2.0 (the "License");\r
5  *  you may not use this file except in compliance with the License.\r
6  *  You may obtain a copy of the License at\r
7  *\r
8  *     http://www.apache.org/licenses/LICENSE-2.0\r
9  *\r
10  *  Unless required by applicable law or agreed to in writing, software\r
11  *  distributed under the License is distributed on an "AS IS" BASIS,\r
12  *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r
13  *  See the License for the specific language governing permissions and\r
14  *  limitations under the License.\r
15  *--------------------------------------------------------------------------*/\r
16 //--------------------------------------\r
17 // XerialJ\r
18 //\r
19 // TreeNodeImpl.java\r
20 // Since: 2009/03/30 23:09:43\r
21 //\r
22 // $URL$\r
23 // $Author$\r
24 //--------------------------------------\r
25 package org.xerial.util.tree.impl;\r
26 \r
27 import java.util.ArrayList;\r
28 import java.util.List;\r
29 \r
30 import org.xerial.util.tree.TreeNode;\r
31 \r
32 public class TreeNodeImpl implements TreeNode\r
33 {\r
34     String nodeName = null;\r
35     String nodeValue = null;\r
36     List<TreeNode> childNodes = new ArrayList<TreeNode>();\r
37 \r
38     public TreeNodeImpl(String nodeName, String nodeValue)\r
39     {\r
40         this.nodeName = nodeName;\r
41         this.nodeValue = nodeValue;\r
42     }\r
43 \r
44     public TreeNodeImpl addNode(TreeNodeImpl node)\r
45     {\r
46         childNodes.add(node);\r
47         return node;\r
48     }\r
49 \r
50     public List<TreeNode> getChildren()\r
51     {\r
52         return childNodes;\r
53     }\r
54 \r
55     public String getNodeName()\r
56     {\r
57         return nodeName;\r
58     }\r
59 \r
60     public String getNodeValue()\r
61     {\r
62         return nodeValue;\r
63     }\r
64 \r
65     public void setNodeValue(String nodeValue)\r
66     {\r
67         this.nodeValue = nodeValue;\r
68     }\r
69 \r
70     @Override\r
71     public String toString()\r
72     {\r
73         StringBuilder buf = new StringBuilder();\r
74         buf.append(nodeName);\r
75         if (nodeValue != null)\r
76         {\r
77             buf.append(":");\r
78             buf.append(nodeValue);\r
79         }\r
80         if (!childNodes.isEmpty())\r
81         {\r
82             buf.append("(");\r
83             int index = 0;\r
84             for (TreeNode each : childNodes)\r
85             {\r
86                 if (index != 0)\r
87                     buf.append(", ");\r
88                 buf.append(each);\r
89                 index++;\r
90             }\r
91             buf.append(")");\r
92         }\r
93 \r
94         return buf.toString();\r
95     }\r
96 \r
97 }\r