# com.bea.ide.debug
DebugSvc.I Interface

public static interface DebugSvc.I

the interface retuned for the debugging services. As the debugger currently only supports debugging one project at a time, the `proj` argument to most of the methods should generally be null to operate on the active project.

All Known Implementing Classes
  `DebugSvc.NullDebugSvc`

Enclosing class
  `DebugSvc`

## Method Summary

`public void` | `addBreakPoint`(`IDebugBreakPoint` breakPoint) Adds a breakpoint to the `IDebugClient`.
`public void` | `addBreakpointListener`(`DebugSvc.IBreakpointListener` bpl) adds a breakpoint listener to a listen to all breakpoint changes.
`public void` | `addBreakpointListener`(`URI` uri, `DebugSvc.IBreakpointListener` bpl) adds a breakpoint listener to a given document.
`public void` | `addDebugListener`(`DebugSvc.IDebugListener` dbl) adds a debug listener.
`public void` | `addPropertyChangeListener`(`String` name, `PropertyChangeListener` listener) Adds a PropertyChangeListener for a specific property.
`public void` | `addPropertyChangeListener`(`PropertyChangeListener` listener) Adds a PropertyChangeListener to the listener list.
`public void` | `breakpointHasChanged`(`IDebugBreakPoint` bp) notifies all people listening on breakpoint events, that this breakpoint has changed in some way.
`public `URI`` | `browseToSource`(`String` className) Prompts the user to browse to the source for the given classname.
`public void` | `clearAllBreakpoints`() Removes all the breakpoints the DebugClient knows about.
`public void` | `disableAllBreakpoints`(boolean fDisable) disables or enables all breakpoints.
`public void` | `disableBreakpoint`(`IDebugBreakPoint` bp, boolean fDisable) disables or enables the specified breakpoint.
`public `IDebugBreakPoint`` | `getBreakpoint`(int id) Gets a breakpoint specified by its unique id.
`public `ISourceBreakPoint`` | `getBreakpoint`(`IDocument` file, int line) Gets a breakpoint specified by a file and line number.
`public int` | `getBreakpointCount`() gets the count of all the breakpoints the DebugClient knows about.
`public `List`` | `getBreakPointList`(`List` startList) Gets a list of all the breakpoints set in the current application.
`public `List`` | `getBreakPointsForURI`(`URI` uri, `List` startList) Gets a list of all the breakpoints for a specified URI.
`public `IDebugData`` | `getDebugData`(`IProject` proj) Gets the `IDebugData` associated with project, `proj`.
`public int` | `getEnabledBreakpointCount`() gets the count of all the enabled breakpoints the DebugClient knows about.
`public `String`[]` | `getExtensions`() gets the list of extensions that we know about for debugging.
`public `URI`` | `getFile`(`String` className, `String` sourceName) does an exhaustive search to try to find a file.
`public `URI`` | `getFileFromClass`(`String` className) gets a file for a class name.
`public `URI`` | `getFileFromSource`(`String` sourceName) gets a file from a source name.
`public boolean` | `getLogging`(`String` loggingSet) determines whether the specified logging set is turned on, or off.
`public `String`[]` | `getLoggingOptions`() returns the list of logging options supported by this DebugClient.
`public `DebugSvc.ISourcePathElement`[]` | `getSourcePaths`() returns all the SourcePathElements we should look through to resolve a file.
`public `List`` | `getViewInfosForType`(`IDebugExpression` expression, boolean includeDefault) Searches all registered IDebugExpressionViews for ones that match the value type.
`public void` | `go`(`IProject` proj) passes through a call to `IDebugData.go` on the supplied `proj` argument.
`public boolean` | `hasBreakPoint`(`IDocument` file, int line) Determines whether a document has a breakpoint on a specific line.
`public void` | `pause`(`IProject` proj) Passes through a call to `IDebugData.pause` on the supplied `proj` argument.
`public void` | `removeBreakPoint`(`IDebugBreakPoint` breakPointToRemove) Removes a breakpoint from the VM and the file it is in.
`public void` | `removeBreakpointListener`(`DebugSvc.IBreakpointListener` bpl) removes a breakpoint listener that was added from addBreakpointListener(IBreakpointListener bpl).
`public void` | `removeBreakpointListener`(`URI` uri, `DebugSvc.IBreakpointListener` bpl) removes a breakpoint listener that was added from addBreakpointListener(URI uri, IBreakpointListener bpl).
`public void` | `removedDebugListener`(`DebugSvc.IDebugListener` dbl) removes a debug listener.
`public void` | `removePropertyChangeListener`(`String` name, `PropertyChangeListener` listener) Removes a PropertyChangeListener for a specific property, that was added via `DebugSvc.I.addPropertyChangeListener(String, PropertyChangeListener)```.
`public void` | `removePropertyChangeListener`(`PropertyChangeListener` listener) Removes a PropertyChangeListener from the listener list.
`public void` | `setCurrentDebugData`(`IDebugData` debugData) Sets the DebugData that is actively being debugged, null if no debugging sessions are currently active.
`public boolean` | `setLogging`(`String` loggingSet, boolean value) turns various logging options on and off.
`public void` | `start`(`IProject` proj) Passes through a call to `IDebugData.start` on the supplied `proj` argument.
`public void` | `stepInto`(`IProject` proj) Passes through a call to `IDebugData.stepInto` on the supplied `proj` argument.
`public void` | `stepOut`(`IProject` proj) Passes through a call to `IDebugData.stepOut` on the supplied `proj` argument.
`public void` | `stepOver`(`IProject` proj) Passes through a call to `IDebugData.stepOver` on the supplied `proj` argument.
`public void` | `stop`(`IProject` proj) Passes through a call to `IDebugData.stop` on the supplied `proj` argument.
`public void` | `toggleBreakPoint`(`IDocument` file, int line) Toggles a breakpoint on the current line.
`public void` | `toggleBreakPoint`(`IDocument` file, `IDocumentView` view, `Point` pt) Toggles a breakpoint in a design view.

## Method Detail

### addBreakPoint(IDebugBreakPoint) Method

    public void addBreakPoint(IDebugBreakPoint breakPoint)

Adds a breakpoint to the `IDebugClient`. This will add the breakpoint to the DebugClient's internal collections, set the breakpoint in the VM, and add a glyph to the file the breakpoint is in.

#### Parameters

breakPoint
  - the breakpoint you want to add.

### addBreakpointListener(DebugSvc.IBreakpointListener) Method

    public void addBreakpointListener(DebugSvc.IBreakpointListener bpl)

adds a breakpoint listener to a listen to all breakpoint changes. This will fire the appropriate event when any breakpoint is enable/disabled/added/removed

#### Parameters

bpl
  - the listener to recieve breakpoint events.

### addBreakpointListener(URI, DebugSvc.IBreakpointListener) Method

    public void addBreakpointListener(URI uri,
                                      DebugSvc.IBreakpointListener bpl)

adds a breakpoint listener to a given document. This will fire the appropriate event when any breakpoint within the specified document is enable/disabled/added/removed

#### Parameters

uri
  - the uri of the file to listen to.

bpl
  - the listener to recieve breakpoint events.

### addDebugListener(DebugSvc.IDebugListener) Method

    public void addDebugListener(DebugSvc.IDebugListener dbl)

adds a debug listener. This listener will be notified whenever the debug state changes.

#### Parameters

dbl
  the listener to be notified.

### addPropertyChangeListener(String, PropertyChangeListener) Method

    public void addPropertyChangeListener(String name,
                                          PropertyChangeListener listener)

Adds a PropertyChangeListener for a specific property.

#### Parameters

name
  the name of the property to listen on.

listener
  the object that gets notified when the property changes.

### addPropertyChangeListener(PropertyChangeListener) Method

    public void addPropertyChangeListener(PropertyChangeListener listener)

Adds a PropertyChangeListener to the listener list. The listener is registered for all properties.

#### Parameters

listener
  the object that will get notified when any property changes.

### breakpointHasChanged(IDebugBreakPoint) Method

    public void breakpointHasChanged(IDebugBreakPoint bp)

notifies all people listening on breakpoint events, that this breakpoint has changed in some way.

#### Parameters

bp
  - the breakpoint that has chagned.

### browseToSource(String) Method

    public URI browseToSource(String className)

Prompts the user to browse to the source for the given classname. Assuming the file's directory structure matches the class' package, this will also ask the user if the root should be added to the application's debug sourcepath

