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

    java.lang.Object
      org.eclipse.core.runtime.PlatformObject
          org.eclipse.datatools.sqltools.debugger.model.SPDebugElement
              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: <ll>``

- line number
- char start
- char end
- proc identifier
</ll>

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()