Save This Page
Home » xml-commons-external-1.4.01-src » org.xml » sax » [javadoc | source]
    1   // SAX exception class.
    2   // http://www.saxproject.org
    3   // No warranty; no copyright -- use this as you will.
    4   // $Id: SAXParseException.java 226184 2005-04-08 10:53:24Z neeraj $
    5   
    6   package org.xml.sax;
    7   
    8   /**
    9    * Encapsulate an XML parse error or warning.
   10    *
   11    * <blockquote>
   12    * <em>This module, both source code and documentation, is in the
   13    * Public Domain, and comes with <strong>NO WARRANTY</strong>.</em>
   14    * See <a href='http://www.saxproject.org'>http://www.saxproject.org</a>
   15    * for further information.
   16    * </blockquote>
   17    *
   18    * <p>This exception may include information for locating the error
   19    * in the original XML document, as if it came from a {@link Locator}
   20    * object.  Note that although the application
   21    * will receive a SAXParseException as the argument to the handlers
   22    * in the {@link org.xml.sax.ErrorHandler ErrorHandler} interface, 
   23    * the application is not actually required to throw the exception; 
   24    * instead, it can simply read the information in it and take a 
   25    * different action.</p>
   26    *
   27    * <p>Since this exception is a subclass of {@link org.xml.sax.SAXException 
   28    * SAXException}, it inherits the ability to wrap another exception.</p>
   29    *
   30    * @since SAX 1.0
   31    * @author David Megginson
   32    * @version 2.0.1 (sax2r2)
   33    * @see org.xml.sax.SAXException
   34    * @see org.xml.sax.Locator
   35    * @see org.xml.sax.ErrorHandler
   36    */
   37   public class SAXParseException extends SAXException {
   38       
   39       
   40       //////////////////////////////////////////////////////////////////////
   41       // Constructors.
   42       //////////////////////////////////////////////////////////////////////
   43   
   44   
   45       /**
   46        * Create a new SAXParseException from a message and a Locator.
   47        *
   48        * <p>This constructor is especially useful when an application is
   49        * creating its own exception from within a {@link org.xml.sax.ContentHandler
   50        * ContentHandler} callback.</p>
   51        *
   52        * @param message The error or warning message.
   53        * @param locator The locator object for the error or warning (may be
   54        *        null).
   55        * @see org.xml.sax.Locator
   56        */
   57       public SAXParseException (String message, Locator locator) {
   58   	super(message);
   59   	if (locator != null) {
   60   	    init(locator.getPublicId(), locator.getSystemId(),
   61   		 locator.getLineNumber(), locator.getColumnNumber());
   62   	} else {
   63   	    init(null, null, -1, -1);
   64   	}
   65       }
   66       
   67       
   68       /**
   69        * Wrap an existing exception in a SAXParseException.
   70        *
   71        * <p>This constructor is especially useful when an application is
   72        * creating its own exception from within a {@link org.xml.sax.ContentHandler
   73        * ContentHandler} callback, and needs to wrap an existing exception that is not a
   74        * subclass of {@link org.xml.sax.SAXException SAXException}.</p>
   75        *
   76        * @param message The error or warning message, or null to
   77        *                use the message from the embedded exception.
   78        * @param locator The locator object for the error or warning (may be
   79        *        null).
   80        * @param e Any exception.
   81        * @see org.xml.sax.Locator
   82        */
   83       public SAXParseException (String message, Locator locator,
   84   			      Exception e) {
   85   	super(message, e);
   86   	if (locator != null) {
   87   	    init(locator.getPublicId(), locator.getSystemId(),
   88   		 locator.getLineNumber(), locator.getColumnNumber());
   89   	} else {
   90   	    init(null, null, -1, -1);
   91   	}
   92       }
   93       
   94       
   95       /**
   96        * Create a new SAXParseException.
   97        *
   98        * <p>This constructor is most useful for parser writers.</p>
   99        *
  100        * <p>All parameters except the message are as if
  101        * they were provided by a {@link Locator}.  For example, if the
  102        * system identifier is a URL (including relative filename), the
  103        * caller must resolve it fully before creating the exception.</p>
  104        *
  105        *
  106        * @param message The error or warning message.
  107        * @param publicId The public identifier of the entity that generated
  108        *                 the error or warning.
  109        * @param systemId The system identifier of the entity that generated
  110        *                 the error or warning.
  111        * @param lineNumber The line number of the end of the text that
  112        *                   caused the error or warning.
  113        * @param columnNumber The column number of the end of the text that
  114        *                     cause the error or warning.
  115        */
  116       public SAXParseException (String message, String publicId, String systemId,
  117   			      int lineNumber, int columnNumber)
  118       {
  119   	super(message);
  120   	init(publicId, systemId, lineNumber, columnNumber);
  121       }
  122       
  123       
  124       /**
  125        * Create a new SAXParseException with an embedded exception.
  126        *
  127        * <p>This constructor is most useful for parser writers who
  128        * need to wrap an exception that is not a subclass of
  129        * {@link org.xml.sax.SAXException SAXException}.</p>
  130        *
  131        * <p>All parameters except the message and exception are as if
  132        * they were provided by a {@link Locator}.  For example, if the
  133        * system identifier is a URL (including relative filename), the
  134        * caller must resolve it fully before creating the exception.</p>
  135        *
  136        * @param message The error or warning message, or null to use
  137        *                the message from the embedded exception.
  138        * @param publicId The public identifier of the entity that generated
  139        *                 the error or warning.
  140        * @param systemId The system identifier of the entity that generated
  141        *                 the error or warning.
  142        * @param lineNumber The line number of the end of the text that
  143        *                   caused the error or warning.
  144        * @param columnNumber The column number of the end of the text that
  145        *                     cause the error or warning.
  146        * @param e Another exception to embed in this one.
  147        */
  148       public SAXParseException (String message, String publicId, String systemId,
  149   			      int lineNumber, int columnNumber, Exception e)
  150       {
  151   	super(message, e);
  152   	init(publicId, systemId, lineNumber, columnNumber);
  153       }
  154   
  155   
  156       /**
  157        * Internal initialization method.
  158        *
  159        * @param publicId The public identifier of the entity which generated the exception,
  160        *        or null.
  161        * @param systemId The system identifier of the entity which generated the exception,
  162        *        or null.
  163        * @param lineNumber The line number of the error, or -1.
  164        * @param columnNumber The column number of the error, or -1.
  165        */
  166       private void init (String publicId, String systemId,
  167   		       int lineNumber, int columnNumber)
  168       {
  169   	this.publicId = publicId;
  170   	this.systemId = systemId;
  171   	this.lineNumber = lineNumber;
  172   	this.columnNumber = columnNumber;
  173       }
  174       
  175       
  176       /**
  177        * Get the public identifier of the entity where the exception occurred.
  178        *
  179        * @return A string containing the public identifier, or null
  180        *         if none is available.
  181        * @see org.xml.sax.Locator#getPublicId
  182        */
  183       public String getPublicId ()
  184       {
  185   	return this.publicId;
  186       }
  187       
  188       
  189       /**
  190        * Get the system identifier of the entity where the exception occurred.
  191        *
  192        * <p>If the system identifier is a URL, it will have been resolved
  193        * fully.</p>
  194        *
  195        * @return A string containing the system identifier, or null
  196        *         if none is available.
  197        * @see org.xml.sax.Locator#getSystemId
  198        */
  199       public String getSystemId ()
  200       {
  201   	return this.systemId;
  202       }
  203       
  204       
  205       /**
  206        * The line number of the end of the text where the exception occurred.
  207        *
  208        * <p>The first line is line 1.</p>
  209        *
  210        * @return An integer representing the line number, or -1
  211        *         if none is available.
  212        * @see org.xml.sax.Locator#getLineNumber
  213        */
  214       public int getLineNumber ()
  215       {
  216   	return this.lineNumber;
  217       }
  218       
  219       
  220       /**
  221        * The column number of the end of the text where the exception occurred.
  222        *
  223        * <p>The first column in a line is position 1.</p>
  224        *
  225        * @return An integer representing the column number, or -1
  226        *         if none is available.
  227        * @see org.xml.sax.Locator#getColumnNumber
  228        */
  229       public int getColumnNumber ()
  230       {
  231   	return this.columnNumber;
  232       }
  233       
  234       
  235       //////////////////////////////////////////////////////////////////////
  236       // Internal state.
  237       //////////////////////////////////////////////////////////////////////
  238   
  239   
  240       /**
  241        * @serial The public identifier, or null.
  242        * @see #getPublicId
  243        */    
  244       private String publicId;
  245   
  246   
  247       /**
  248        * @serial The system identifier, or null.
  249        * @see #getSystemId
  250        */
  251       private String systemId;
  252   
  253   
  254       /**
  255        * @serial The line number, or -1.
  256        * @see #getLineNumber
  257        */
  258       private int lineNumber;
  259   
  260   
  261       /**
  262        * @serial The column number, or -1.
  263        * @see #getColumnNumber
  264        */
  265       private int columnNumber;
  266       
  267       // Added serialVersionUID to preserve binary compatibility
  268       static final long serialVersionUID = -5651165872476709336L;
  269   }
  270   
  271   // end of SAXParseException.java

Save This Page
Home » xml-commons-external-1.4.01-src » org.xml » sax » [javadoc | source]