001    package com.thaiopensource.validate.xerces;
002    
003    import org.apache.xerces.util.ErrorHandlerWrapper;
004    import org.apache.xerces.xni.parser.XMLParseException;
005    import org.apache.xerces.xni.XNIException;
006    import org.xml.sax.ErrorHandler;
007    
008    class SAXXMLErrorHandler extends ErrorHandlerWrapper {
009      private boolean hadError = false;
010    
011      SAXXMLErrorHandler(ErrorHandler errorHandler) {
012        super(errorHandler);
013      }
014    
015      void reset() {
016        hadError = false;
017      }
018    
019      public void error(String domain, String key,
020                        XMLParseException exception) throws XNIException {
021        hadError = true;
022        if (fErrorHandler == null)
023          return;
024        super.error(domain, key, exception);
025      }
026    
027      public void warning(String domain, String key,
028                          XMLParseException exception) throws XNIException {
029        if (fErrorHandler == null)
030          return;
031        super.warning(domain, key, exception);
032      }
033    
034      public void fatalError(String domain, String key,
035                             XMLParseException exception) throws XNIException {
036        hadError = true;
037        if (fErrorHandler == null)
038          return;
039        super.fatalError(domain, key, exception);
040      }
041    
042      boolean getHadError() {
043        return hadError;
044      }
045    }