X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?a=blobdiff_plain;f=opendaylight%2Fnetconf%2Fnetconf-util%2Fsrc%2Fmain%2Fjava%2Forg%2Fopendaylight%2Fcontroller%2Fnetconf%2Futil%2Fxml%2FXmlElement.java;h=78efe7e9723154bd218bafa5d248af0329fb567d;hb=34bc6ec632529a0dfe419aa7404bb42a456fbc96;hp=ac200a0aa668c1a406e044e11205ac90c20fc478;hpb=b80124e3f7b11cf2f5e5bd4a6b033d855ff4d0d4;p=controller.git 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 ac200a0aa6..78efe7e972 100644 --- 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 @@ -20,7 +20,6 @@ import java.util.Collections; import java.util.HashMap; import java.util.List; import java.util.Map; -import javax.annotation.Nullable; import org.opendaylight.controller.netconf.api.NetconfDocumentedException; import org.opendaylight.controller.netconf.util.exception.MissingNameSpaceException; import org.opendaylight.controller.netconf.util.exception.UnexpectedElementException; @@ -204,7 +203,7 @@ public final class XmlElement { return Lists.newArrayList(Collections2.filter(getChildElementsWithinNamespace(namespace), new Predicate() { @Override - public boolean apply(@Nullable XmlElement xmlElement) { + public boolean apply(XmlElement xmlElement) { return xmlElement.getName().equals(childName); } })); @@ -224,11 +223,17 @@ public final class XmlElement { }); } + /** + * + * @param tagName tag name without prefix + * @return + */ public List getChildElements(final String tagName) { return getChildElementsInternal(new ElementFilteringStrategy() { @Override public boolean accept(Element e) { - return e.getTagName().equals(tagName); + // localName returns pure localName without prefix + return e.getLocalName().equals(tagName); } }); } @@ -292,7 +297,7 @@ public final class XmlElement { List children = getChildElementsWithinNamespace(namespace); children = Lists.newArrayList(Collections2.filter(children, new Predicate() { @Override - public boolean apply(@Nullable XmlElement xmlElement) { + public boolean apply(XmlElement xmlElement) { return xmlElement.getName().equals(childName); } })); @@ -338,6 +343,17 @@ public final class XmlElement { ); } + public Optional getOnlyTextContentOptionally() { + // only return text content if this node has exactly one Text child node + if (element.getChildNodes().getLength() == 1) { + Node item = element.getChildNodes().item(0); + if (item instanceof Text) { + return Optional.of(((Text) item).getWholeText()); + } + } + return Optional.absent(); + } + public String getNamespaceAttribute() throws MissingNameSpaceException { String attribute = element.getAttribute(XmlUtil.XMLNS_ATTRIBUTE_KEY); if (attribute == null || attribute.equals("")){ @@ -419,7 +435,7 @@ public final class XmlElement { List children = getChildElementsWithinNamespace(getNamespace()); return Lists.newArrayList(Collections2.filter(children, new Predicate() { @Override - public boolean apply(@Nullable XmlElement xmlElement) { + public boolean apply(XmlElement xmlElement) { return xmlElement.getName().equals(childName); } }));