1 /* 2 * The NanoXML 2 Lite licence blurb is included here. The classes have been 3 * completely butchered but the core xml parsing routines are thanks to 4 * the NanoXML authors. 5 * 6 **/ 7 8 /* XMLParseException.java 9 * 10 * $Revision: 1.4 $ 11 * $Date: 2002/03/24 10:27:59 $ 12 * $Name: RELEASE_2_2_1 $ 13 * 14 * This file is part of NanoXML 2 Lite. 15 * Copyright (C) 2000-2002 Marc De Scheemaecker, All Rights Reserved. 16 * 17 * This software is provided 'as-is', without any express or implied warranty. 18 * In no event will the authors be held liable for any damages arising from the 19 * use of this software. 20 * 21 * Permission is granted to anyone to use this software for any purpose, 22 * including commercial applications, and to alter it and redistribute it 23 * freely, subject to the following restrictions: 24 * 25 * 1. The origin of this software must not be misrepresented; you must not 26 * claim that you wrote the original software. If you use this software in 27 * a product, an acknowledgment in the product documentation would be 28 * appreciated but is not required. 29 * 30 * 2. Altered source versions must be plainly marked as such, and must not be 31 * misrepresented as being the original software. 32 * 33 * 3. This notice may not be removed or altered from any source distribution. 34 *****************************************************************************/ 35 36 37 package com.github.davidmoten.aws.lw.client.xml; 38 39 /** 40 * An XMLParseException is thrown when an error occures while parsing an XML 41 * string. 42 * <P> 43 * $Revision: 1.4 $<BR> 44 * $Date: 2002/03/24 10:27:59 $<P> 45 * 46 * @see com.github.davidmoten.aws.lw.client.xml.XmlElement 47 * 48 * @author Marc De Scheemaecker 49 * @version $Name: RELEASE_2_2_1 $, $Revision: 1.4 $ 50 */ 51 public class XmlParseException 52 extends RuntimeException 53 { 54 55 /** 56 * 57 */ 58 private static final long serialVersionUID = 2719032602966457493L; 59 60 61 /** 62 * Indicates that no line number has been associated with this exception. 63 */ 64 public static final int NO_LINE = -1; 65 66 67 /** 68 * The line number in the source code where the error occurred, or 69 * <code>NO_LINE</code> if the line number is unknown. 70 * 71 * <dl><dt><b>Invariants:</b></dt><dd> 72 * <ul><li><code>lineNumber > 0 || lineNumber == NO_LINE</code> 73 * </ul></dd></dl> 74 */ 75 private int lineNumber; 76 77 /** 78 * Creates an exception. 79 * 80 * @param name The name of the element where the error is located. 81 * @param lineNumber The number of the line in the input. 82 * @param message A message describing what went wrong. 83 * 84 * </dl><dl><dt><b>Preconditions:</b></dt><dd> 85 * <ul><li><code>message != null</code> 86 * <li><code>lineNumber > 0</code> 87 * </ul></dd></dl> 88 * 89 * <dl><dt><b>Postconditions:</b></dt><dd> 90 * <ul><li>getLineNumber() => lineNr 91 * </ul></dd></dl><dl> 92 */ 93 public XmlParseException(String name, 94 int lineNumber, 95 String message) 96 { 97 super("Problem parsing " 98 + ((name == null) ? "the XML definition" 99 : ("a " + name + " element")) 100 + " at line " + lineNumber + ": " + message); 101 this.lineNumber = lineNumber; 102 } 103 104 105 /** 106 * Where the error occurred, or <code>NO_LINE</code> if the line number is 107 * unknown. 108 * 109 */ 110 public int lineNumber() 111 { 112 return this.lineNumber; 113 } 114 115 }