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