# com.bea.ide.debug
DebugSvc Class

public class DebugSvc
extends `Object`

This is the service that allows the IDE to get debugging objects.

In order to register debugger views to be used in the locals, watches, and immediate windows, add the following to extension.xml:

`<extension-xml id="urn:com-bea-ide:debugExpressionViews">
<view priority="PRIORITY" valueType="VALUETYPE" description="DESCRIPTION"
class="VIEWCLASSNAME" matchesNulls="MATCHESNULLS" /> </extension-xml>`

PRIORITY is an integer and is used to determine which is the default view for a given type. The view that matches and has the lowest value for its priority will be chosen, unless the user has explicity set a specific view to be used as the default.
VALUETYPE is a string and is used to determine which views are valid for a particular value. It may be *, a class name or an interface name. * matches all types. If the value is null but its declared type is known (as in, the variable is declared to be a java.lang.StringBuffer but its value is null), the declared type will be used to choose a view. However, the declared type is not known in all cases.
DESCRIPTION is a string that will be shown to the user when the list of matching views is displayed.
VIEWCLASSNAME is a string of the fully qualified class name of the view. See `IDebugExpressionView``` for information about implementing a customized view.
MATCHESNULL is a boolean ("true" or "false") as to whether the view can be used to display null values of a particular type. This attribute is optional, and defaults to false.

If there are exceptions thrown when instantiating a debugger view, they will be logged to the ide.log file, and the matching view with the next highest priority will be instantiated. Common causes of problems include classpath issues that prevent the class from being found by the classloader, not having a public no-arg constructor, or having an exception thrown in the view's constructor.

Hierarchy
  `Object`
  `DebugSvc`

## Nested Class Summary

`public static interface` | `DebugSvc.I` the interface retuned for the debugging services.
`public static interface` | `DebugSvc.IBreakpointListener` The listener interface that can be passed to `DebugSvc.I.addBreakpointListener`and `DebugSvc.I.removeBreakpointListener`to listen on breakpoints being added, removed, disabled or changed.````
`public static interface` | `DebugSvc.IDebugListener` The listener interface that can be passed to `DebugSvc.I.addDebugListener` or `DebugSvc.I.removeDebugListener` to listen to debug state changes.
`public static interface` | `DebugSvc.ISourcePathElement` an interface implemented by elements in the search path list.
`public static class` | `DebugSvc.NullDebugSvc` An implementation of `DebugSvc.I` that does nothing.

## Field Summary

`protected static `DebugSvc.I`` | `instance` The cached instance of `DebugSvc.I```.
`public static final `DebugSvc.I`` | `NULL_DEBUG_SVC` The empty DebugSvc implementation.
`public static final `String`` | `PROP_BREAKPOINTS` The PROP_BREAKPOINTS change event will be called when a breakpoint is either added or removed.
`public static final `String`` | `PROP_BREAKPOINTS_ENABLED` The PROP_BREAKPOINTS_ENABLED change listener will be called whenever the number of enabled breakpoints changes, or the number of disabled breakpoints changes.
`public static final `String`` | `PROP_CURRENT_DEBUG_DATA` Property name for the `DebugData` that's currently in use.

## Constructor Summary

DebugSvc()

## Method Summary

`public static `DebugSvc.I`` | `get`() static method that gets the debugger services interface.

Methods from class `java.lang.`Object``
`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

## Field Detail

### instance

    protected static DebugSvc.I instance

  The cached instance of `DebugSvc.I```.

### NULL_DEBUG_SVC

    public static final DebugSvc.I NULL_DEBUG_SVC

  The empty DebugSvc implementation. If there is no Debug Svc, this will be the object returned from DebugSvc.get()

### PROP_BREAKPOINTS

    public static final String PROP_BREAKPOINTS

  The PROP_BREAKPOINTS change event will be called when a breakpoint is either added or removed. In the case of an add, the newValue parameter will be the breakpoint, and the oldValue parameter will be null. In the case of a remove, the newValue parameter will be null, and the oldValue parameter will be the breakpoint that is being removed.

### PROP_BREAKPOINTS_ENABLED

    public static final String PROP_BREAKPOINTS_ENABLED

  The PROP_BREAKPOINTS_ENABLED change listener will be called whenever the number of enabled breakpoints changes, or the number of disabled breakpoints changes. The event will be called with the number of enabled breakpoints as param1, and the number of total breakpoints as the second parameter.

### PROP_CURRENT_DEBUG_DATA

    public static final String PROP_CURRENT_DEBUG_DATA

  Property name for the `DebugData` that's currently in use.

## Constructor Detail

### DebugSvc

    public DebugSvc()

## Method Detail

### get() Method

    public static DebugSvc.I get()

static method that gets the debugger services interface. If there is no instance, this will return `NULL_DEBUG_SVC`, an instance that will indicate a lack of debugging support.