further bullet proofing

iNPUTmice created

Change summary

src/eu/siacs/conversations/xml/Element.java | 65 +++++++++++-----------
1 file changed, 33 insertions(+), 32 deletions(-)

Detailed changes

src/eu/siacs/conversations/xml/Element.java 🔗

@@ -9,24 +9,24 @@ public class Element {
 	protected Hashtable<String, String> attributes = new Hashtable<String, String>();
 	protected String content;
 	protected List<Element> children = new ArrayList<Element>();
-	
+
 	public Element(String name) {
 		this.name = name;
 	}
-	
+
 	public Element addChild(Element child) {
 		this.content = null;
 		children.add(child);
 		return child;
 	}
-	
+
 	public Element addChild(String name) {
 		this.content = null;
 		Element child = new Element(name);
 		children.add(child);
 		return child;
 	}
-	
+
 	public Element addChild(String name, String xmlns) {
 		this.content = null;
 		Element child = new Element(name);
@@ -34,64 +34,65 @@ public class Element {
 		children.add(child);
 		return child;
 	}
-	
+
 	public Element setContent(String content) {
 		this.content = content;
 		this.children.clear();
 		return this;
 	}
-	
+
 	public Element findChild(String name) {
-		for(Element child : this.children) {
+		for (Element child : this.children) {
 			if (child.getName().equals(name)) {
 				return child;
 			}
 		}
 		return null;
 	}
-	
+
 	public Element findChild(String name, String xmlns) {
-		for(Element child : this.children) {
-			if (child.getName().equals(name)&&(child.getAttribute("xmlns").equals(xmlns))) {
+		for (Element child : this.children) {
+			if (child.getName().equals(name)
+					&& (child.getAttribute("xmlns").equals(xmlns))) {
 				return child;
 			}
 		}
 		return null;
 	}
-	
+
 	public boolean hasChild(String name) {
 		return findChild(name) != null;
 	}
-	
+
 	public boolean hasChild(String name, String xmlns) {
 		return findChild(name, xmlns) != null;
 	}
-	
-	
-	
+
 	public List<Element> getChildren() {
 		return this.children;
 	}
-	
+
 	public Element setChildren(List<Element> children) {
 		this.children = children;
 		return this;
 	}
-	
+
 	public String getContent() {
 		return content;
 	}
-	
+
 	public Element setAttribute(String name, String value) {
-		this.attributes.put(name, value);
+		if (name != null && value != null) {
+			this.attributes.put(name, value);
+		}
 		return this;
 	}
-	
+
 	public Element setAttributes(Hashtable<String, String> attributes) {
 		this.attributes = attributes;
 		return this;
 	}
-	
+
 	public String getAttribute(String name) {
 		if (this.attributes.containsKey(name)) {
 			return this.attributes.get(name);
@@ -99,14 +100,14 @@ public class Element {
 			return null;
 		}
 	}
-	
+
 	public Hashtable<String, String> getAttributes() {
 		return this.attributes;
 	}
-	
+
 	public String toString() {
 		StringBuilder elementOutput = new StringBuilder();
-		if ((content==null)&&(children.size() == 0)) {
+		if ((content == null) && (children.size() == 0)) {
 			Tag emptyTag = Tag.empty(name);
 			emptyTag.setAtttributes(this.attributes);
 			elementOutput.append(emptyTag.toString());
@@ -114,10 +115,10 @@ public class Element {
 			Tag startTag = Tag.start(name);
 			startTag.setAtttributes(this.attributes);
 			elementOutput.append(startTag);
-			if (content!=null) {
+			if (content != null) {
 				elementOutput.append(encodeEntities(content));
 			} else {
-				for(Element child : children) {
+				for (Element child : children) {
 					elementOutput.append(child.toString());
 				}
 			}
@@ -130,13 +131,13 @@ public class Element {
 	public String getName() {
 		return name;
 	}
-	
+
 	private String encodeEntities(String content) {
-		content = content.replace("&","&amp;");
-		content = content.replace("<","&lt;");
-		content = content.replace(">","&gt;");
-		content = content.replace("\"","&quot;");
-		content = content.replace("'","&apos;");
+		content = content.replace("&", "&amp;");
+		content = content.replace("<", "&lt;");
+		content = content.replace(">", "&gt;");
+		content = content.replace("\"", "&quot;");
+		content = content.replace("'", "&apos;");
 		return content;
 	}