FileDocCategorySizeDatePackage
ErrorHandlerProxy.javaAPI DocApache Xerces 3.0.13117Fri Sep 14 20:33:54 BST 2007org.apache.xerces.util

ErrorHandlerProxy

public abstract class ErrorHandlerProxy extends Object implements ErrorHandler
Wraps {@link XMLErrorHandler} and make it look like a SAX {@link ErrorHandler}.

The derived class should override the {@link #getErrorHandler()} method so that it will return the correct {@link XMLErrorHandler} instance. This method will be called whenever an error/warning is found.

Experience shows that it is better to store the actual {@link XMLErrorHandler} in one place and looks up that variable, rather than copying it into every component that needs an error handler and update all of them whenever it is changed, IMO.

author
Kohsuke Kawaguchi (kohsuke.kawaguchi@sun.com)
version
$Id: ErrorHandlerProxy.java 447241 2006-09-18 05:12:57Z mrglavas $

Fields Summary
Constructors Summary
Methods Summary
public voiderror(org.xml.sax.SAXParseException e)

        XMLErrorHandler eh = getErrorHandler();
        if (eh instanceof ErrorHandlerWrapper) {
            ((ErrorHandlerWrapper)eh).fErrorHandler.error(e);
        }
        else {
            eh.error("","",ErrorHandlerWrapper.createXMLParseException(e));
        }
        // if an XNIException is thrown, just let it go.
        // REVISIT: is this OK? or should we try to wrap it into SAXException?
    
public voidfatalError(org.xml.sax.SAXParseException e)

        XMLErrorHandler eh = getErrorHandler();
        if (eh instanceof ErrorHandlerWrapper) {
            ((ErrorHandlerWrapper)eh).fErrorHandler.fatalError(e);
        }
        else {
            eh.fatalError("","",ErrorHandlerWrapper.createXMLParseException(e));
        }
    
protected abstract org.apache.xerces.xni.parser.XMLErrorHandlergetErrorHandler()

public voidwarning(org.xml.sax.SAXParseException e)

        XMLErrorHandler eh = getErrorHandler();
        if (eh instanceof ErrorHandlerWrapper) {
            ((ErrorHandlerWrapper)eh).fErrorHandler.warning(e);
        }
        else {
            eh.warning("","",ErrorHandlerWrapper.createXMLParseException(e));
        }