#### Parameters

className
  name of the class to find source for

#### Returns

null if the user cancels

### clearAllBreakpoints() Method

    public void clearAllBreakpoints()

Removes all the breakpoints the DebugClient knows about. Each breakpoint will be removed from all VMs as well as from all the files they are in.

### disableAllBreakpoints(boolean) Method

    public void disableAllBreakpoints(boolean fDisable)

disables or enables all breakpoints. Disabling breakpoints will cause them to still exist in the file and in the DebugClient's breakpoint collections, but the breakpoint will be removed from the VM. Enabling the breakpoint will re-add the breakpoint to the VM.

#### Parameters

fDisable
  - if true, this will disable all breakpoints if false, this will enable all breakpoints

### disableBreakpoint(IDebugBreakPoint, boolean) Method

    public void disableBreakpoint(IDebugBreakPoint bp,
                                  boolean fDisable)

disables or enables the specified breakpoint. Disabling the breakpoint will cause it to still exist in the file and in the DebugClient's breakpoint collections, but the breakpoint will be removed from the VM. Enabling the breakpoint will re-add the breakpoint to the VM.

#### Parameters

bp
  - the breakpoint to enable or disable.

fDisable
  - if true, this will take an enabled breakpoint and disable it if false, this will take a disabled breakpoint and enable it.

### getBreakpoint(int) Method

    public IDebugBreakPoint getBreakpoint(int id)

Gets a breakpoint specified by its unique id.

#### Parameters

id
  - the unique id of the breakpoint you are looking for.

#### Returns

the breakpoint corresponding to this id, or null if no such breakpoint exists.

### getBreakpoint(IDocument, int) Method

    public ISourceBreakPoint getBreakpoint(IDocument file,
                                           int line)

Gets a breakpoint specified by a file and line number.

#### Parameters

file
  - the file to look for the breakpoint in.

line
  - the line in the file to look for the breakpoint on.

#### Returns

the breakpoint on the line, or null if no such breakpoint exists.

### getBreakpointCount() Method

    public int getBreakpointCount()

gets the count of all the breakpoints the DebugClient knows about.

#### Returns

the number of breakpoints the DebugClient knows about.

### getBreakPointList(List) Method

    public List getBreakPointList(List startList)

Gets a list of all the breakpoints set in the current application. If a `startList` is passed in, this will add the breakpoints to the list and return it. Otherwise this will create a new list to populate.

#### Parameters

startList
  - the list in which to put the breakpoints. If this is null, a new list will be created that will then be used to return the breakpoints.

#### Returns

a list filled with `IDebugBreakpoint` objects refering to each breakpoint.

### getBreakPointsForURI(URI, List) Method

    public List getBreakPointsForURI(URI uri,
                                     List startList)

Gets a list of all the breakpoints for a specified URI. If a `startList` is passed in, this will add the breakpoints to the list and return it. Otherwise this will return a readonly copy of the internal breakpoint list.

#### Parameters

uri
  - the uri to return breakpoints for.

startList
  - the list to return the breakpoints in. If this is null, a new list will be created that will then be used to return the breakpoints.

#### Returns

a list filled with `IDebugBreakpoint` objects refering to each breakpoint.

### getDebugData(IProject) Method

    public IDebugData getDebugData(IProject proj)

Gets the `IDebugData` associated with project, `proj`.

#### Parameters

proj
  - this is the project to execute the command against. If this is null, the active project will be used.

#### Returns

the `IDebugData` interface assiciated with the project.

### getEnabledBreakpointCount() Method

    public int getEnabledBreakpointCount()

gets the count of all the enabled breakpoints the DebugClient knows about. This means any breakpoints that are disabled will not be counted in this number.

#### Returns

the number of breakpoints the DebugClient knows about.

### getExtensions() Method

    public String[] getExtensions()

gets the list of extensions that we know about for debugging. The IDE will be able to load files with any type of extension, but this is useful for cases where we need to narrow some searches.

#### Returns

the list of File extensions

### getFile(String, String) Method

    public URI getFile(String className,
                       String sourceName)

does an exhaustive search to try to find a file. You can give it both a className and a sourceName, in which case it will try to find the source file you specified, and if it can't find that will try to find the most appropriate file that could have created the class specified.

#### Parameters

