001: /*
002: * Copyright (c) 1999 World Wide Web Consortium
003: * (Massachusetts Institute of Technology, Institut National de Recherche
004: * en Informatique et en Automatique, Keio University).
005: * All Rights Reserved. http://www.w3.org/Consortium/Legal/
006: *
007: * The original version of this interface comes from SAX :
008: * http://www.megginson.com/SAX/
009: *
010: * $Id$
011: */
012: package org.w3c.css.sac;
013:
014: /**
015: * Basic interface for CSS error handlers.
016: *
017: * <p>If a CSS application needs to implement customized error
018: * handling, it must implement this interface and then register an
019: * instance with the CSS parser using the parser's setErrorHandler
020: * method. The parser will then report all errors and warnings
021: * through this interface.</p>
022: *
023: * <p> The parser shall use this interface instead of throwing an
024: * exception: it is up to the application whether to throw an
025: * exception for different types of errors and warnings. Note,
026: * however, that there is no requirement that the parser continue to
027: * provide useful information after a call to fatalError (in other
028: * words, a CSS driver class could catch an exception and report a
029: * fatalError).</p>
030: *
031: * <p>The HandlerBase class provides a default implementation of this
032: * interface, ignoring warnings and recoverable errors and throwing a
033: * SAXParseException for fatal errors. An application may extend
034: * that class rather than implementing the complete interface
035: * itself.</p>
036: *
037: * @version $Revision$
038: * @author Philippe Le Hegaret
039: */
040: public interface ErrorHandler {
041:
042: /**
043: * Receive notification of a warning.
044: *
045: * <p>CSS parsers will use this method to report conditions that
046: * are not errors or fatal errors as defined by the XML 1.0
047: * recommendation. The default behaviour is to take no action.</p>
048: *
049: * <p>The CSS parser must continue to provide normal parsing events
050: * after invoking this method: it should still be possible for the
051: * application to process the document through to the end.</p>
052: *
053: * @param exception The warning information encapsulated in a
054: * CSS parse exception.
055: * @exception CSSException Any CSS exception, possibly
056: * wrapping another exception.
057: * @see CSSParseException
058: */
059: public void warning(CSSParseException exception)
060: throws CSSException;
061:
062: /**
063: * Receive notification of a recoverable error.
064: *
065: * <p>This corresponds to the definition of "error" in section 1.2
066: * of the W3C XML 1.0 Recommendation. For example, a validating
067: * parser would use this callback to report the violation of a
068: * validity constraint. The default behaviour is to take no
069: * action.</p>
070: *
071: * <p>The CSS parser must continue to provide normal parsing events
072: * after invoking this method: it should still be possible for the
073: * application to process the document through to the end. If the
074: * application cannot do so, then the parser should report a fatal
075: * error even if the XML 1.0 recommendation does not require it to
076: * do so.</p>
077: *
078: * @param exception The error information encapsulated in a
079: * CSS parse exception.
080: * @exception CSSException Any CSS exception, possibly
081: * wrapping another exception.
082: * @see CSSParseException
083: */
084: public void error(CSSParseException exception) throws CSSException;
085:
086: /**
087: * Receive notification of a non-recoverable error.
088: *
089: * <p>This corresponds to the definition of "fatal error" in
090: * section 1.2 of the W3C XML 1.0 Recommendation. For example, a
091: * parser would use this callback to report the violation of a
092: * well-formedness constraint.</p>
093: *
094: * <p>The application must assume that the document is unusable
095: * after the parser has invoked this method, and should continue
096: * (if at all) only for the sake of collecting addition error
097: * messages: in fact, CSS parsers are free to stop reporting any
098: * other events once this method has been invoked.</p>
099: *
100: * @param exception The error information encapsulated in a
101: * CSS parse exception.
102: * @exception CSSException Any CSS exception, possibly
103: * wrapping another exception.
104: * @see CSSParseException
105: */
106: public void fatalError(CSSParseException exception)
107: throws CSSException;
108:
109: }
|