/******************************************************************************* * Copyright © 2011, 2013 IBM Corporation and others. * All rights reserved. This program and the accompanying materials * are made available under the terms of the Eclipse Public License v1.0 * which accompanies this distribution, and is available at * http://www.eclipse.org/legal/epl-v10.html * * Contributors: * IBM Corporation - initial API and implementation * *******************************************************************************/ package org.eclipse.edt.debug.core.java; import org.eclipse.debug.core.DebugException; import org.eclipse.edt.debug.core.IEGLStackFrame; import org.eclipse.jdt.debug.core.IJavaStackFrame; /** * Represents an EGL stack frame in the Java-based debugger. EGL stack frames wrap the original Java stack frame. */ public interface IEGLJavaStackFrame extends IEGLStackFrame, IEGLJavaDebugElement { /** * @return the EGL thread to which this frame belongs. */ public IEGLJavaThread getEGLThread(); /** * @return the underlying stack frame. */ public IJavaStackFrame getJavaStackFrame(); /** * @return true if this frame is an EGL stratum. */ public boolean isEGLStratum() throws DebugException; /** * Returns the variable information from the frame's SMAP. It should never be null. If there is no SMAP information, or the Java type was not a * type that we recognize, then this will return an empty array. * * @return the variable information * @throws DebugException */ public SMAPVariableInfo[] getSMAPVariableInfos() throws DebugException; /** * Sets the variable information. * * @param infos The variable information. */ public void setSMAPVariableInfos( SMAPVariableInfo[] infos ); /** * Returns the function information from the frame's SMAP. It might be null if there was no SMAP information. * * @return the function information, possibly null. * @throws DebugException */ public SMAPFunctionInfo getSMAPFunctionInfo() throws DebugException; /** * Sets the function information. * * @param info The function information. */ public void setSMAPFunctionInfo( SMAPFunctionInfo info ); /** * Returns the corresponding EGL variable given the new variable. Implementations may choose to just return the new variable that was passed in, * but this allows a frame to reuse an existing variable. * * @param newVariable The new EGL variable. * @param parent The parent value, possibly null. * @return the corresponding EGL variable. * @throws DebugException */ public IEGLJavaVariable getCorrespondingVariable( IEGLJavaVariable newVariable, IEGLJavaValue parent ) throws DebugException; /** * Returns the path of the frame's source file, relative to the source directory. * * @return the path of the frame's source file, relative to the source directory. * @throws DebugException */ public String getSourcePath() throws DebugException; }