1 package com.sun.tools.xjc.runtime; 2 3 import javax.xml.bind.ValidationEvent; 4 import javax.xml.bind.ValidationEventLocator; 5 import javax.xml.bind.helpers.ValidationEventImpl; 6 7 import org.xml.sax.ErrorHandler ; 8 import org.xml.sax.SAXException ; 9 import org.xml.sax.SAXParseException ; 10 11 import com.sun.xml.bind.validator.Locator; 12 13 20 public class ErrorHandlerAdaptor implements ErrorHandler { 21 22 23 private final SAXUnmarshallerHandler host; 24 25 27 private final Locator locator; 28 29 public ErrorHandlerAdaptor( 30 SAXUnmarshallerHandler _host, Locator locator ) { 31 this.host = _host; 32 this.locator = locator; 33 } 34 35 public void error(SAXParseException exception) 36 throws SAXException { 37 38 propagateEvent( ValidationEvent.ERROR, exception ); 39 } 40 41 public void warning(SAXParseException exception) 42 throws SAXException { 43 44 propagateEvent( ValidationEvent.WARNING, exception ); 45 } 46 47 public void fatalError(SAXParseException exception) 48 throws SAXException { 49 50 propagateEvent( ValidationEvent.FATAL_ERROR, exception ); 51 } 52 53 private void propagateEvent( int severity, SAXParseException saxException ) 54 throws SAXException { 55 56 ValidationEventLocator vel = 61 locator.getLocation( saxException ); 62 63 ValidationEventImpl ve = 64 new ValidationEventImpl( severity, saxException.getMessage(), vel ); 65 66 Exception e = saxException.getException(); 67 if( e != null ) { 68 ve.setLinkedException( e ); 69 } else { 70 ve.setLinkedException( saxException ); 71 } 72 73 host.handleEvent( ve, severity!=ValidationEvent.FATAL_ERROR ); 75 } 76 } 77 | Popular Tags |