className
  - the name of a Java class

sourceName
  - the name of a source file

#### Returns

the URI to the file that defines the source code.

### getFileFromClass(String) Method

    public URI getFileFromClass(String className)

gets a file for a class name. This will walk through all the normal file lookup code to find an actual file in the same manner we do when a breakpoint gets hit.

#### Parameters

className
  - the name of a Java class

#### Returns

the URI to the file that defines the source code.

### getFileFromSource(String) Method

    public URI getFileFromSource(String sourceName)

gets a file from a source name. This will walk through all the normal file lookup code to find an actual file in the same manner we do when a breakpoint gets hit.

#### Parameters

sourceName
  - the name of a source file. This will be the name in the .class file.

#### Returns

the URI to the file that defines the source code.

### getLogging(String) Method

    public boolean getLogging(String loggingSet)

determines whether the specified logging set is turned on, or off. The currently supported logging options are all returned from getLoggingOptions.

#### Parameters

loggingSet
  name of the logging set to query a value for.

#### Returns

true if the DebugData knows about the loggingSet and was able to turn it on or off; false if the DebugData does not know about the loggingSet.

### getLoggingOptions() Method

    public String[] getLoggingOptions()

returns the list of logging options supported by this DebugClient.

#### Returns

an array of options that get/setLogging will support.

### getSourcePaths() Method

    public DebugSvc.ISourcePathElement[] getSourcePaths()

returns all the SourcePathElements we should look through to resolve a file. These are defined in the *.work file.

#### Returns

an array of ISourcePathElements in the order they should be searched in.

### getViewInfosForType(IDebugExpression, boolean) Method

    public List getViewInfosForType(IDebugExpression expression,
                                    boolean includeDefault)

Searches all registered IDebugExpressionViews for ones that match the value type. Matches are then sorted and returned in priority order. All elements in list are instances of IDebugExpressionView.ViewInfo.

#### Parameters

expression
  the debug expression to look for.

includeDefault
  whether to look at the default views.

#### Returns

a `List``` of `IDebugExpressionView.ViewInfo```.

### go(IProject) Method

    public void go(IProject proj)

passes through a call to `IDebugData.go` on the supplied `proj` argument. If proj is null, this will be called on the current project.

#### Parameters

proj
  - this is the project to execute the command against. If this is null, the active project will be used.

### hasBreakPoint(IDocument, int) Method

    public boolean hasBreakPoint(IDocument file,
                                 int line)

Determines whether a document has a breakpoint on a specific line. Since breakpoints are global this will not verify that the `file` is in the current project.

#### Parameters

file
  - the file the breakpoint is associated with.

line
  - the line the breakpoint is associated with.

#### Returns

true if a breakpoint exists on the specified line in the specified file. false if there is no breakpoint on the specified line in the specified file, or if the specified file does not support `IDebugDriver` as a driver.

### pause(IProject) Method

    public void pause(IProject proj)

Passes through a call to `IDebugData.pause` on the supplied `proj` argument. If proj is null, this will be called on the current project.

#### Parameters

proj
  - this is the project to execute the command against. If this is null, the active project will be used.

### removeBreakPoint(IDebugBreakPoint) Method

    public void removeBreakPoint(IDebugBreakPoint breakPointToRemove)

Removes a breakpoint from the VM and the file it is in. This will make sure that each of the projects that has this breakpoint set will unset the breakpoint, the glyph will disappear, and the breakpoint will be taken out of the breakpoint collections.

#### Parameters

breakPointToRemove
  - the breakpoint to remove.

### removeBreakpointListener(DebugSvc.IBreakpointListener) Method

    public void removeBreakpointListener(DebugSvc.IBreakpointListener bpl)

removes a breakpoint listener that was added from addBreakpointListener(IBreakpointListener bpl).

#### Parameters

bpl
  - the listener to remove.

### removeBreakpointListener(URI, DebugSvc.IBreakpointListener) Method

    public void removeBreakpointListener(URI uri,
                                         DebugSvc.IBreakpointListener bpl)

removes a breakpoint listener that was added from addBreakpointListener(URI uri, IBreakpointListener bpl).

#### Parameters

uri
  - the uri of the file to remove from.

bpl
  - the listener to remove.

