/* * Copyright (c) 1999 World Wide Web Consortium * (Massachusetts Institute of Technology, Institut National de Recherche * en Informatique et en Automatique, Keio University). * All Rights Reserved. http://www.w3.org/Consortium/Legal/ * * The original version of this interface comes from SAX : * http://www.megginson.com/SAX/ * * $Id: CSSParseException.java,v 1.1 2009/12/06 10:40:08 rsternber Exp $ */ package org.w3c.css.sac; /** * Encapsulate a CSS parse error or warning. * * <p>This exception will include information for locating the error * in the original CSS document. Note that although the application * will receive a CSSParseException as the argument to the handlers * in the ErrorHandler interface, the application is not actually * required to throw the exception; instead, it can simply read the * information in it and take a different action.</p> * * <p>Since this exception is a subclass of CSSException, it * inherits the ability to wrap another exception.</p> * * @version $Revision: 1.1 $ * @author Philippe Le Hegaret */ public class CSSParseException extends CSSException { private String uri; private int lineNumber; private int columnNumber; /** * Create a new CSSParseException from a message and a Locator. * * <p>This constructor is especially useful when an application is * creating its own exception from within a DocumentHandler * callback.</p> * * @param message The error or warning message. * @param locator The locator object for the error or warning. * @see Locator * @see Parser#setLocale */ public CSSParseException(String message, Locator locator) { super(message); this.code = SAC_SYNTAX_ERR; this.uri = locator.getURI(); this.lineNumber = locator.getLineNumber(); this.columnNumber = locator.getColumnNumber(); } /** * Wrap an existing exception in a CSSParseException. * * <p>This constructor is especially useful when an application is * creating its own exception from within a DocumentHandler * callback, and needs to wrap an existing exception that is not a * subclass of CSSException.</p> * * @param message The error or warning message, or null to * use the message from the embedded exception. * @param locator The locator object for the error or warning. * @param e Any exception * @see Locator * @see Parser#setLocale */ public CSSParseException(String message, Locator locator, Exception e) { super(SAC_SYNTAX_ERR, message, e); this.uri = locator.getURI(); this.lineNumber = locator.getLineNumber(); this.columnNumber = locator.getColumnNumber(); } /** * Create a new CSSParseException. * * <p>This constructor is most useful for parser writers.</p> * * <p>the parser must resolve the URI fully before creating the exception.</p> * * @param message The error or warning message. * @param uri The URI of the document that generated the error or warning. * @param lineNumber The line number of the end of the text that * caused the error or warning. * @param columnNumber The column number of the end of the text that * cause the error or warning. * @see Parser#setLocale */ public CSSParseException(String message, String uri, int lineNumber, int columnNumber) { super(message); this.code = SAC_SYNTAX_ERR; this.uri = uri; this.lineNumber = lineNumber; this.columnNumber = columnNumber; } /** * Create a new CSSParseException with an embedded exception. * * <p>This constructor is most useful for parser writers who * need to wrap an exception that is not a subclass of * CSSException.</p> * * <p>The parser must resolve the URI fully before creating the * exception.</p> * * @param message The error or warning message, or null to use * the message from the embedded exception. * @param uri The URI of the document that generated * the error or warning. * @param lineNumber The line number of the end of the text that * caused the error or warning. * @param columnNumber The column number of the end of the text that * cause the error or warning. * @param e Another exception to embed in this one. * @see Parser#setLocale */ public CSSParseException(String message, String uri, int lineNumber, int columnNumber, Exception e) { super(SAC_SYNTAX_ERR, message, e); this.uri = uri; this.lineNumber = lineNumber; this.columnNumber = columnNumber; } /** * Get the URI of the document where the exception occurred. * * <p>The URI will be resolved fully.</p> * * @return A string containing the URI, or null * if none is available. * @see Locator#getURI */ public String getURI() { return this.uri; } /** * The line number of the end of the text where the exception occurred. * * @return An integer representing the line number, or -1 * if none is available. * @see Locator#getLineNumber */ public int getLineNumber() { return this.lineNumber; } /** * The column number of the end of the text where the exception occurred. * * <p>The first column in a line is position 1.</p> * * @return An integer representing the column number, or -1 * if none is available. * @see Locator#getColumnNumber */ public int getColumnNumber() { return this.columnNumber; } }