Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
PojavLauncherTeam
GitHub Repository: PojavLauncherTeam/mobile
Path: blob/master/src/java.xml/share/classes/org/xml/sax/SAXParseException.java
40948 views
1
/*
2
* Copyright (c) 2000, 2019, Oracle and/or its affiliates. All rights reserved.
3
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
4
*
5
* This code is free software; you can redistribute it and/or modify it
6
* under the terms of the GNU General Public License version 2 only, as
7
* published by the Free Software Foundation. Oracle designates this
8
* particular file as subject to the "Classpath" exception as provided
9
* by Oracle in the LICENSE file that accompanied this code.
10
*
11
* This code is distributed in the hope that it will be useful, but WITHOUT
12
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
13
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
14
* version 2 for more details (a copy is included in the LICENSE file that
15
* accompanied this code).
16
*
17
* You should have received a copy of the GNU General Public License version
18
* 2 along with this work; if not, write to the Free Software Foundation,
19
* Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
20
*
21
* Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
22
* or visit www.oracle.com if you need additional information or have any
23
* questions.
24
*/
25
26
package org.xml.sax;
27
28
/**
29
* Encapsulate an XML parse error or warning.
30
*
31
* <p>This exception may include information for locating the error
32
* in the original XML document, as if it came from a {@link Locator}
33
* object. Note that although the application
34
* will receive a SAXParseException as the argument to the handlers
35
* in the {@link org.xml.sax.ErrorHandler ErrorHandler} interface,
36
* the application is not actually required to throw the exception;
37
* instead, it can simply read the information in it and take a
38
* different action.</p>
39
*
40
* <p>Since this exception is a subclass of {@link org.xml.sax.SAXException
41
* SAXException}, it inherits the ability to wrap another exception.</p>
42
*
43
* @since 1.4, SAX 1.0
44
* @author David Megginson
45
* @version 2.0.1 (sax2r2)
46
* @see org.xml.sax.SAXException
47
* @see org.xml.sax.Locator
48
* @see org.xml.sax.ErrorHandler
49
*/
50
public class SAXParseException extends SAXException {
51
52
53
//////////////////////////////////////////////////////////////////////
54
// Constructors.
55
//////////////////////////////////////////////////////////////////////
56
57
58
/**
59
* Create a new SAXParseException from a message and a Locator.
60
*
61
* <p>This constructor is especially useful when an application is
62
* creating its own exception from within a {@link org.xml.sax.ContentHandler
63
* ContentHandler} callback.</p>
64
*
65
* @param message The error or warning message.
66
* @param locator The locator object for the error or warning (may be
67
* null).
68
* @see org.xml.sax.Locator
69
*/
70
public SAXParseException (String message, Locator locator) {
71
super(message);
72
if (locator != null) {
73
init(locator.getPublicId(), locator.getSystemId(),
74
locator.getLineNumber(), locator.getColumnNumber());
75
} else {
76
init(null, null, -1, -1);
77
}
78
}
79
80
81
/**
82
* Wrap an existing exception in a SAXParseException.
83
*
84
* <p>This constructor is especially useful when an application is
85
* creating its own exception from within a {@link org.xml.sax.ContentHandler
86
* ContentHandler} callback, and needs to wrap an existing exception that is not a
87
* subclass of {@link org.xml.sax.SAXException SAXException}.</p>
88
*
89
* @param message The error or warning message, or null to
90
* use the message from the embedded exception.
91
* @param locator The locator object for the error or warning (may be
92
* null).
93
* @param e Any exception.
94
* @see org.xml.sax.Locator
95
*/
96
public SAXParseException (String message, Locator locator,
97
Exception e) {
98
super(message, e);
99
if (locator != null) {
100
init(locator.getPublicId(), locator.getSystemId(),
101
locator.getLineNumber(), locator.getColumnNumber());
102
} else {
103
init(null, null, -1, -1);
104
}
105
}
106
107
108
/**
109
* Create a new SAXParseException.
110
*
111
* <p>This constructor is most useful for parser writers.</p>
112
*
113
* <p>All parameters except the message are as if
114
* they were provided by a {@link Locator}. For example, if the
115
* system identifier is a URL (including relative filename), the
116
* caller must resolve it fully before creating the exception.</p>
117
*
118
*
119
* @param message The error or warning message.
120
* @param publicId The public identifier of the entity that generated
121
* the error or warning.
122
* @param systemId The system identifier of the entity that generated
123
* the error or warning.
124
* @param lineNumber The line number of the end of the text that
125
* caused the error or warning.
126
* @param columnNumber The column number of the end of the text that
127
* cause the error or warning.
128
*/
129
public SAXParseException (String message, String publicId, String systemId,
130
int lineNumber, int columnNumber)
131
{
132
super(message);
133
init(publicId, systemId, lineNumber, columnNumber);
134
}
135
136
137
/**
138
* Create a new SAXParseException with an embedded exception.
139
*
140
* <p>This constructor is most useful for parser writers who
141
* need to wrap an exception that is not a subclass of
142
* {@link org.xml.sax.SAXException SAXException}.</p>
143
*
144
* <p>All parameters except the message and exception are as if
145
* they were provided by a {@link Locator}. For example, if the
146
* system identifier is a URL (including relative filename), the
147
* caller must resolve it fully before creating the exception.</p>
148
*
149
* @param message The error or warning message, or null to use
150
* the message from the embedded exception.
151
* @param publicId The public identifier of the entity that generated
152
* the error or warning.
153
* @param systemId The system identifier of the entity that generated
154
* the error or warning.
155
* @param lineNumber The line number of the end of the text that
156
* caused the error or warning.
157
* @param columnNumber The column number of the end of the text that
158
* cause the error or warning.
159
* @param e Another exception to embed in this one.
160
*/
161
public SAXParseException (String message, String publicId, String systemId,
162
int lineNumber, int columnNumber, Exception e)
163
{
164
super(message, e);
165
init(publicId, systemId, lineNumber, columnNumber);
166
}
167
168
169
/**
170
* Internal initialization method.
171
*
172
* @param publicId The public identifier of the entity which generated the exception,
173
* or null.
174
* @param systemId The system identifier of the entity which generated the exception,
175
* or null.
176
* @param lineNumber The line number of the error, or -1.
177
* @param columnNumber The column number of the error, or -1.
178
*/
179
private void init (String publicId, String systemId,
180
int lineNumber, int columnNumber)
181
{
182
this.publicId = publicId;
183
this.systemId = systemId;
184
this.lineNumber = lineNumber;
185
this.columnNumber = columnNumber;
186
}
187
188
189
/**
190
* Get the public identifier of the entity where the exception occurred.
191
*
192
* @return A string containing the public identifier, or null
193
* if none is available.
194
* @see org.xml.sax.Locator#getPublicId
195
*/
196
public String getPublicId ()
197
{
198
return this.publicId;
199
}
200
201
202
/**
203
* Get the system identifier of the entity where the exception occurred.
204
*
205
* <p>If the system identifier is a URL, it will have been resolved
206
* fully.</p>
207
*
208
* @return A string containing the system identifier, or null
209
* if none is available.
210
* @see org.xml.sax.Locator#getSystemId
211
*/
212
public String getSystemId ()
213
{
214
return this.systemId;
215
}
216
217
218
/**
219
* The line number of the end of the text where the exception occurred.
220
*
221
* <p>The first line is line 1.</p>
222
*
223
* @return An integer representing the line number, or -1
224
* if none is available.
225
* @see org.xml.sax.Locator#getLineNumber
226
*/
227
public int getLineNumber ()
228
{
229
return this.lineNumber;
230
}
231
232
233
/**
234
* The column number of the end of the text where the exception occurred.
235
*
236
* <p>The first column in a line is position 1.</p>
237
*
238
* @return An integer representing the column number, or -1
239
* if none is available.
240
* @see org.xml.sax.Locator#getColumnNumber
241
*/
242
public int getColumnNumber ()
243
{
244
return this.columnNumber;
245
}
246
247
/**
248
* Override toString to provide more detailed error message.
249
*
250
* @return A string representation of this exception.
251
*/
252
public String toString() {
253
StringBuilder buf = new StringBuilder(getClass().getName());
254
String message = getLocalizedMessage();
255
if (publicId!=null) buf.append("publicId: ").append(publicId);
256
if (systemId!=null) buf.append("; systemId: ").append(systemId);
257
if (lineNumber!=-1) buf.append("; lineNumber: ").append(lineNumber);
258
if (columnNumber!=-1) buf.append("; columnNumber: ").append(columnNumber);
259
260
//append the exception message at the end
261
if (message!=null) buf.append("; ").append(message);
262
return buf.toString();
263
}
264
265
//////////////////////////////////////////////////////////////////////
266
// Internal state.
267
//////////////////////////////////////////////////////////////////////
268
269
270
/**
271
* @serial The public identifier, or null.
272
* @see #getPublicId
273
*/
274
private String publicId;
275
276
277
/**
278
* @serial The system identifier, or null.
279
* @see #getSystemId
280
*/
281
private String systemId;
282
283
284
/**
285
* @serial The line number, or -1.
286
* @see #getLineNumber
287
*/
288
private int lineNumber;
289
290
291
/**
292
* @serial The column number, or -1.
293
* @see #getColumnNumber
294
*/
295
private int columnNumber;
296
297
// Added serialVersionUID to preserve binary compatibility
298
static final long serialVersionUID = -5651165872476709336L;
299
}
300
301
// end of SAXParseException.java
302
303