/*******************************************************************************
 * Copyright (C) 2007 The University of Manchester   
 * 
 *  Modifications to the initial code base are copyright of their
 *  respective authors, or their employers as appropriate.
 * 
 *  This program is free software; you can redistribute it and/or
 *  modify it under the terms of the GNU Lesser General Public License
 *  as published by the Free Software Foundation; either version 2.1 of
 *  the License, or (at your option) any later version.
 *    
 *  This program is distributed in the hope that it will be useful, but
 *  WITHOUT ANY WARRANTY; without even the implied warranty of
 *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
 *  Lesser General Public License for more details.
 *    
 *  You should have received a copy of the GNU Lesser General Public
 *  License along with this program; if not, write to the Free Software
 *  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307
 ******************************************************************************/
package net.sf.taverna.t2.reference;

/**
 * Used by the {@link ErrorDocument} interface to represent a frame within a
 * stack trace
 * 
 * @author Tom Oinn
 * 
 */
public interface StackTraceElementBean {

	/**
	 * Returns the fully qualified name of the class containing the execution
	 * point represented by this stack trace element.
	 */
	public String getClassName();

	/**
	 * Returns the name of the source file containing the execution point
	 * represented by this stack trace element.
	 */
	public String getFileName();

	/**
	 * Returns the line number of the source line containing the execution point
	 * represented by this stack trace element.
	 */
	public int getLineNumber();

	/**
	 * Returns the name of the method containing the execution point represented
	 * by this stack trace element.
	 */
	public String getMethodName();

}
