You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@xerces.apache.org by mr...@apache.org on 2004/04/15 20:38:22 UTC

cvs commit: xml-xerces/java/src/org/apache/xerces/dom PSVIDocumentImpl.java

mrglavas    2004/04/15 11:38:22

  Modified:    java/src/org/apache/xerces/dom PSVIDocumentImpl.java
  Log:
  Fixing Jira Bug #923:
  http://nagoya.apache.org/jira/browse/XERCESJ-923
  
  PSVIDocumentImpl did not override cloneNode so an instance of
  its parent DocumentImpl was returned from this method instead
  of a new instance of PSVIDocumentImpl. This is now fixed thanks
  to the patch by Neil Delima.
  
  Revision  Changes    Path
  1.9       +24 -1     xml-xerces/java/src/org/apache/xerces/dom/PSVIDocumentImpl.java
  
  Index: PSVIDocumentImpl.java
  ===================================================================
  RCS file: /home/cvs/xml-xerces/java/src/org/apache/xerces/dom/PSVIDocumentImpl.java,v
  retrieving revision 1.8
  retrieving revision 1.9
  diff -u -r1.8 -r1.9
  --- PSVIDocumentImpl.java	24 Feb 2004 23:23:17 -0000	1.8
  +++ PSVIDocumentImpl.java	15 Apr 2004 18:38:22 -0000	1.9
  @@ -24,6 +24,7 @@
   // REVISIT: This is a HACK! DO NOT MODIFY THIS import.
   //          It allows us to expose DOM L3 implemenation via org.w3c.dom packages
   import org.apache.xerces.dom3.DOMConfiguration;
  +import org.apache.xerces.dom3.UserDataHandler;
   import org.w3c.dom.*;
   
   /**
  @@ -54,6 +55,28 @@
           super(doctype);
       }
       
  +    /**
  +     * Deep-clone a document, including fixing ownerDoc for the cloned
  +     * children. Note that this requires bypassing the WRONG_DOCUMENT_ERR
  +     * protection. I've chosen to implement it by calling importNode
  +     * which is DOM Level 2.
  +     *
  +     * @return org.w3c.dom.Node
  +     * @param deep boolean, iff true replicate children
  +     */
  +    public Node cloneNode(boolean deep) {
  +
  +        PSVIDocumentImpl newdoc = new PSVIDocumentImpl();
  +        callUserDataHandlers(this, newdoc, UserDataHandler.NODE_CLONED);
  +        cloneNode(newdoc, deep);
  +
  +        // experimental
  +        newdoc.mutationEvents = mutationEvents;
  +
  +        return newdoc;
  +
  +    } // cloneNode(boolean):Node
  +	    
       /**
        * Retrieve information describing the abilities of this particular
        * DOM implementation. Intended to support applications that may be
  
  
  

---------------------------------------------------------------------
To unsubscribe, e-mail: xerces-cvs-unsubscribe@xml.apache.org
For additional commands, e-mail: xerces-cvs-help@xml.apache.org