001 // 002 // This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, v1.0.1-05/30/2003 05:06 AM(java_re)-fcs 003 // See <a href="http://java.sun.com/xml/jaxb">http://java.sun.com/xml/jaxb</a> 004 // Any modifications to this file will be lost upon recompilation of the source schema. 005 // Generated on: 2004.10.11 at 12:13:34 EDT 006 // 007 008 /* 009 * Copyright 2003 Sun Microsystems, Inc. All rights reserved. 010 * SUN PROPRIETARY/CONFIDENTIAL. Use is subject to license terms. 011 */ 012 013 /* 014 * @(#)$Id: ErrorHandlerAdaptor.java,v 1.2.4.1 2003/05/28 20:17:16 kk122374 Exp $ 015 */ 016 package astronomy.data.spectra.impl.runtime; 017 018 import javax.xml.bind.ValidationEvent; 019 import javax.xml.bind.ValidationEventLocator; 020 import javax.xml.bind.helpers.ValidationEventImpl; 021 022 import org.xml.sax.ErrorHandler; 023 import org.xml.sax.SAXException; 024 import org.xml.sax.SAXParseException; 025 026 import com.sun.xml.bind.validator.Locator; 027 028 /** 029 * Receives errors through {@link ErrorHandler} and reports to the 030 * {@link SAXUnmarshallerHandler}. 031 * 032 * @author 033 * Kohsuke Kawaguchi (kohsuke.kawaguchi@sun.com) 034 */ 035 public class ErrorHandlerAdaptor implements ErrorHandler { 036 037 /** the client event handler that will receive the validation events */ 038 private final SAXUnmarshallerHandler host; 039 040 /** the locator object responsible for filling in the validation event 041 * location info **/ 042 private final Locator locator; 043 044 public ErrorHandlerAdaptor( 045 SAXUnmarshallerHandler _host, Locator locator ) { 046 this.host = _host; 047 this.locator = locator; 048 } 049 050 public void error(SAXParseException exception) 051 throws SAXException { 052 053 propagateEvent( ValidationEvent.ERROR, exception ); 054 } 055 056 public void warning(SAXParseException exception) 057 throws SAXException { 058 059 propagateEvent( ValidationEvent.WARNING, exception ); 060 } 061 062 public void fatalError(SAXParseException exception) 063 throws SAXException { 064 065 propagateEvent( ValidationEvent.FATAL_ERROR, exception ); 066 } 067 068 private void propagateEvent( int severity, SAXParseException saxException ) 069 throws SAXException { 070 071 // get location info: 072 // sax locators simply use the location info embedded in the 073 // sax exception, dom locators keep a reference to their DOMScanner 074 // and call back to figure out where the error occurred. 075 ValidationEventLocator vel = 076 locator.getLocation( saxException ); 077 078 ValidationEventImpl ve = 079 new ValidationEventImpl( severity, saxException.getMessage(), vel ); 080 081 Exception e = saxException.getException(); 082 if( e != null ) { 083 ve.setLinkedException( e ); 084 } else { 085 ve.setLinkedException( saxException ); 086 } 087 088 // call the client's event handler. 089 host.handleEvent( ve, severity!=ValidationEvent.FATAL_ERROR ); 090 } 091 }