/* * 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 477010 2006-11-20 02:54:38Z mrglavas $ */ 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> * * @author Philippe Le Hegaret * @version $Revision: 477010 $ */ public class CSSParseException extends CSSException { /** * */ private static final long serialVersionUID = 1L; /** The uri. */ private String uri; /** The line number. */ private int lineNumber; /** The column number. */ 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; } }