Code Review
/
controller.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
review
|
tree
raw
|
inline
| side by side
Fix warnings in netconf-api and netconf-util
[controller.git]
/
opendaylight
/
netconf
/
netconf-util
/
src
/
main
/
java
/
org
/
opendaylight
/
controller
/
netconf
/
util
/
xml
/
XmlElement.java
diff --git
a/opendaylight/netconf/netconf-util/src/main/java/org/opendaylight/controller/netconf/util/xml/XmlElement.java
b/opendaylight/netconf/netconf-util/src/main/java/org/opendaylight/controller/netconf/util/xml/XmlElement.java
index 5a7fde4e3ddd3e0f29720ebb914cf1a447817d8b..1fbae1ee2d6e52c404742655ccd059e9038fd803 100644
(file)
--- a/
opendaylight/netconf/netconf-util/src/main/java/org/opendaylight/controller/netconf/util/xml/XmlElement.java
+++ b/
opendaylight/netconf/netconf-util/src/main/java/org/opendaylight/controller/netconf/util/xml/XmlElement.java
@@
-8,24
+8,32
@@
package org.opendaylight.controller.netconf.util.xml;
package org.opendaylight.controller.netconf.util.xml;
-import java.io.IOException;
-import java.util.*;
-
-import javax.annotation.Nullable;
-
-import org.w3c.dom.*;
-import org.xml.sax.SAXException;
-
import com.google.common.base.Optional;
import com.google.common.base.Preconditions;
import com.google.common.base.Predicate;
import com.google.common.collect.Collections2;
import com.google.common.collect.Lists;
import com.google.common.collect.Maps;
import com.google.common.base.Optional;
import com.google.common.base.Preconditions;
import com.google.common.base.Predicate;
import com.google.common.collect.Collections2;
import com.google.common.collect.Lists;
import com.google.common.collect.Maps;
+import org.w3c.dom.Attr;
+import org.w3c.dom.Document;
+import org.w3c.dom.Element;
+import org.w3c.dom.NamedNodeMap;
+import org.w3c.dom.Node;
+import org.w3c.dom.NodeList;
+import org.w3c.dom.Text;
+import org.xml.sax.SAXException;
-public class XmlElement {
+import javax.annotation.Nullable;
+import java.io.IOException;
+import java.util.ArrayList;
+import java.util.Collections;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+public final class XmlElement {
- p
ublic
final Element element;
+ p
rivate
final Element element;
private XmlElement(Element element) {
this.element = element;
private XmlElement(Element element) {
this.element = element;
@@
-95,6
+103,9
@@
public class XmlElement {
}
public String getName() {
}
public String getName() {
+ if (element.getLocalName()!=null && !element.getLocalName().equals("")){
+ return element.getLocalName();
+ }
return element.getTagName();
}
return element.getTagName();
}
@@
-106,11
+117,12
@@
public class XmlElement {
return element.getAttributeNS(namespace, attributeName);
}
return element.getAttributeNS(namespace, attributeName);
}
+ public NodeList getElementsByTagName(String name) {
+ return element.getElementsByTagName(name);
+ }
+
public void appendChild(Element element) {
this.element.appendChild(element);
public void appendChild(Element element) {
this.element.appendChild(element);
- // Element newElement = (Element) element.cloneNode(true);
- // newElement.appendChild(configElement);
- // return XmlElement.fromDomElement(newElement);
}
public Element getDomElement() {
}
public Element getDomElement() {
@@
-138,10
+150,12
@@
public class XmlElement {
final List<XmlElement> result = new ArrayList<>();
for (int i = 0; i < childNodes.getLength(); i++) {
Node item = childNodes.item(i);
final List<XmlElement> result = new ArrayList<>();
for (int i = 0; i < childNodes.getLength(); i++) {
Node item = childNodes.item(i);
- if (item instanceof Element == false)
+ if (item instanceof Element == false)
{
continue;
continue;
- if (strat.accept((Element) item))
+ }
+ if (strat.accept((Element) item)) {
result.add(new XmlElement((Element) item));
result.add(new XmlElement((Element) item));
+ }
}
return result;
}
return result;
@@
-257,7
+271,9
@@
public class XmlElement {
public String getTextContent() {
Node textChild = element.getFirstChild();
public String getTextContent() {
Node textChild = element.getFirstChild();
- Preconditions.checkState(textChild instanceof Text, getName() + " should contain text");
+ Preconditions.checkNotNull(textChild, "Child node expected, got null for " + getName() + " : " + element);
+ Preconditions.checkState(textChild instanceof Text, getName() + " should contain text." +
+ Text.class.getName() + " expected, got " + textChild);
String content = textChild.getTextContent();
// Trim needed
return content.trim();
String content = textChild.getTextContent();
// Trim needed
return content.trim();
@@
-265,20
+281,20
@@
public class XmlElement {
public String getNamespaceAttribute() {
String attribute = element.getAttribute(XmlUtil.XMLNS_ATTRIBUTE_KEY);
public String getNamespaceAttribute() {
String attribute = element.getAttribute(XmlUtil.XMLNS_ATTRIBUTE_KEY);
- Preconditions.checkState(attribute != null && !attribute.equals(""), "Element %s must specify
a %s attribut
e",
- toString()
, XmlUtil.XMLNS_ATTRIBUTE_KEY
);
+ Preconditions.checkState(attribute != null && !attribute.equals(""), "Element %s must specify
namespac
e",
+ toString());
return attribute;
}
public String getNamespace() {
String namespaceURI = element.getNamespaceURI();
Preconditions.checkState(namespaceURI != null, "No namespace defined for %s", this);
return attribute;
}
public String getNamespace() {
String namespaceURI = element.getNamespaceURI();
Preconditions.checkState(namespaceURI != null, "No namespace defined for %s", this);
- return namespaceURI
.toString()
;
+ return namespaceURI;
}
@Override
public String toString() {
}
@Override
public String toString() {
- final StringBu
ffer sb = new StringBuff
er("XmlElement{");
+ final StringBu
ilder sb = new StringBuild
er("XmlElement{");
sb.append("name='").append(getName()).append('\'');
if (element.getNamespaceURI() != null) {
sb.append(", namespace='").append(getNamespace()).append('\'');
sb.append("name='").append(getName()).append('\'');
if (element.getNamespaceURI() != null) {
sb.append(", namespace='").append(getNamespace()).append('\'');
@@
-303,7
+319,7
@@
public class XmlElement {
public Map.Entry<String/* prefix */, String/* namespace */> findNamespaceOfTextContent() {
Map<String, String> namespaces = extractNamespaces(element);
String textContent = getTextContent();
public Map.Entry<String/* prefix */, String/* namespace */> findNamespaceOfTextContent() {
Map<String, String> namespaces = extractNamespaces(element);
String textContent = getTextContent();
- int indexOfColon = textContent.indexOf(
":"
);
+ int indexOfColon = textContent.indexOf(
':'
);
String prefix;
if (indexOfColon > -1) {
prefix = textContent.substring(0, indexOfColon);
String prefix;
if (indexOfColon > -1) {
prefix = textContent.substring(0, indexOfColon);
@@
-311,7
+327,7
@@
public class XmlElement {
prefix = "";
}
if (namespaces.containsKey(prefix) == false) {
prefix = "";
}
if (namespaces.containsKey(prefix) == false) {
- throw new IllegalArgumentException("Cannot find namespace for " +
element
+ ". Prefix from content is "
+ throw new IllegalArgumentException("Cannot find namespace for " +
XmlUtil.toString(element)
+ ". Prefix from content is "
+ prefix + ". Found namespaces " + namespaces);
}
return Maps.immutableEntry(prefix, namespaces.get(prefix));
+ prefix + ". Found namespaces " + namespaces);
}
return Maps.immutableEntry(prefix, namespaces.get(prefix));
@@
-343,15
+359,18
@@
public class XmlElement {
@Override
public boolean equals(Object o) {
@Override
public boolean equals(Object o) {
- if (this == o)
+ if (this == o)
{
return true;
return true;
- if (o == null || getClass() != o.getClass())
+ }
+ if (o == null || getClass() != o.getClass()) {
return false;
return false;
+ }
XmlElement that = (XmlElement) o;
XmlElement that = (XmlElement) o;
- if (!element.isEqualNode(that.element))
+ if (!element.isEqualNode(that.element))
{
return false;
return false;
+ }
return true;
}
return true;
}
@@
-361,7
+380,21
@@
public class XmlElement {
return element.hashCode();
}
return element.hashCode();
}
- private static interface ElementFilteringStrategy {
+ public boolean hasNamespace() {
+ try {
+ getNamespaceAttribute();
+ } catch (IllegalStateException e) {
+ try {
+ getNamespace();
+ } catch (IllegalStateException e1) {
+ return false;
+ }
+ return true;
+ }
+ return true;
+ }
+
+ private interface ElementFilteringStrategy {
boolean accept(Element e);
}
}
boolean accept(Element e);
}
}