OSDN Git Service

2013.10.24
[uclinux-h8/uClinux-dist.git] / lib / classpath / external / sax / org / xml / sax / SAXParseException.java
1 // SAX exception class.
2 // http://www.saxproject.org
3 // No warranty; no copyright -- use this as you will.
4 // $Id: SAXParseException.java,v 1.1 2004/12/23 22:38:42 mark Exp $
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     \f
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     \f
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 }
268
269 // end of SAXParseException.java