001: /*
002: *
003: *
004: * Copyright 1990-2007 Sun Microsystems, Inc. All Rights Reserved.
005: * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER
006: *
007: * This program is free software; you can redistribute it and/or
008: * modify it under the terms of the GNU General Public License version
009: * 2 only, as published by the Free Software Foundation.
010: *
011: * This program is distributed in the hope that it will be useful, but
012: * WITHOUT ANY WARRANTY; without even the implied warranty of
013: * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
014: * General Public License version 2 for more details (a copy is
015: * included at /legal/license.txt).
016: *
017: * You should have received a copy of the GNU General Public License
018: * version 2 along with this work; if not, write to the Free Software
019: * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
020: * 02110-1301 USA
021: *
022: * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa
023: * Clara, CA 95054 or visit www.sun.com if you need additional
024: * information or have any questions.
025: */
026:
027: // SAX exception class.
028: package org.xml.sax;
029:
030: /**
031: * Encapsulate an XML parse error or warning.
032: *
033: * <blockquote>
034: * <em>This module, both source code and documentation, is in the
035: * Public Domain, and comes with <strong>NO WARRANTY</strong>.</em>
036: * </blockquote>
037: *
038: * <p>This exception will include information for locating the error
039: * in the original XML document. Note that although the application
040: * will receive a SAXParseException,
041: * the application is not actually required to throw the exception;
042: * instead, it can simply read the information in it and take a
043: * different action.</p>
044: *
045: * <p>Since this exception is a subclass of {@link org.xml.sax.SAXException
046: * SAXException}, it inherits the ability to wrap another exception.</p>
047: *
048: * @since SAX 1.0
049: *
050: * @version 2.0
051: * @see org.xml.sax.SAXException
052: * @see org.xml.sax.Locator
053: */
054: public class SAXParseException extends SAXException {
055:
056: //////////////////////////////////////////////////////////////////////
057: // Constructors.
058: //////////////////////////////////////////////////////////////////////
059:
060: /**
061: * Create a new SAXParseException from a message and a Locator.
062: *
063: * @param message The error or warning message.
064: * @param locator The locator object for the error or warning (may be
065: * null).
066: * @see org.xml.sax.Locator
067: */
068:
069: public SAXParseException(String message, Locator locator) {
070: super (message);
071:
072: if (locator != null) {
073: this .publicId = locator.getPublicId();
074: this .systemId = locator.getSystemId();
075: this .lineNumber = locator.getLineNumber();
076: this .columnNumber = locator.getColumnNumber();
077: } else {
078: this .lineNumber = -1;
079: this .columnNumber = -1;
080: }
081: }
082:
083: /**
084: * Get the public identifier of the entity where the exception occurred.
085: *
086: * @return A string containing the public identifier, or null
087: * if none is available.
088: * @see org.xml.sax.Locator#getPublicId
089: */
090:
091: public String getPublicId() {
092: return this .publicId;
093: }
094:
095: /**
096: * Get the system identifier of the entity where the exception occurred.
097: *
098: * <p>If the system identifier is a URL, it will be resolved
099: * fully.</p>
100: *
101: * @return A string containing the system identifier, or null
102: * if none is available.
103: * @see org.xml.sax.Locator#getSystemId
104: */
105:
106: public String getSystemId() {
107: return this .systemId;
108: }
109:
110: /**
111: * The line number of the end of the text where the exception occurred.
112: *
113: * @return An integer representing the line number, or -1
114: * if none is available.
115: * @see org.xml.sax.Locator#getLineNumber
116: */
117:
118: public int getLineNumber() {
119: return this .lineNumber;
120: }
121:
122: /**
123: * The column number of the end of the text where the exception occurred.
124: *
125: * <p>The first column in a line is position 1.</p>
126: *
127: * @return An integer representing the column number, or -1
128: * if none is available.
129: * @see org.xml.sax.Locator#getColumnNumber
130: */
131:
132: public int getColumnNumber() {
133: return this .columnNumber;
134: }
135:
136: //////////////////////////////////////////////////////////////////////
137: // Internal state.
138: //////////////////////////////////////////////////////////////////////
139:
140: /**
141: * @serial The public identifier, or null.
142: * @see #getPublicId
143: */
144: private String publicId;
145:
146: /**
147: * @serial The system identifier, or null.
148: * @see #getSystemId
149: */
150: private String systemId;
151:
152: /**
153: * @serial The line number, or -1.
154: * @see #getLineNumber
155: */
156: private int lineNumber;
157:
158: /**
159: * @serial The column number, or -1.
160: * @see #getColumnNumber
161: */
162: private int columnNumber;
163:
164: }
165:
166: // end of SAXParseException.java
|