elena       2002/08/11 13:29:19

  Modified:    java/src/org/apache/xerces/parsers DOMBuilderImpl.java
  Log:
  canSetFeature now accepts Xerces features.
  If exception occurs during parsing, we now report it via DOMErrorHandler.
  
  Revision  Changes    Path
  1.19      +35 -17    
xml-xerces/java/src/org/apache/xerces/parsers/DOMBuilderImpl.java
  
  Index: DOMBuilderImpl.java
  ===================================================================
  RCS file: 
/home/cvs/xml-xerces/java/src/org/apache/xerces/parsers/DOMBuilderImpl.java,v
  retrieving revision 1.18
  retrieving revision 1.19
  diff -u -r1.18 -r1.19
  --- DOMBuilderImpl.java       9 Aug 2002 15:18:19 -0000       1.18
  +++ DOMBuilderImpl.java       11 Aug 2002 20:29:19 -0000      1.19
  @@ -76,7 +76,7 @@
   import org.w3c.dom.ls.DOMBuilderFilter;
   import org.w3c.dom.ls.DOMInputSource;
   
  -
  +import org.apache.xerces.dom.DOMErrorImpl;
   import org.apache.xerces.impl.Constants;
   import org.apache.xerces.util.DOMEntityResolverWrapper;
   import org.apache.xerces.util.SymbolTable;
  @@ -141,6 +141,8 @@
       protected String fSchemaType = XML_SCHEMA_VALIDATION;
   
       protected final static boolean DEBUG = false;
  +
  +    protected DOMErrorHandlerWrapper fErrorHandler = null;
       //
       // Constructors
       //
  @@ -293,18 +295,10 @@
        * result in implementation dependent behavour. 
        */
       public DOMErrorHandler getErrorHandler() {
  -        DOMErrorHandler errorHandler = null;
  -        try {
  -            DOMErrorHandler domErrorHandler = 
  -            (DOMErrorHandler)fConfiguration.getProperty(ERROR_HANDLER);
  -            if (domErrorHandler != null && 
  -                domErrorHandler instanceof DOMErrorHandlerWrapper) {
  -                errorHandler = 
((DOMErrorHandlerWrapper)domErrorHandler).getErrorHandler();
  -            }
  -        } catch (XMLConfigurationException e) {
  -
  +        if (fErrorHandler != null) {
  +            return fErrorHandler.getErrorHandler();
           }
  -        return errorHandler;
  +        return null;
       }
   
       /**
  @@ -320,8 +314,9 @@
        */
       public void setErrorHandler(DOMErrorHandler errorHandler) {
           try {
  +            fErrorHandler = new DOMErrorHandlerWrapper(errorHandler);
               fConfiguration.setProperty(ERROR_HANDLER, 
  -                                       new DOMErrorHandlerWrapper(errorHandler));
  +                                       fErrorHandler);
           } catch (XMLConfigurationException e) {
   
           }
  @@ -445,7 +440,16 @@
                      name.equals(Constants.DOM_WHITESPACE_IN_ELEMENT_CONTENT)) {
               return true;
           }
  -        return false;        
  +
  +            
  +        // Recognize Xerces features.
  +        try {
  +            fConfiguration.getFeature(name);
  +            return true;
  +        } catch (XMLConfigurationException e){
  +            return false;
  +        }
  +                
       }
   
       /**
  @@ -501,7 +505,14 @@
           try {        
               parse(source);
           } catch (Exception e){
  -            // REVISIT: report exception via the error handler
  +            if (fErrorHandler != null) {
  +                DOMErrorImpl error = new DOMErrorImpl();
  +                error.fException = e;
  +                error.fMessage = e.getMessage();
  +                error.fSeverity = error.SEVERITY_ERROR;
  +                fErrorHandler.getErrorHandler().handleError(error);
  +
  +            }
               if (DEBUG) {            
                  e.printStackTrace();
               }
  @@ -525,7 +536,14 @@
           try {        
               parse(xmlInputSource);
           } catch (Exception e) {
  -            // REVISIT: report exception via the error handler
  +            if (fErrorHandler != null) {
  +                DOMErrorImpl error = new DOMErrorImpl();
  +                error.fException = e;
  +                error.fMessage = e.getMessage();
  +                error.fSeverity = error.SEVERITY_ERROR;
  +                fErrorHandler.getErrorHandler().handleError(error);
  +
  +            }
               if (DEBUG) {            
                  e.printStackTrace();
               }
  
  
  

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to