### removedDebugListener(DebugSvc.IDebugListener) Method

    public void removedDebugListener(DebugSvc.IDebugListener dbl)

removes a debug listener. This will remove a listener that was added via `DebugSvc.I.addDebugListener(DebugSvc.IDebugListener)```.

#### Parameters

dbl
  the listener to remove.

### removePropertyChangeListener(String, PropertyChangeListener) Method

    public void removePropertyChangeListener(String name,
                                             PropertyChangeListener listener)

Removes a PropertyChangeListener for a specific property, that was added via `DebugSvc.I.addPropertyChangeListener(String, PropertyChangeListener)```.

#### Parameters

name
  the name of the property to remove the listener from

listener
  the listener object to remove

### removePropertyChangeListener(PropertyChangeListener) Method

    public void removePropertyChangeListener(PropertyChangeListener listener)

Removes a PropertyChangeListener from the listener list. This removes a PropertyChangeListener that was registered for all properties, via the `DebugSvc.I.addPropertyChangeListener(PropertyChangeListener)```

#### Parameters

listener
  the listener object to remove.

### setCurrentDebugData(IDebugData) Method

    public void setCurrentDebugData(IDebugData debugData)

Sets the DebugData that is actively being debugged, null if no debugging sessions are currently active. Currently, only one debugging session at a time is allowed.

#### Parameters

debugData
  the DebugData that is currently being debugged

### setLogging(String, boolean) Method

    public boolean setLogging(String loggingSet,
                              boolean value)

turns various logging options on and off. The currently supported logging options are all returned from getLoggingOptions.

#### Parameters

loggingSet
  name of the logging set to turn on or off.

value
  true/false depending on whether logging should be turned on or off.

#### Returns

true if the DebugData knows about the loggingSet and was able to turn it on or off; false if the DebugData does not know about the loggingSet.

### start(IProject) Method

    public void start(IProject proj)

Passes through a call to `IDebugData.start` on the supplied `proj` argument. If proj is null, this will be called on the current project.

#### Parameters

proj
  - this is the project to execute the command against. If this is null, the active project will be used.

### stepInto(IProject) Method

    public void stepInto(IProject proj)

Passes through a call to `IDebugData.stepInto` on the supplied `proj` argument. If proj is null, this will be called on the current project.

#### Parameters

proj
  - this is the project to execute the command against. If this is null, the active project will be used.

### stepOut(IProject) Method

    public void stepOut(IProject proj)

Passes through a call to `IDebugData.stepOut` on the supplied `proj` argument. If proj is null, this will be called on the current project.

#### Parameters

proj
  - this is the project to execute the command against. If this is null, the active project will be used.

### stepOver(IProject) Method

    public void stepOver(IProject proj)

Passes through a call to `IDebugData.stepOver` on the supplied `proj` argument. If proj is null, this will be called on the current project.

#### Parameters

proj
  - this is the project to execute the command against. If this is null, the active project will be used.

### stop(IProject) Method

    public void stop(IProject proj)

Passes through a call to `IDebugData.stop` on the supplied `proj` argument. If proj is null, this will be called on the current project.

#### Parameters

proj
  - this is the project to execute the command against. If this is null, the active project will be used.

### toggleBreakPoint(IDocument, int) Method

    public void toggleBreakPoint(IDocument file,
                                 int line)

Toggles a breakpoint on the current line. If a breakpoint is already on that line, it will be removed. If there is no breakpoint on that line, one will be added. In order to call this function on an `IDocument` it needs to support the `IDebugDriver` driver. This call will not only add the breakpoint glyph to the `file` it will also set the breakpoint in any active debugging sessions.

#### Parameters

file
  - the file the breakpoint is associated with.

line
  - the line the breakpoint is associated with.

### toggleBreakPoint(IDocument, IDocumentView, Point) Method

    public void toggleBreakPoint(IDocument file,
                                 IDocumentView view,
                                 Point pt)

Toggles a breakpoint in a design view. When setting a breakpoing in a sourceview the version of this function with source/line information should be used. This call will not only add the breakpoint glyph to the `file` it will also set the breakpoint in any active debugging sessions.

#### Parameters

file
  - the file the breakpoint is associated with.

view
  - the Document view this is being set on

pt
  - the point on the view this is being set on. If this is null the breakpoint should be set on the currently selected area.