org.eclipse.datatools.sqltools.debugger.model
Class SPStackFrame

java.lang.Object
  extended by org.eclipse.core.runtime.PlatformObject
      extended by org.eclipse.datatools.sqltools.debugger.model.SPDebugElement
          extended by org.eclipse.datatools.sqltools.debugger.model.SPStackFrame
All Implemented Interfaces:
org.eclipse.core.runtime.IAdaptable, org.eclipse.debug.core.model.IDebugElement, org.eclipse.debug.core.model.IStackFrame, org.eclipse.debug.core.model.IStep, org.eclipse.debug.core.model.ISuspendResume, org.eclipse.debug.core.model.ITerminate

public abstract class SPStackFrame
extends SPDebugElement
implements org.eclipse.debug.core.model.IStackFrame, org.eclipse.debug.core.model.IStep

This class represents a stored procedure stack frame. This is an abstract class, child class can store additional data and must implement the getLocalVariables0 method. Also, the creator of SPStackFrame is also responsible to set the following data:

  • line number
  • char start
  • char end
  • proc identifier
  • Author:
    Yang Liu

    Constructor Summary
    SPStackFrame(SPDebugTarget target, SPThread thread, int depth)
               
     
    Method Summary
     boolean canResume()
               
     boolean canStepInto()
               
     boolean canStepOver()
               
     boolean canStepReturn()
               
     boolean canSuspend()
               
     boolean canTerminate()
               
     int getCharEnd()
               
     int getCharStart()
               
    abstract  java.sql.Connection getConnection()
              Return a new connection for debug use.
    abstract  int getDebuggeeSpid()
               
     int getDepth()
              Depth of this stack frame.
     int getLineNumber()
               
     java.lang.String getName()
               
     java.lang.String getParamStr()
               
     org.eclipse.datatools.sqltools.core.ProcIdentifier getProcIdentifier()
               
     org.eclipse.debug.core.model.IRegisterGroup[] getRegisterGroups()
               
     org.eclipse.debug.core.model.IThread getThread()
               
     org.eclipse.debug.core.model.IVariable[] getVariables()
               
     boolean hasRegisterGroups()
               
     boolean hasVariables()
               
     void internalSetRefreshTables(boolean referesh)
               
     void internalSetRefreshVariable()
              This method is called when the stack frame "advance" to next lines.
     boolean isNeedRefreshTables()
               
     boolean isStepping()
               
     boolean isSuspended()
               
     boolean isTerminated()
               
     void resume()
               
     void setCharEnd(int ce)
               
     void setCharStart(int cs)
               
     void setDepth(int depthNew)
              This method is called when the stack frame is reused.
     void setLineNumber(int line)
               
     void setParamStr(java.lang.String str)
               
     void setProcIdentifier(org.eclipse.datatools.sqltools.core.ProcIdentifier id)
               
     void stepInto()
               
     void stepOver()
               
     void stepReturn()
               
     void suspend()
               
     void terminate()
               
     
    Methods inherited from class org.eclipse.datatools.sqltools.debugger.model.SPDebugElement
    fireChangeEvent, fireResumeEvent, fireSuspendEvent, getAdapter, getDebugTarget, getLaunch, getModelIdentifier, getSPDebugTarget, notSupported
     
    Methods inherited from class java.lang.Object
    equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
     
    Methods inherited from interface org.eclipse.debug.core.model.IDebugElement
    getDebugTarget, getLaunch, getModelIdentifier
     
    Methods inherited from interface org.eclipse.core.runtime.IAdaptable
    getAdapter
     

    Constructor Detail

    SPStackFrame

    public SPStackFrame(SPDebugTarget target,
                        SPThread thread,
                        int depth)
    Parameters:
    target -
    Method Detail

    getThread

    public org.eclipse.debug.core.model.IThread getThread()
    Specified by:
    getThread in interface org.eclipse.debug.core.model.IStackFrame

    getLineNumber

    public int getLineNumber()
                      throws org.eclipse.debug.core.DebugException
    Specified by:
    getLineNumber in interface org.eclipse.debug.core.model.IStackFrame
    Throws:
    org.eclipse.debug.core.DebugException

    setLineNumber

    public void setLineNumber(int line)

    getCharStart

    public int getCharStart()
                     throws org.eclipse.debug.core.DebugException
    Specified by:
    getCharStart in interface org.eclipse.debug.core.model.IStackFrame
    Throws:
    org.eclipse.debug.core.DebugException

    setCharStart

    public void setCharStart(int cs)

    getCharEnd

    public int getCharEnd()
                   throws org.eclipse.debug.core.DebugException
    Specified by:
    getCharEnd in interface org.eclipse.debug.core.model.IStackFrame
    Throws:
    org.eclipse.debug.core.DebugException

    setCharEnd

    public void setCharEnd(int ce)

    getProcIdentifier

    public org.eclipse.datatools.sqltools.core.ProcIdentifier getProcIdentifier()

    setProcIdentifier

    public void setProcIdentifier(org.eclipse.datatools.sqltools.core.ProcIdentifier id)

    setDepth

    public void setDepth(int depthNew)
    This method is called when the stack frame is reused.

    Parameters:
    depthNew -

    getDepth

    public int getDepth()
    Depth of this stack frame. 0 means top level.

    Returns:

    getConnection

    public abstract java.sql.Connection getConnection()
    Return a new connection for debug use. For example, referenced tables view needs connection to retrieve data from database.

    Returns:

    internalSetRefreshVariable

    public void internalSetRefreshVariable()
    This method is called when the stack frame "advance" to next lines.


    internalSetRefreshTables

    public void internalSetRefreshTables(boolean referesh)

    isNeedRefreshTables

    public boolean isNeedRefreshTables()

    getVariables

    public org.eclipse.debug.core.model.IVariable[] getVariables()
                                                          throws org.eclipse.debug.core.DebugException
    Specified by:
    getVariables in interface org.eclipse.debug.core.model.IStackFrame
    Throws:
    org.eclipse.debug.core.DebugException

    hasVariables

    public boolean hasVariables()
                         throws org.eclipse.debug.core.DebugException
    Specified by:
    hasVariables in interface org.eclipse.debug.core.model.IStackFrame
    Throws:
    org.eclipse.debug.core.DebugException

    getName

    public java.lang.String getName()
                             throws org.eclipse.debug.core.DebugException
    Specified by:
    getName in interface org.eclipse.debug.core.model.IStackFrame
    Throws:
    org.eclipse.debug.core.DebugException

    getRegisterGroups

    public org.eclipse.debug.core.model.IRegisterGroup[] getRegisterGroups()
                                                                    throws org.eclipse.debug.core.DebugException
    Specified by:
    getRegisterGroups in interface org.eclipse.debug.core.model.IStackFrame
    Throws:
    org.eclipse.debug.core.DebugException

    hasRegisterGroups

    public boolean hasRegisterGroups()
                              throws org.eclipse.debug.core.DebugException
    Specified by:
    hasRegisterGroups in interface org.eclipse.debug.core.model.IStackFrame
    Throws:
    org.eclipse.debug.core.DebugException

    canStepInto

    public boolean canStepInto()
    Specified by:
    canStepInto in interface org.eclipse.debug.core.model.IStep

    canStepOver

    public boolean canStepOver()
    Specified by:
    canStepOver in interface org.eclipse.debug.core.model.IStep

    canStepReturn

    public boolean canStepReturn()
    Specified by:
    canStepReturn in interface org.eclipse.debug.core.model.IStep

    isStepping

    public boolean isStepping()
    Specified by:
    isStepping in interface org.eclipse.debug.core.model.IStep

    stepInto

    public void stepInto()
                  throws org.eclipse.debug.core.DebugException
    Specified by:
    stepInto in interface org.eclipse.debug.core.model.IStep
    Throws:
    org.eclipse.debug.core.DebugException

    stepOver

    public void stepOver()
                  throws org.eclipse.debug.core.DebugException
    Specified by:
    stepOver in interface org.eclipse.debug.core.model.IStep
    Throws:
    org.eclipse.debug.core.DebugException

    stepReturn

    public void stepReturn()
                    throws org.eclipse.debug.core.DebugException
    Specified by:
    stepReturn in interface org.eclipse.debug.core.model.IStep
    Throws:
    org.eclipse.debug.core.DebugException

    canResume

    public boolean canResume()
    Specified by:
    canResume in interface org.eclipse.debug.core.model.ISuspendResume

    canSuspend

    public boolean canSuspend()
    Specified by:
    canSuspend in interface org.eclipse.debug.core.model.ISuspendResume

    isSuspended

    public boolean isSuspended()
    Specified by:
    isSuspended in interface org.eclipse.debug.core.model.ISuspendResume

    resume

    public void resume()
                throws org.eclipse.debug.core.DebugException
    Specified by:
    resume in interface org.eclipse.debug.core.model.ISuspendResume
    Throws:
    org.eclipse.debug.core.DebugException

    suspend

    public void suspend()
                 throws org.eclipse.debug.core.DebugException
    Specified by:
    suspend in interface org.eclipse.debug.core.model.ISuspendResume
    Throws:
    org.eclipse.debug.core.DebugException

    canTerminate

    public boolean canTerminate()
    Specified by:
    canTerminate in interface org.eclipse.debug.core.model.ITerminate

    isTerminated

    public boolean isTerminated()
    Specified by:
    isTerminated in interface org.eclipse.debug.core.model.ITerminate

    terminate

    public void terminate()
                   throws org.eclipse.debug.core.DebugException
    Specified by:
    terminate in interface org.eclipse.debug.core.model.ITerminate
    Throws:
    org.eclipse.debug.core.DebugException

    getDebuggeeSpid

    public abstract int getDebuggeeSpid()

    setParamStr

    public void setParamStr(java.lang.String str)

    getParamStr

    public java.lang.String getParamStr()