[utilities COMMIT] in /java-support/trunk/src/main/java/net/shibboleth/utilities/java/support/xml: ElementSupport.jav...

noreply at shibboleth.net noreply at shibboleth.net
Mon Mar 18 22:25:30 EDT 2013


Author: scantor
Date: Mon Mar 18 22:25:30 2013
New Revision: 360

URL: http://svn.shibboleth.net/view/utilities?rev=360&view=rev
Log:
OSJ-47: Fix NodeList usage.

Modified:
    java-support/trunk/src/main/java/net/shibboleth/utilities/java/support/xml/ElementSupport.java
    java-support/trunk/src/main/java/net/shibboleth/utilities/java/support/xml/NamespaceSupport.java

Modified: java-support/trunk/src/main/java/net/shibboleth/utilities/java/support/xml/ElementSupport.java
URL: http://svn.shibboleth.net/view/utilities/java-support/trunk/src/main/java/net/shibboleth/utilities/java/support/xml/ElementSupport.java?rev=360&r1=359&r2=360&view=diff
==============================================================================
--- java-support/trunk/src/main/java/net/shibboleth/utilities/java/support/xml/ElementSupport.java (original)
+++ java-support/trunk/src/main/java/net/shibboleth/utilities/java/support/xml/ElementSupport.java Mon Mar 18 22:25:30 2013
@@ -33,7 +33,6 @@
 import org.w3c.dom.Document;
 import org.w3c.dom.Element;
 import org.w3c.dom.Node;
-import org.w3c.dom.NodeList;
 import org.w3c.dom.Text;
 
 import com.google.common.base.Objects;
@@ -156,14 +155,10 @@
         
         final ArrayList<Element> children = new ArrayList<Element>();
 
-        final NodeList childNodes = root.getChildNodes();
-        final int numOfNodes = childNodes.getLength();
-        Node childNode;
-        for (int i = 0; i < numOfNodes; i++) {
-            childNode = childNodes.item(i);
-            if (childNode.getNodeType() == Node.ELEMENT_NODE) {
-                children.add((Element) childNode);
-            }
+        Element childNode = getFirstChildElement(root);
+        while (childNode != null) {
+            children.add((Element) childNode);
+            childNode = getNextSiblingElement(childNode);
         }
 
         return children;
@@ -203,18 +198,12 @@
 
         final ArrayList<Element> children = new ArrayList<Element>();
 
-        final NodeList childNodes = root.getChildNodes();
-        final int numOfNodes = childNodes.getLength();
-        Node childNode;
-        Element e;
-        for (int i = 0; i < numOfNodes; i++) {
-            childNode = childNodes.item(i);
-            if (childNode.getNodeType() == Node.ELEMENT_NODE) {
-                e = (Element) childNode;
-                if (Objects.equal(e.getLocalName(), localName)) {
-                    children.add(e);
-                }
-            }
+        Element childNode = getFirstChildElement(root);
+        while (childNode != null) {
+            if (Objects.equal(childNode.getLocalName(), localName)) {
+                children.add(childNode);
+            }
+            childNode = getNextSiblingElement(childNode);
         }
 
         return children;
@@ -238,18 +227,12 @@
 
         final ArrayList<Element> children = new ArrayList<Element>();
 
-        final NodeList childNodes = root.getChildNodes();
-        final int numOfNodes = childNodes.getLength();
-        Node childNode;
-        Element e;
-        for (int i = 0; i < numOfNodes; i++) {
-            childNode = childNodes.item(i);
-            if (childNode.getNodeType() == Node.ELEMENT_NODE) {
-                e = (Element) childNode;
-                if (Objects.equal(e.getNamespaceURI(), namespaceURI) && Objects.equal(e.getLocalName(), localName)) {
-                    children.add(e);
-                }
-            }
+        Element childNode = getFirstChildElement(root);
+        while (childNode != null) {
+            if (isElementNamed(childNode, namespaceURI, localName)) {
+                children.add(childNode);
+            }
+            childNode = getNextSiblingElement(childNode);
         }
 
         return children;
@@ -269,8 +252,7 @@
 
         final Node parent = currentNode.getParentNode();
         if (parent != null) {
-            short type = parent.getNodeType();
-            if (type == Node.ELEMENT_NODE) {
+            if (parent.getNodeType() == Node.ELEMENT_NODE) {
                 return (Element) parent;
             }
             return getElementAncestor(parent);
@@ -292,17 +274,18 @@
         }
         StringBuilder builder = new StringBuilder();
 
-        final NodeList nodeList = element.getChildNodes();
-        Node node;
+        Node node = element.getFirstChild();
         boolean first = true;
-        for (int i = 0; i < nodeList.getLength(); i++) {
-            node = nodeList.item(i);
-            if (node.getNodeType() == Node.TEXT_NODE) {
-                if (!first) {
+        while (node != null) {
+            if (node.getNodeType() == Node.TEXT_NODE || node.getNodeType() == Node.CDATA_SECTION_NODE) {
+                if (first) {
+                    first = false;
+                } else {
                     builder.append(XmlConstants.LIST_DELIMITERS.charAt(0));
                 }
                 builder.append(((Text) node).getWholeText());
             }
+            node = node.getNextSibling();
         }
         
         return builder.toString();
@@ -387,26 +370,18 @@
 

[... 62 lines stripped ...]


More information about the commits mailing list