| // SAX exception class. | |
| // No warranty; no copyright -- use this as you will. | |
| // $Id: SAXParseException.java,v 1.1 2000/10/02 02:43:17 sboag Exp $ | |
| package org.xml.sax; | |
| /** | |
| * Encapsulate an XML parse error or warning. | |
| * | |
| * <blockquote> | |
| * <em>This module, both source code and documentation, is in the | |
| * Public Domain, and comes with <strong>NO WARRANTY</strong>.</em> | |
| * </blockquote> | |
| * | |
| * <p>This exception will include information for locating the error | |
| * in the original XML document. Note that although the application | |
| * will receive a SAXParseException as the argument to the handlers | |
| * in the {@link org.xml.sax.ErrorHandler 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 {@link org.xml.sax.SAXException | |
| * SAXException}, it inherits the ability to wrap another exception.</p> | |
| * | |
| * @since SAX 1.0 | |
| * @author David Megginson, | |
| * <a href="mailto:sax@megginson.com">sax@megginson.com</a> | |
| * @version 2.0 | |
| * @see org.xml.sax.SAXException | |
| * @see org.xml.sax.Locator | |
| * @see org.xml.sax.ErrorHandler | |
| */ | |
| public class SAXParseException extends SAXException { | |
| ////////////////////////////////////////////////////////////////////// | |
| // Constructors. | |
| ////////////////////////////////////////////////////////////////////// | |
| /** | |
| * Create a new SAXParseException from a message and a Locator. | |
| * | |
| * <p>This constructor is especially useful when an application is | |
| * creating its own exception from within a {@link org.xml.sax.ContentHandler | |
| * ContentHandler} callback.</p> | |
| * | |
| * @param message The error or warning message. | |
| * @param locator The locator object for the error or warning (may be | |
| * null). | |
| * @see org.xml.sax.Locator | |
| * @see org.xml.sax.Parser#setLocale | |
| */ | |
| public SAXParseException (String message, Locator locator) { | |
| super(message); | |
| if (locator != null) { | |
| init(locator.getPublicId(), locator.getSystemId(), | |
| locator.getLineNumber(), locator.getColumnNumber()); | |
| } else { | |
| init(null, null, -1, -1); | |
| } | |
| } | |
| /** | |
| * Wrap an existing exception in a SAXParseException. | |
| * | |
| * <p>This constructor is especially useful when an application is | |
| * creating its own exception from within a {@link org.xml.sax.ContentHandler | |
| * ContentHandler} callback, and needs to wrap an existing exception that is not a | |
| * subclass of {@link org.xml.sax.SAXException SAXException}.</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 (may be | |
| * null). | |
| * @param e Any exception. | |
| * @see org.xml.sax.Locator | |
| * @see org.xml.sax.Parser#setLocale | |
| */ | |
| public SAXParseException (String message, Locator locator, | |
| Exception e) { | |
| super(message, e); | |
| if (locator != null) { | |
| init(locator.getPublicId(), locator.getSystemId(), | |
| locator.getLineNumber(), locator.getColumnNumber()); | |
| } else { | |
| init(null, null, -1, -1); | |
| } | |
| } | |
| /** | |
| * Create a new SAXParseException. | |
| * | |
| * <p>This constructor is most useful for parser writers.</p> | |
| * | |
| * <p>If the system identifier is a URL, the parser must resolve it | |
| * fully before creating the exception.</p> | |
| * | |
| * @param message The error or warning message. | |
| * @param publicId The public identifier of the entity that generated | |
| * the error or warning. | |
| * @param systemId The system identifier of the entity 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 org.xml.sax.Parser#setLocale | |
| */ | |
| public SAXParseException (String message, String publicId, String systemId, | |
| int lineNumber, int columnNumber) | |
| { | |
| super(message); | |
| init(publicId, systemId, lineNumber, columnNumber); | |
| } | |
| /** | |
| * Create a new SAXParseException 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 | |
| * {@link org.xml.sax.SAXException SAXException}.</p> | |
| * | |
| * <p>If the system identifier is a URL, the parser must resolve it | |
| * fully before creating the exception.</p> | |
| * | |
| * @param message The error or warning message, or null to use | |
| * the message from the embedded exception. | |
| * @param publicId The public identifier of the entity that generated | |
| * the error or warning. | |
| * @param systemId The system identifier of the entity 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 org.xml.sax.Parser#setLocale | |
| */ | |
| public SAXParseException (String message, String publicId, String systemId, | |
| int lineNumber, int columnNumber, Exception e) | |
| { | |
| super(message, e); | |
| init(publicId, systemId, lineNumber, columnNumber); | |
| } | |
| /** | |
| * Internal initialization method. | |
| * | |
| * @param publicId The public identifier of the entity which generated the exception, | |
| * or null. | |
| * @param systemId The system identifier of the entity which generated the exception, | |
| * or null. | |
| * @param lineNumber The line number of the error, or -1. | |
| * @param columnNumber The column number of the error, or -1. | |
| */ | |
| private void init (String publicId, String systemId, | |
| int lineNumber, int columnNumber) | |
| { | |
| this.publicId = publicId; | |
| this.systemId = systemId; | |
| this.lineNumber = lineNumber; | |
| this.columnNumber = columnNumber; | |
| } | |
| /** | |
| * Get the public identifier of the entity where the exception occurred. | |
| * | |
| * @return A string containing the public identifier, or null | |
| * if none is available. | |
| * @see org.xml.sax.Locator#getPublicId | |
| */ | |
| public String getPublicId () | |
| { | |
| return this.publicId; | |
| } | |
| /** | |
| * Get the system identifier of the entity where the exception occurred. | |
| * | |
| * <p>If the system identifier is a URL, it will be resolved | |
| * fully.</p> | |
| * | |
| * @return A string containing the system identifier, or null | |
| * if none is available. | |
| * @see org.xml.sax.Locator#getSystemId | |
| */ | |
| public String getSystemId () | |
| { | |
| return this.systemId; | |
| } | |
| /** | |
| * 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 org.xml.sax.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 org.xml.sax.Locator#getColumnNumber | |
| */ | |
| public int getColumnNumber () | |
| { | |
| return this.columnNumber; | |
| } | |
| ////////////////////////////////////////////////////////////////////// | |
| // Internal state. | |
| ////////////////////////////////////////////////////////////////////// | |
| /** | |
| * @serial The public identifier, or null. | |
| * @see #getPublicId | |
| */ | |
| private String publicId; | |
| /** | |
| * @serial The system identifier, or null. | |
| * @see #getSystemId | |
| */ | |
| private String systemId; | |
| /** | |
| * @serial The line number, or -1. | |
| * @see #getLineNumber | |
| */ | |
| private int lineNumber; | |
| /** | |
| * @serial The column number, or -1. | |
| * @see #getColumnNumber | |
| */ | |
| private int columnNumber; | |
| } | |
| // end of SAXParseException.java |