org.jvnet.jaxbcommons.runtime.ErrorHandlerAdaptor Maven / Gradle / Ivy
//
// This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, v1.0.6-01/24/2006 06:15 PM(kohsuke)-fcs
// See http://java.sun.com/xml/jaxb
// Any modifications to this file will be lost upon recompilation of the source schema.
// Generated on: 2006.07.10 at 02:12:40 PM CEST
//
package org.jvnet.jaxbcommons.runtime;
import javax.xml.bind.ValidationEvent;
import javax.xml.bind.ValidationEventLocator;
import javax.xml.bind.helpers.ValidationEventImpl;
import org.xml.sax.ErrorHandler;
import org.xml.sax.SAXException;
import org.xml.sax.SAXParseException;
import com.sun.xml.bind.validator.Locator;
/**
* Receives errors through {@link ErrorHandler} and reports to the
* {@link SAXUnmarshallerHandler}.
*
* @author
* Kohsuke Kawaguchi ([email protected])
*/
public class ErrorHandlerAdaptor implements ErrorHandler {
/** the client event handler that will receive the validation events */
private final SAXUnmarshallerHandler host;
/** the locator object responsible for filling in the validation event
* location info **/
private final Locator locator;
public ErrorHandlerAdaptor(
SAXUnmarshallerHandler _host, Locator locator ) {
this.host = _host;
this.locator = locator;
}
public void error(SAXParseException exception)
throws SAXException {
propagateEvent( ValidationEvent.ERROR, exception );
}
public void warning(SAXParseException exception)
throws SAXException {
propagateEvent( ValidationEvent.WARNING, exception );
}
public void fatalError(SAXParseException exception)
throws SAXException {
propagateEvent( ValidationEvent.FATAL_ERROR, exception );
}
private void propagateEvent( int severity, SAXParseException saxException )
throws SAXException {
// get location info:
// sax locators simply use the location info embedded in the
// sax exception, dom locators keep a reference to their DOMScanner
// and call back to figure out where the error occurred.
ValidationEventLocator vel =
locator.getLocation( saxException );
ValidationEventImpl ve =
new ValidationEventImpl( severity, saxException.getMessage(), vel );
Exception e = saxException.getException();
if( e != null ) {
ve.setLinkedException( e );
} else {
ve.setLinkedException( saxException );
}
// call the client's event handler.
host.handleEvent( ve, severity!=ValidationEvent.FATAL_ERROR );
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy