Package org.eclipse.jdt.debug.core

# Interface IJavaBreakpoint

All Superinterfaces:
  `org.eclipse.core.runtime.IAdaptable`, `org.eclipse.debug.core.model.IBreakpoint`, `org.eclipse.debug.core.model.ITriggerPoint`

All Known Subinterfaces:
  `IJavaClassPrepareBreakpoint`, `IJavaExceptionBreakpoint`, `IJavaLineBreakpoint`, `IJavaMethodBreakpoint`, `IJavaMethodEntryBreakpoint`, `IJavaPatternBreakpoint`, `IJavaStratumLineBreakpoint`, `IJavaTargetPatternBreakpoint`, `IJavaWatchpoint`

public interface IJavaBreakpoint extends org.eclipse.debug.core.model.IBreakpoint, org.eclipse.debug.core.model.ITriggerPoint
A breakpoint specific to the Java debug model. A Java breakpoint supports:

- a hit count
- a suspend policy that determines if the entire VM or a single thread is suspended when hit
- a thread filter to restrict a breakpoint to a specific thread within a VM
- an installed property that indicates a breakpoint was successfully installed in a VM

Since:
  2.0
Restriction:
  This interface is not intended to be implemented by clients.
Restriction:
  This interface is not intended to be extended by clients.

## Field Summary

Fields
Modifier and Type
Field
Description
`static final int`
`SUSPEND_THREAD`
Default suspend policy constant indicating a breakpoint will suspend only the thread in which it occurred.
`static final int`
`SUSPEND_VM`
Suspend policy constant indicating a breakpoint will suspend the target VM when hit.

### Fields inherited from interface org.eclipse.debug.core.model.IBreakpoint

`BREAKPOINT_MARKER, ENABLED, ID, LINE_BREAKPOINT_MARKER, PERSISTED, REGISTERED`

### Fields inherited from interface org.eclipse.debug.core.model.ITriggerPoint

`TRIGGERPOINT`

## Method Summary

Modifier and Type
Method
Description
`void`
`addBreakpointListener(String identifier)`
Adds the breakpoint listener extension with specified identifier to this breakpoint.
`void`
`addInstanceFilter(IJavaObject object)`
Adds the given object to the list of objects in which this breakpoint is restricted to suspend execution.
`String[]`
`getBreakpointListeners()`
Returns a collection of identifiers of breakpoint listener extensions registered for this breakpoint, possibly empty.
`int`
`getHitCount()`
Returns this breakpoint's hit count or, -1 if this breakpoint does not have a hit count.
`IJavaObject[]`
`getInstanceFilters()`
Returns the current set of active instance filters.
`int`
`getSuspendPolicy()`
Returns the suspend policy used by this breakpoint, one of `SUSPEND_VM` or `SUSPEND_THREAD`.
`IJavaThread`
`getThreadFilter(IJavaDebugTarget target)`
Returns the thread in the given target in which this breakpoint is enabled or `null` if this breakpoint is enabled in all threads in the given target.
`IJavaThread[]`
`getThreadFilters()`
Returns all thread filters set on this breakpoint.
`String`
`getTypeName()`
Returns the fully qualified name of the type this breakpoint is located in, or `null` if this breakpoint is not located in a specific type - for example, a pattern breakpoint.
`boolean`
`isInstalled()`
Returns whether this breakpoint is installed in at least one debug target.
`boolean`
`removeBreakpointListener(String identifier)`
Removes the breakpoint listener extension with the specified identifier from this breakpoint and returns whether the listener was removed.
`void`
`removeInstanceFilter(IJavaObject object)`
Removes the given object from the list of objects in which this breakpoint is restricted to suspend execution.
`void`
`removeThreadFilter(IJavaDebugTarget target)`
Removes this breakpoint's thread filter in the given target, if any.
`void`
`setHitCount(int count)`
Sets the hit count attribute of this breakpoint.
`void`
`setSuspendPolicy(int suspendPolicy)`
Sets whether all threads in the target VM will be suspended when this breakpoint is hit.
`void`
`setThreadFilter(IJavaThread thread)`
Restricts this breakpoint to suspend only in the given thread when encountered in the given thread's target.
`boolean`
`supportsInstanceFilters()`
Returns whether this breakpoints supports instance filters.
`boolean`
`supportsThreadFilters()`
Returns whether this breakpoints supports thread filters.

### Methods inherited from interface org.eclipse.core.runtime.IAdaptable

`getAdapter`

### Methods inherited from interface org.eclipse.debug.core.model.IBreakpoint

`delete, getMarker, getModelIdentifier, isEnabled, isPersisted, isRegistered, setEnabled, setMarker, setPersisted, setRegistered`

### Methods inherited from interface org.eclipse.debug.core.model.ITriggerPoint

`isTriggerPoint, setTriggerPoint`

## Field Details

### SUSPEND_VM

static final int SUSPEND_VM
Suspend policy constant indicating a breakpoint will suspend the target VM when hit.

See Also:
  - Constant Field Values

### SUSPEND_THREAD

static final int SUSPEND_THREAD
Default suspend policy constant indicating a breakpoint will suspend only the thread in which it occurred.

See Also:
  - Constant Field Values

## Method Details

### isInstalled

boolean isInstalled() throws org.eclipse.core.runtime.CoreException
Returns whether this breakpoint is installed in at least one debug target.

Returns:
  whether this breakpoint is installed
Throws:
  `org.eclipse.core.runtime.CoreException` - if unable to access the property on this breakpoint's underlying marker

### getTypeName

String getTypeName() throws org.eclipse.core.runtime.CoreException
Returns the fully qualified name of the type this breakpoint is located in, or `null` if this breakpoint is not located in a specific type - for example, a pattern breakpoint.

Returns:
  the fully qualified name of the type this breakpoint is located in, or `null`
Throws:
  `org.eclipse.core.runtime.CoreException` - if unable to access the property from this breakpoint's underlying marker

### getHitCount

int getHitCount() throws org.eclipse.core.runtime.CoreException
Returns this breakpoint's hit count or, -1 if this breakpoint does not have a hit count.

Returns:
  this breakpoint's hit count, or -1
Throws:
  `org.eclipse.core.runtime.CoreException` - if unable to access the property from this breakpoint's underlying marker

### setHitCount

void setHitCount(int count) throws org.eclipse.core.runtime.CoreException
Sets the hit count attribute of this breakpoint. If this breakpoint is currently disabled and the hit count is set greater than -1, this breakpoint is automatically enabled.

Parameters:
  `count` - the new hit count
Throws:
  `org.eclipse.core.runtime.CoreException` - if unable to set the property on this breakpoint's underlying marker

### setSuspendPolicy

void setSuspendPolicy(int suspendPolicy) throws org.eclipse.core.runtime.CoreException
Sets whether all threads in the target VM will be suspended when this breakpoint is hit. When `SUSPEND_VM` the target VM is suspended, and when `SUSPEND_THREAD` only the thread in which this breakpoint occurred is suspended.

Parameters:
  `suspendPolicy` - one of `SUSPEND_VM` or `SUSPEND_THREAD`
Throws:
  `org.eclipse.core.runtime.CoreException` - if unable to set the property on this breakpoint's underlying marker

### getSuspendPolicy

int getSuspendPolicy() throws org.eclipse.core.runtime.CoreException
Returns the suspend policy used by this breakpoint, one of `SUSPEND_VM` or `SUSPEND_THREAD`.

Returns:
  one of `SUSPEND_VM` or `SUSPEND_THREAD`
Throws:
  `org.eclipse.core.runtime.CoreException` - if unable to access the property from this breakpoint's underlying marker

### setThreadFilter

void setThreadFilter(IJavaThread thread) throws org.eclipse.core.runtime.CoreException
Restricts this breakpoint to suspend only in the given thread when encountered in the given thread's target. A breakpoint can only be restricted to one thread per target. Any previous thread filter for the same target is lost. A thread filter is not persisted across workbench invocations.

Parameters:
  `thread` - the thread to add the filter to
Throws:
  `org.eclipse.core.runtime.CoreException` - if unable to set the thread filter

### removeThreadFilter

