001 package com.thaiopensource.xml.sax;
002
003 import org.xml.sax.ErrorHandler;
004 import org.xml.sax.SAXParseException;
005 import org.xml.sax.SAXException;
006
007 public class CountingErrorHandler implements ErrorHandler {
008 private ErrorHandler errorHandler;
009 private int fatalErrorCount = 0;
010 private int errorCount = 0;
011 private int warningCount = 0;
012 private boolean hadErrorOrFatalError = false;
013
014 public CountingErrorHandler() {
015 this(null);
016 }
017
018 public CountingErrorHandler(ErrorHandler errorHandler) {
019 this.errorHandler = errorHandler;
020 }
021
022 public void reset() {
023 fatalErrorCount = 0;
024 errorCount = 0;
025 warningCount = 0;
026 hadErrorOrFatalError = false;
027 }
028
029 public boolean getHadErrorOrFatalError() {
030 return hadErrorOrFatalError;
031 }
032
033 public int getFatalErrorCount() {
034 return fatalErrorCount;
035 }
036
037 public int getErrorCount() {
038 return errorCount;
039 }
040
041 public int getWarningCount() {
042 return warningCount;
043 }
044
045 public ErrorHandler getErrorHandler() {
046 return errorHandler;
047 }
048
049 public void setErrorHandler(ErrorHandler errorHandler) {
050 this.errorHandler = errorHandler;
051 }
052
053 public void warning(SAXParseException exception)
054 throws SAXException {
055 warningCount++;
056 if (errorHandler != null)
057 errorHandler.warning(exception);
058 }
059
060 public void error(SAXParseException exception)
061 throws SAXException {
062 errorCount++;
063 hadErrorOrFatalError = true;
064 if (errorHandler != null)
065 errorHandler.error(exception);
066 }
067
068 public void fatalError(SAXParseException exception)
069 throws SAXException {
070 fatalErrorCount++;
071 hadErrorOrFatalError = true;
072 if (errorHandler != null)
073 errorHandler.fatalError(exception);
074 }
075 }