You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
73 lines
1.7 KiB
73 lines
1.7 KiB
package de.timroes.axmlrpc.xmlcreator; |
|
|
|
import java.util.ArrayList; |
|
import java.util.List; |
|
|
|
/** |
|
* An xml element within an xml tree. |
|
* In this case an xml element can have a text content OR a multiple amount |
|
* of children. The xml element itself has a name. |
|
* |
|
* @author Tim Roes |
|
*/ |
|
public class XmlElement { |
|
|
|
private List<XmlElement> children = new ArrayList<XmlElement>(); |
|
private String name; |
|
private String content; |
|
|
|
/** |
|
* Create a new xml element with the given name. |
|
* |
|
* @param name The name of the xml element. |
|
*/ |
|
public XmlElement(String name) { |
|
this.name = name; |
|
} |
|
|
|
/** |
|
* Add a child to this xml element. |
|
* |
|
* @param element The child to add. |
|
*/ |
|
public void addChildren(XmlElement element) { |
|
children.add(element); |
|
} |
|
|
|
/** |
|
* Set the content of this xml tag. If the content is set the children |
|
* won't be used in a string representation. |
|
* |
|
* @param content Content of the xml element. |
|
*/ |
|
public void setContent(String content) { |
|
this.content = content; |
|
} |
|
|
|
/** |
|
* Return a string representation of this xml element. |
|
* |
|
* @return String representation of xml element. |
|
*/ |
|
@Override |
|
public String toString() { |
|
StringBuilder builder = new StringBuilder(); |
|
if(content != null && content.length() > 0) { |
|
builder.append("\n<").append(name).append(">") |
|
.append(content) |
|
.append("</").append(name).append(">\n"); |
|
return builder.toString(); |
|
} else if(children.size() > 0) { |
|
builder.append("\n<").append(name).append(">"); |
|
for(XmlElement x : children) { |
|
builder.append(x.toString()); |
|
} |
|
builder.append("</").append(name).append(">\n"); |
|
return builder.toString(); |
|
} else { |
|
builder.append("\n<").append(name).append("/>\n"); |
|
return builder.toString(); |
|
} |
|
} |
|
|
|
}
|
|
|