001: /*
002: * This file or a portion of this file is licensed under the terms of
003: * the Globus Toolkit Public License, found in file GTPL, or at
004: * http://www.globus.org/toolkit/download/license.html. This notice must
005: * appear in redistributions of this file, with or without modification.
006: *
007: * Redistributions of this Software, with or without modification, must
008: * reproduce the GTPL in: (1) the Software, or (2) the Documentation or
009: * some other similar material which is provided with the Software (if
010: * any).
011: *
012: * Copyright 1999-2004 University of Chicago and The University of
013: * Southern California. All rights reserved.
014: */
015:
016: package org.griphyn.vdl.parser;
017:
018: import org.griphyn.vdl.classes.*;
019: import org.griphyn.vdl.util.Logging;
020: import org.xml.sax.*;
021:
022: /**
023: * This class is the error handler for the parser. It defines how to
024: * handle three different kinds of parsing exceptions: warning, error,
025: * and fatal error. Here we simply print the error message and the location
026: * where the error happend.
027: *
028: * @author Jens-S. Vöckler
029: * @author Yong Zhao
030: * @version $Revision: 50 $
031: */
032:
033: public class VDLErrorHandler implements ErrorHandler {
034: /**
035: * Receive notification of a warning.<p>
036: *
037: * SAX parsers will use this method to report conditions that are not
038: * errors or fatal errors as defined by the XML 1.0 recommendation.
039: * The default behaviour is to take no action.<p>
040: *
041: * The SAX parser must continue to provide normal parsing events after
042: * invoking this method: it should still be possible for the
043: * application to process the document through to the end.
044: *
045: * @param e is a warning generated by the SAX parser.
046: * @see org.xml.sax.ErrorHandler#warning( org.xml.sax.SAXParseException )
047: */
048: public void warning(SAXParseException e) throws SAXException {
049: Logging.instance().log(
050: "app",
051: 1,
052: "*** parser warning *** " + " Line: "
053: + e.getLineNumber() + "\n" + "[" + e + "]\n");
054: //throw new SAXException("Warning occurred");
055: }
056:
057: /**
058: * Receive notification of a recoverable error.<p>
059: *
060: * This corresponds to the definition of "error" in section 1.2 of the
061: * W3C XML 1.0 Recommendation. For example, a validating parser would
062: * use this callback to report the violation of a validity constraint.
063: * The default behaviour is to take no action.<p>
064: *
065: * The SAX parser must continue to provide normal parsing events after
066: * invoking this method: it should still be possible for the
067: * application to process the document through to the end. If the
068: * application cannot do so, then the parser should report a fatal
069: * error even if the XML 1.0 recommendation does not require it to do
070: * so.
071: *
072: * @param e is an error generated by the SAX parser.
073: * @see org.xml.sax.ErrorHandler#error( org.xml.sax.SAXParseException )
074: */
075: public void error(SAXParseException e) throws SAXException {
076: Logging.instance().log(
077: "app",
078: 0,
079: "*** parser error *** " + " Line: " + e.getLineNumber()
080: + "\n" + "[" + e + "]\n");
081: //throw new SAXException("Error occurred");
082: }
083:
084: /**
085: * Receive notification of a non-recoverable error.<p>
086: *
087: * This corresponds to the definition of "fatal error" in section 1.2
088: * of the W3C XML 1.0 Recommendation. For example, a parser would use
089: * this callback to report the violation of a well-formedness
090: * constraint.<p>
091: *
092: * The application must assume that the document is unusable after the
093: * parser has invoked this method, and should continue (if at all)
094: * only for the sake of collecting addition error messages: in fact,
095: * SAX parsers are free to stop reporting any other events once this
096: * method has been invoked.
097: *
098: * @param e is a fatal error generated by the SAX parser.
099: * @see org.xml.sax.ErrorHandler#fatalError( org.xml.sax.SAXParseException )
100: */
101: public void fatalError(SAXParseException e) throws SAXException {
102: Logging.instance().log(
103: "default",
104: 0,
105: "!!! fatal error !!! " + " Line: " + e.getLineNumber()
106: + "\n" + "[" + e + "]\n");
107: //throw new SAXException("Fatal Error occurred");
108: }
109: };
|