You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@xerces.apache.org by el...@apache.org on 2004/01/16 17:23:50 UTC
cvs commit: xml-xerces/java/src/org/apache/xerces/dom DocumentTypeImpl.java NodeImpl.java
elena 2004/01/16 08:23:50
Modified: java/src/org/apache/xerces/dom DocumentTypeImpl.java
NodeImpl.java
Log:
Apply patch submitted by Neil Delima. See bug #24667
Revision Changes Path
1.25 +92 -1 xml-xerces/java/src/org/apache/xerces/dom/DocumentTypeImpl.java
Index: DocumentTypeImpl.java
===================================================================
RCS file: /home/cvs/xml-xerces/java/src/org/apache/xerces/dom/DocumentTypeImpl.java,v
retrieving revision 1.24
retrieving revision 1.25
diff -u -r1.24 -r1.25
--- DocumentTypeImpl.java 25 Mar 2003 20:50:37 -0000 1.24
+++ DocumentTypeImpl.java 16 Jan 2004 16:23:50 -0000 1.25
@@ -262,6 +262,97 @@
throws DOMException {
// no-op
}
+
+ /**
+ * DOM Level 3 WD- Experimental.
+ * Override inherited behavior from ParentNodeImpl to support deep equal.
+ */
+ public boolean isEqualNode(Node arg) {
+
+ if (!super.isEqualNode(arg)) {
+ return false;
+ }
+
+ if (needsSyncData()) {
+ synchronizeData();
+ }
+ DocumentTypeImpl argDocType = (DocumentTypeImpl) arg;
+
+ //test if the following string attributes are equal: publicId,
+ //systemId, internalSubset.
+ if ((getPublicId() == null && argDocType.getPublicId() != null)
+ || (getPublicId() != null && argDocType.getPublicId() == null)
+ || (getSystemId() == null && argDocType.getSystemId() != null)
+ || (getSystemId() != null && argDocType.getSystemId() == null)
+ || (getInternalSubset() == null
+ && argDocType.getInternalSubset() != null)
+ || (getInternalSubset() != null
+ && argDocType.getInternalSubset() == null)) {
+ return false;
+ }
+
+ if (getPublicId() != null) {
+ if (!getPublicId().equals(argDocType.getPublicId())) {
+ return false;
+ }
+ }
+
+ if (getSystemId() != null) {
+ if (!getSystemId().equals(argDocType.getSystemId())) {
+ return false;
+ }
+ }
+
+ if (getInternalSubset() != null) {
+ if (!getInternalSubset().equals(argDocType.getInternalSubset())) {
+ return false;
+ }
+ }
+
+ //test if NamedNodeMaps entities and notations are equal
+ NamedNodeMapImpl argEntities = argDocType.entities;
+
+ if ((entities == null && argEntities != null)
+ || (entities != null && argEntities == null))
+ return false;
+
+ if (entities != null && argEntities != null) {
+ if (entities.getLength() != argEntities.getLength())
+ return false;
+
+ for (int index = 0; entities.item(index) != null; index++) {
+ Node entNode1 = entities.item(index);
+ Node entNode2 =
+ argEntities.getNamedItem(entNode1.getNodeName());
+
+ if (!((NodeImpl) entNode1).isEqualNode((NodeImpl) entNode2))
+ return false;
+ }
+ }
+
+ NamedNodeMapImpl argNotations = argDocType.notations;
+
+ if ((notations == null && argNotations != null)
+ || (notations != null && argNotations == null))
+ return false;
+
+ if (notations != null && argNotations != null) {
+ if (notations.getLength() != argNotations.getLength())
+ return false;
+
+ for (int index = 0; notations.item(index) != null; index++) {
+ Node noteNode1 = notations.item(index);
+ Node noteNode2 =
+ argNotations.getNamedItem(noteNode1.getNodeName());
+
+ if (!((NodeImpl) noteNode1).isEqualNode((NodeImpl) noteNode2))
+ return false;
+ }
+ }
+
+ return true;
+ } //end isEqualNode
+
/**
* NON-DOM
1.71 +1 -9 xml-xerces/java/src/org/apache/xerces/dom/NodeImpl.java
Index: NodeImpl.java
===================================================================
RCS file: /home/cvs/xml-xerces/java/src/org/apache/xerces/dom/NodeImpl.java,v
retrieving revision 1.70
retrieving revision 1.71
diff -u -r1.70 -r1.71
--- NodeImpl.java 18 Nov 2003 22:23:00 -0000 1.70
+++ NodeImpl.java 16 Jan 2004 16:23:50 -0000 1.71
@@ -1783,14 +1783,6 @@
return false;
}
- if (getBaseURI() == null) {
- if (((NodeImpl) arg).getBaseURI() != null) {
- return false;
- }
- }
- else if (!getBaseURI().equals(((NodeImpl) arg).getBaseURI())) {
- return false;
- }
return true;
}
---------------------------------------------------------------------
To unsubscribe, e-mail: xerces-cvs-unsubscribe@xml.apache.org
For additional commands, e-mail: xerces-cvs-help@xml.apache.org