void removeThreadFilter(IJavaDebugTarget target) throws org.eclipse.core.runtime.CoreException
Removes this breakpoint's thread filter in the given target, if any. Has no effect if this breakpoint does not have a filter in the given target.

Parameters:
  `target` - the target whose thread filter will be removed
Throws:
  `org.eclipse.core.runtime.CoreException` - if unable to remove the thread filter

### getThreadFilter

IJavaThread getThreadFilter(IJavaDebugTarget target) throws org.eclipse.core.runtime.CoreException
Returns the thread in the given target in which this breakpoint is enabled or `null` if this breakpoint is enabled in all threads in the given target.

Parameters:
  `target` - the debug target
Returns:
  the thread in the given target that this breakpoint is enabled for
Throws:
  `org.eclipse.core.runtime.CoreException` - if unable to determine this breakpoint's thread filter

### getThreadFilters

IJavaThread[] getThreadFilters() throws org.eclipse.core.runtime.CoreException
Returns all thread filters set on this breakpoint.

Returns:
  the threads that this breakpoint is restricted to
Throws:
  `org.eclipse.core.runtime.CoreException` - if unable to determine this breakpoint's thread filters

### addInstanceFilter

void addInstanceFilter(IJavaObject object) throws org.eclipse.core.runtime.CoreException
Adds the given object to the list of objects in which this breakpoint is restricted to suspend execution. Has no effect if the object has already been added. Note that clients should first ensure that a breakpoint supports instance filters.

Note: This implementation will add more than one filter. However, if there is more than one instance filter for a debug target, the breakpoint will never be hit in that target, as the current context cannot be two different instances at the same time.

Parameters:
  `object` - instance filter to add
Throws:
  `org.eclipse.core.runtime.CoreException` - if unable to add the given instance filter
Since:
  2.1

### removeInstanceFilter

void removeInstanceFilter(IJavaObject object) throws org.eclipse.core.runtime.CoreException
Removes the given object from the list of objects in which this breakpoint is restricted to suspend execution. Has no effect if the object has not yet been added as an instance filter.

Parameters:
  `object` - instance filter to remove
Throws:
  `org.eclipse.core.runtime.CoreException` - if unable to remove the given instance filter
Since:
  2.1

### supportsInstanceFilters

boolean supportsInstanceFilters()
Returns whether this breakpoints supports instance filters.

Returns:
  whether this breakpoints supports instance filters
Since:
  3.0

### getInstanceFilters

IJavaObject[] getInstanceFilters() throws org.eclipse.core.runtime.CoreException
Returns the current set of active instance filters.

Returns:
  the current set of active instance filters.
Throws:
  `org.eclipse.core.runtime.CoreException` - if unable to retrieve the list
Since:
  2.1

### supportsThreadFilters

boolean supportsThreadFilters()
Returns whether this breakpoints supports thread filters.

Returns:
  whether this breakpoints supports thread filters
Since:
  3.0

### getBreakpointListeners

String[] getBreakpointListeners() throws org.eclipse.core.runtime.CoreException
Returns a collection of identifiers of breakpoint listener extensions registered for this breakpoint, possibly empty.

Returns:
  breakpoint listener extension identifiers registered on this breakpoint
Throws:
  `org.eclipse.core.runtime.CoreException` - if unable to retrieve the collection
Since:
  3.5

### addBreakpointListener

void addBreakpointListener(String identifier) throws org.eclipse.core.runtime.CoreException
Adds the breakpoint listener extension with specified identifier to this breakpoint. Has no effect if an identical listener is already registered.

Parameters:
  `identifier` - breakpoint listener extension identifier
Throws:
  `org.eclipse.core.runtime.CoreException` - if unable to add the listener
Since:
  3.5

### removeBreakpointListener

boolean removeBreakpointListener(String identifier) throws org.eclipse.core.runtime.CoreException
Removes the breakpoint listener extension with the specified identifier from this breakpoint and returns whether the listener was removed.

Parameters:
  `identifier` - breakpoint listener extension identifier
Returns:
  whether the listener was removed
Throws:
  `org.eclipse.core.runtime.CoreException` - if an error occurs removing the listener
Since:
  3.5