View Javadoc
1 /* 2 * $Header: /home/cvs/jakarta-commons-sandbox/jelly/src/java/org/apache/commons/jelly/JellyException.java,v 1.9 2002/07/15 16:18:15 werken Exp $ 3 * $Revision: 1.9 $ 4 * $Date: 2002/07/15 16:18:15 $ 5 * 6 * ==================================================================== 7 * 8 * The Apache Software License, Version 1.1 9 * 10 * Copyright (c) 1999-2002 The Apache Software Foundation. All rights 11 * reserved. 12 * 13 * Redistribution and use in source and binary forms, with or without 14 * modification, are permitted provided that the following conditions 15 * are met: 16 * 17 * 1. Redistributions of source code must retain the above copyright 18 * notice, this list of conditions and the following disclaimer. 19 * 20 * 2. Redistributions in binary form must reproduce the above copyright 21 * notice, this list of conditions and the following disclaimer in 22 * the documentation and/or other materials provided with the 23 * distribution. 24 * 25 * 3. The end-user documentation included with the redistribution, if 26 * any, must include the following acknowlegement: 27 * "This product includes software developed by the 28 * Apache Software Foundation (http://www.apache.org/)." 29 * Alternately, this acknowlegement may appear in the software itself, 30 * if and wherever such third-party acknowlegements normally appear. 31 * 32 * 4. The names "The Jakarta Project", "Commons", and "Apache Software 33 * Foundation" must not be used to endorse or promote products derived 34 * from this software without prior written permission. For written 35 * permission, please contact apache@apache.org. 36 * 37 * 5. Products derived from this software may not be called "Apache" 38 * nor may "Apache" appear in their names without prior written 39 * permission of the Apache Group. 40 * 41 * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED 42 * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES 43 * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE 44 * DISCLAIMED. IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR 45 * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, 46 * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT 47 * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF 48 * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND 49 * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, 50 * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT 51 * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 52 * SUCH DAMAGE. 53 * ==================================================================== 54 * 55 * This software consists of voluntary contributions made by many 56 * individuals on behalf of the Apache Software Foundation. For more 57 * information on the Apache Software Foundation, please see 58 * <http://www.apache.org/>;. 59 * 60 * $Id: JellyException.java,v 1.9 2002/07/15 16:18:15 werken Exp $ 61 */ 62 63 package org.apache.commons.jelly; 64 65 import java.io.PrintStream; 66 import java.io.PrintWriter; 67 68 /*** 69 * <p><code>JellyException</code> is the root of all Jelly exceptions.</p> 70 * 71 * @author <a href="mailto:jstrachan@apache.org">James Strachan</a> 72 * @version $Revision: 1.9 $ 73 */ 74 75 public class JellyException extends Exception { 76 77 /*** the underlying cause of the exception */ 78 private Throwable cause; 79 80 /*** the Jelly file which caused the problem */ 81 private String fileName; 82 83 /*** the tag name which caused the problem */ 84 private String elementName; 85 86 /*** the line number in the script of the error */ 87 private int lineNumber = -1; 88 89 /*** the column number in the script of the error */ 90 private int columnNumber = -1; 91 92 public JellyException() { 93 } 94 95 public JellyException(String message) { 96 super(message); 97 } 98 99 public JellyException(String message, Throwable cause) { 100 super(message); 101 this.cause = cause; 102 } 103 104 public JellyException(Throwable cause) { 105 super(cause.getLocalizedMessage()); 106 this.cause = cause; 107 } 108 109 public JellyException(Throwable cause, String fileName, String elementName, int columnNumber, int lineNumber) { 110 this(cause.getLocalizedMessage(), cause, fileName, elementName, columnNumber, lineNumber); 111 } 112 113 public JellyException(String reason, Throwable cause, String fileName, String elementName, int columnNumber, int lineNumber) { 114 super( (reason==null?cause.getClass().getName():reason) ); 115 this.cause = cause; 116 this.fileName = fileName; 117 this.elementName = elementName; 118 this.columnNumber = columnNumber; 119 this.lineNumber = lineNumber; 120 } 121 122 public JellyException(String reason, String fileName, String elementName, int columnNumber, int lineNumber) { 123 super(reason); 124 this.fileName = fileName; 125 this.elementName = elementName; 126 this.columnNumber = columnNumber; 127 this.lineNumber = lineNumber; 128 } 129 130 public Throwable getCause() { 131 return cause; 132 } 133 134 135 /*** 136 * @return the line number of the tag 137 */ 138 public int getLineNumber() { 139 return lineNumber; 140 } 141 142 /*** 143 * Sets the line number of the tag 144 */ 145 public void setLineNumber(int lineNumber) { 146 this.lineNumber = lineNumber; 147 } 148 149 /*** 150 * @return the column number of the tag 151 */ 152 public int getColumnNumber() { 153 return columnNumber; 154 } 155 156 /*** 157 * Sets the column number of the tag 158 */ 159 public void setColumnNumber(int columnNumber) { 160 this.columnNumber = columnNumber; 161 } 162 163 /*** 164 * @return the Jelly file which caused the problem 165 */ 166 public String getFileName() { 167 return fileName; 168 } 169 170 /*** 171 * Sets the Jelly file which caused the problem 172 */ 173 public void setFileName(String fileName) { 174 this.fileName = fileName; 175 } 176 177 178 /*** 179 * @return the element name which caused the problem 180 */ 181 public String getElementName() { 182 return elementName; 183 } 184 185 /*** 186 * Sets the element name which caused the problem 187 */ 188 public void setElementName(String elementName) { 189 this.elementName = elementName; 190 } 191 192 193 public String getMessage() { 194 return super.getMessage() + " File: " + fileName + " At tag <" + elementName + ">: line: " 195 + lineNumber + " column: " + columnNumber; 196 } 197 198 public String getReason() { 199 return super.getMessage(); 200 } 201 202 // #### overload the printStackTrace methods... 203 public void printStackTrace(PrintWriter s) { 204 super.printStackTrace(s); 205 if (cause != null) { 206 s.println("Root cause"); 207 cause.printStackTrace(s); 208 } 209 } 210 211 public void printStackTrace(PrintStream s) { 212 super.printStackTrace(s); 213 if (cause != null) { 214 s.println("Root cause"); 215 cause.printStackTrace(s); 216 } 217 } 218 219 /* 220 public void printStackTrace() { 221 super.printStackTrace(); 222 if ( cause != null ) { 223 System.err.println("Root cause"); 224 cause.printStackTrace(); 225 } 226 } 227 */ 228 }

This page was automatically generated by Maven