mystring.c had a little (non-)error.
[xmlparser.git] / XMLTag.java
blobb6cd78ade5145921f91fb1a724aa4a3a4457e047
1 import java.util.*;
3 public class XMLTag {
4 StringBuilder name;
5 StringBuilder value;
6 ArrayList<XMLTag> children;
7 XMLTag parent;
8 static int depth = 0;
10 public XMLTag(XMLTag parent) {
11 this.parent = parent;
12 children = new ArrayList<XMLTag>();
13 name = new StringBuilder();
14 value = new StringBuilder();
17 public String getName() {
18 return name.toString();
21 public String getValue() {
22 return value.toString();
25 public void setName(String name) {
26 this.name = new StringBuilder(name);
29 public void setValue(String value) {
30 this.value = new StringBuilder(value);
33 public void addNameChar(char c) {
34 name.append(c);
37 public void addValueChar(char c) {
38 value.append(c);
41 public void addChild(XMLTag child) {
42 children.add(child);
45 public void removeChild(XMLTag child) {
46 children.remove(child);
49 public ArrayList<XMLTag> getChildren() {
50 return children;
53 public XMLTag getParent() {
54 return parent;
57 public boolean check() {
58 if (name.length() == 0) return false;
59 return true;
62 public void printTree() {
63 for (XMLTag tag: getChildren()) {
64 tag.printTreeHelper();
68 private static String multiplyChar(char c, int length) {
69 StringBuilder b = new StringBuilder();
70 for (int i = 0; i < length; i++) {
71 b.append(c);
73 return b.toString();
76 private void printTreeHelper() {
77 System.out.printf("%s%s; ", multiplyChar(' ', 4*depth), getName());
78 if (getChildren().size() > 0) {
79 System.out.printf("children: %d; ", getChildren().size());
81 if (getValue().length() > 0) {
82 System.out.printf("value: %s;", getValue());
84 System.out.println();
85 depth++;
86 for (XMLTag tag: getChildren()) {
87 tag.printTreeHelper();
89 depth--;