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 2005/06/19 19:12:22 UTC

cvs commit: xml-xerces/java/src/org/apache/xerces/jaxp DocumentBuilderImpl.java

mrglavas    2005/06/19 10:12:22

  Modified:    java/src/org/apache/xerces/jaxp DocumentBuilderImpl.java
  Log:
  Implementing reset for the DocumentBuilder.
  Restore the initial error handler and entity resolver.
  
  Revision  Changes    Path
  1.29      +25 -5     xml-xerces/java/src/org/apache/xerces/jaxp/DocumentBuilderImpl.java
  
  Index: DocumentBuilderImpl.java
  ===================================================================
  RCS file: /home/cvs/xml-xerces/java/src/org/apache/xerces/jaxp/DocumentBuilderImpl.java,v
  retrieving revision 1.28
  retrieving revision 1.29
  diff -u -r1.28 -r1.29
  --- DocumentBuilderImpl.java	16 Jun 2005 17:42:10 -0000	1.28
  +++ DocumentBuilderImpl.java	19 Jun 2005 17:12:22 -0000	1.29
  @@ -21,7 +21,6 @@
   import java.util.Hashtable;
   
   import javax.xml.parsers.DocumentBuilder;
  -import javax.xml.parsers.DocumentBuilderFactory;
   import javax.xml.validation.Schema;
   
   import org.apache.xerces.dom.DOMImplementationImpl;
  @@ -85,6 +84,12 @@
       private DOMParser domParser = null;
       private final Schema grammar;
       
  +    /** Initial ErrorHandler */
  +    private final ErrorHandler fInitErrorHandler;
  +    
  +    /** Initial EntityResolver */
  +    private final EntityResolver fInitEntityResolver;
  +    
       DocumentBuilderImpl(DocumentBuilderFactoryImpl dbf, Hashtable dbfAttrs)
           throws SAXNotRecognizedException, SAXNotSupportedException {
           this(dbf, dbfAttrs, false);
  @@ -99,7 +104,11 @@
           // validation errors with a warning telling the user to set an
           // ErrorHandler
           if (dbf.isValidating()) {
  -            setErrorHandler(new DefaultValidationErrorHandler());
  +            fInitErrorHandler = new DefaultValidationErrorHandler();
  +            setErrorHandler(fInitErrorHandler);
  +        }
  +        else {
  +            fInitErrorHandler = domParser.getErrorHandler();
           }
   
           domParser.setFeature(VALIDATION_FEATURE, dbf.isValidating());
  @@ -132,6 +141,9 @@
           this.grammar = dbf.getSchema();
   
           setDocumentBuilderFactoryAttributes(dbfAttrs);
  +        
  +        // Initial EntityResolver
  +        fInitEntityResolver = domParser.getEntityResolver();
       }
   
       /**
  @@ -254,8 +266,16 @@
           return grammar;
       }
       
  -    // TODO: Add in implementation.
  -    public void reset() {}
  +    public void reset() {
  +        /** Restore the initial error handler. **/
  +        if (domParser.getErrorHandler() != fInitErrorHandler) {
  +            domParser.setErrorHandler(fInitErrorHandler);
  +        }
  +        /** Restore the initial entity resolver. **/
  +        if (domParser.getEntityResolver() != fInitEntityResolver) {
  +            domParser.setEntityResolver(fInitEntityResolver);
  +        }
  +    }
   
       // package private
       DOMParser getDOMParser() {
  
  
  

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