PageRenderTime 16ms CodeModel.GetById 2ms app.highlight 9ms RepoModel.GetById 1ms app.codeStats 1ms

/interpreter/tags/at2-build060407/src/edu/vub/at/exceptions/XParseError.java

http://ambienttalk.googlecode.com/
Java | 111 lines | 51 code | 15 blank | 45 comment | 3 complexity | 6042409b7de9614c9dfbb50ba06fd728 MD5 | raw file
  1/**
  2 * AmbientTalk/2 Project
  3 * XParseError.java created on 29-jul-2006 at 14:36:07
  4 * (c) Programming Technology Lab, 2006 - 2007
  5 * Authors: Tom Van Cutsem & Stijn Mostinckx
  6 * 
  7 * Permission is hereby granted, free of charge, to any person
  8 * obtaining a copy of this software and associated documentation
  9 * files (the "Software"), to deal in the Software without
 10 * restriction, including without limitation the rights to use,
 11 * copy, modify, merge, publish, distribute, sublicense, and/or
 12 * sell copies of the Software, and to permit persons to whom the
 13 * Software is furnished to do so, subject to the following
 14 * conditions:
 15 *
 16 * The above copyright notice and this permission notice shall be
 17 * included in all copies or substantial portions of the Software.
 18 *
 19 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
 20 * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
 21 * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
 22 * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
 23 * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
 24 * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
 25 * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
 26 * OTHER DEALINGS IN THE SOFTWARE.
 27 */
 28package edu.vub.at.exceptions;
 29
 30import edu.vub.at.objects.ATStripe;
 31import edu.vub.at.objects.coercion.NativeStripes;
 32
 33import java.io.InputStream;
 34
 35/**
 36 * XParseError is thrown when illegal input is parsed by the AmbientTalk parser.
 37 * 
 38 * @author tvc
 39 */
 40public final class XParseError extends InterpreterException {
 41
 42	private static final long serialVersionUID = 3910243526236096495L;
 43
 44	private InputStream erroneousCode_;
 45	
 46	// indicates the position of the parse error
 47	private final String fileName_;
 48	private final int line_;
 49	private final int column_;
 50
 51	public XParseError(String message, Throwable cause) {
 52		super(message, cause);
 53		fileName_ = null;
 54		line_ = 0;
 55		column_ = 0;
 56	}
 57	
 58	public XParseError(InputStream erroneousCode,
 59			          String message,
 60			          String filename,
 61			          int line,
 62			          int column,
 63			          Throwable cause) {
 64		super(message, cause);
 65		erroneousCode_ = erroneousCode;
 66		fileName_ = filename;
 67		line_ = line;
 68		column_ = column;
 69	}
 70	
 71	/**
 72	 * @return Returns the column.
 73	 */
 74	public int getColumn() {
 75		return column_;
 76	}
 77
 78	/**
 79	 * @return Returns the fileName.
 80	 */
 81	public String getFileName() {
 82		return fileName_;
 83	}
 84
 85	/**
 86	 * @return Returns the line.
 87	 */
 88	public int getLine() {
 89		return line_;
 90	}
 91
 92	/**
 93	 * @return Returns the erroneous code.
 94	 */
 95	public InputStream getErroneousCode() {
 96		return erroneousCode_;
 97	}
 98	
 99	public String getMessage() {
100		if (fileName_ != null) {
101			return fileName_ + ":" + line_ + ":" + column_ + ":" + super.getMessage();
102		} else {
103			return super.getMessage();
104		}
105	}
106	
107	public ATStripe getStripeType() {
108		return NativeStripes._PARSEERROR_;
109	}
110
111}