diff options
Diffstat (limited to 'tests/org.eclipse.wst.wsdl.tests/src/org/eclipse/wst/wsdl/tests/util/XMLDiff.java')
-rw-r--r-- | tests/org.eclipse.wst.wsdl.tests/src/org/eclipse/wst/wsdl/tests/util/XMLDiff.java | 169 |
1 files changed, 0 insertions, 169 deletions
diff --git a/tests/org.eclipse.wst.wsdl.tests/src/org/eclipse/wst/wsdl/tests/util/XMLDiff.java b/tests/org.eclipse.wst.wsdl.tests/src/org/eclipse/wst/wsdl/tests/util/XMLDiff.java deleted file mode 100644 index 907a3306e..000000000 --- a/tests/org.eclipse.wst.wsdl.tests/src/org/eclipse/wst/wsdl/tests/util/XMLDiff.java +++ /dev/null @@ -1,169 +0,0 @@ -package org.eclipse.wst.wsdl.tests.util; - -import org.w3c.dom.*; -import org.xml.sax.SAXException; - -import java.io.*; - -import javax.xml.parsers.DocumentBuilder; -import javax.xml.parsers.DocumentBuilderFactory; -import javax.xml.parsers.ParserConfigurationException; - -/** - * @author Kihup Boo - */ -public class XMLDiff -{ - private PrintStream out = System.out; - private boolean DIFF_ELEMENT_NODE_ONLY = false; - - public boolean diff(String file1, String file2) throws ParserConfigurationException, SAXException, IOException - { - return diff(file1,file2,false); - } - - public boolean diff(String file1, String file2, boolean elementOnly) throws ParserConfigurationException, SAXException, IOException - { - Document doc1 = getDocument(file1); - Document doc2 = getDocument(file2); - DIFF_ELEMENT_NODE_ONLY = elementOnly; - return diff(doc1,doc2); - } - - public boolean diff(Document doc1, Document doc2) - { - Element root1 = doc1.getDocumentElement(); - Element root2 = doc2.getDocumentElement(); - return compareNodes(root1,root2); - } - - private Document getDocument(String uri) throws ParserConfigurationException, SAXException, IOException - { - DocumentBuilder builder = DocumentBuilderFactory.newInstance().newDocumentBuilder(); - Document doc = builder.parse(uri); - return doc; - } - - private boolean compareNodes(Node node1, Node node2) - { - if (DIFF_ELEMENT_NODE_ONLY) - { - // Compare only element nodes in the children. - filterNonElementNodes(node1); - filterNonElementNodes(node2); - } - - if (node1.getNodeType() != node2.getNodeType() - || node1.getNodeName() != node2.getNodeName()) - { - println("Node type or node name is different:"); - println("Node 1: " + node1.getNodeName()); - println("Node 2: " + node2.getNodeName()); - return false; - } - - if (!compareAttributes(node1,node2)) - return false; - - NodeList nodeList1 = node1.getChildNodes(); - NodeList nodeList2 = node2.getChildNodes(); - if (nodeList1.getLength() != nodeList2.getLength()) - { - println("The number of children is different:"); - //println("Node 1: " + nodeList1.getLength()); - //println("Node 2: " + nodeList2.getLength()); - println("Node 1: " + node1.getNodeName()); - println("Node 2: " + node2.getNodeName()); - return false; - } - - boolean result = true; - int length = nodeList1.getLength(); - for (int i=0; i<length; i++) - { - result = compareNodes(nodeList1.item(i),nodeList2.item(i)); - if (!result) - return false; - } - return true; - } - - private void filterNonElementNodes(Node node) - { - Node firstChild = node.getFirstChild(); - while (firstChild.getNodeType() != Node.ELEMENT_NODE) - { - node.removeChild(firstChild); - firstChild = node.getFirstChild(); - } - - Node sibling = firstChild.getNextSibling(); - Node deleteMe = null; - while (sibling != null) - { - if (sibling.getNodeType() != Node.ELEMENT_NODE) - { - deleteMe = sibling; - sibling = sibling.getNextSibling(); - node.removeChild(deleteMe); - } - - } - } - - private boolean compareAttributes(Node node1, Node node2) - { - NamedNodeMap nodeMap1 = node1.getAttributes(); - NamedNodeMap nodeMap2 = node2.getAttributes(); - - if (nodeMap1 == null || nodeMap2 == null) - { - if (nodeMap1 == null && nodeMap2 == null) - return true; - else - return false; - } - - if (nodeMap1.getLength() != nodeMap2.getLength()) - { - println("The number of attributes is different:"); - println("Node 1: " + node1.getNodeName()); - println("Node 2: " + node2.getNodeName()); - return false; - } - - Node attrNode1 = null; - Node attrNode2 = null; - int length = nodeMap1.getLength(); - for (int i=0; i<length; i++) - { - attrNode1 = nodeMap1.item(i); - attrNode2 = nodeMap2.getNamedItem(attrNode1.getNodeName()); - if (attrNode2 == null) - { - println("The attribute is not found in Node 2: " + attrNode1.getNodeName()); - println("Node 1: " + node1.getNodeName()); - println("Node 2: " + node2.getNodeName()); - return false; - } - else if (!attrNode1.getNodeValue().equals(attrNode2.getNodeValue())) - { - println("The attribute values are different:"); - println("Node 1: " + node1.getNodeName() + "," + attrNode1.getNodeValue()); - println("Node 2: " + node2.getNodeName() + "," + attrNode2.getNodeValue()); - return false; - } - } - return true; - } - - private void print(String s) - { - out.print(s); - } - - private void println(String s) - { - out.println(s); - } -} |