# Interface BreakpointRequest

All Superinterfaces:
  `EventRequest, Locatable, Mirror`

public interface BreakpointRequest extends EventRequest, Locatable
Identifies a `Location` in the target VM at which execution should be stopped. When an enabled BreakpointRequest is satisfied, an `event set` containing an `BreakpointEvent` will be placed on the `EventQueue` and the application is interrupted. The collection of existing breakpoints is managed by the `EventRequestManager`

Since:
  1.3
See Also:
  - `Location`
  - `BreakpointEvent`
  - `EventQueue`
  - `EventRequestManager`

- ## Field Summary

  ### Fields declared in interface EventRequest

  `SUSPEND_ALL, SUSPEND_EVENT_THREAD, SUSPEND_NONE`
  Modifier and Type
  Field
  Description
  `static final int`
  `SUSPEND_ALL`
  Suspend all threads when the event occurs
  `static final int`
  `SUSPEND_EVENT_THREAD`
  Suspend only the thread which generated the event when the event occurs
  `static final int`
  `SUSPEND_NONE`
  Suspend no threads when the event occurs

- ## Method Summary

  Modifier and Type
  Method
  Description
  `void`
  `addInstanceFilter(ObjectReference instance)`
  Restricts the events generated by this request to those in which the currently executing instance is the object specified.
  `void`
  `addThreadFilter(ThreadReference thread)`
  Restricts the events generated by this request to those in the given thread.
  `Location`
  `location()`
  Returns the location of the requested breakpoint.

  ### Methods declared in interface EventRequest

  `addCountFilter, disable, enable, getProperty, isEnabled, putProperty, setEnabled, setSuspendPolicy, suspendPolicy`
  Modifier and Type
  Method
  Description
  `void`
  `addCountFilter(int count)`
  Limit the requested event to be reported at most once after a given number of occurrences.
  `void`
  `disable()`
  Same as `setEnabled(false)`.
  `void`
  `enable()`
  Same as `setEnabled(true)`.
  `Object`
  `getProperty(Object key)`
  Returns the value of the property with the specified key.
  `boolean`
  `isEnabled()`
  Determines if this event request is currently enabled.
  `void`
  `putProperty(Object key, Object value)`
  Add an arbitrary key/value "property" to this request.
  `void`
  `setEnabled(boolean val)`
  Enables or disables this event request.
  `void`
  `setSuspendPolicy(int policy)`
  Determines the threads to suspend when the requested event occurs in the target VM.
  `int`
  `suspendPolicy()`
  Returns a value which describes the threads to suspend when the requested event occurs in the target VM.

  ### Methods declared in interface Mirror

  `toString, virtualMachine`
  Modifier and Type
  Method
  Description
  `String`
  `toString()`
  Returns a String describing this mirror
  `VirtualMachine`
  `virtualMachine()`
  Gets the VirtualMachine to which this Mirror belongs.

- ## Method Details

  - ### location

    Location location()
    Returns the location of the requested breakpoint.
    Specified by:
      `location` in interface `Locatable`
    Returns:
      the `Location` where this breakpoint has been set.

  - ### addThreadFilter

    void addThreadFilter(ThreadReference thread)
    Restricts the events generated by this request to those in the given thread.
    Parameters:
      `thread` - the thread to filter on.
    Throws:
      `InvalidRequestStateException` - if this request is currently enabled or has been deleted. Filters may be added only to disabled requests.

  - ### addInstanceFilter

    void addInstanceFilter(ObjectReference instance)
    Restricts the events generated by this request to those in which the currently executing instance is the object specified.

    Not all targets support this operation. Use `VirtualMachine.canUseInstanceFilters()` to determine if the operation is supported.

    Parameters:
      `instance` - the object which must be the current instance in order to pass this filter.
    Throws:
      `UnsupportedOperationException` - if the target virtual machine does not support this operation.
      `InvalidRequestStateException` - if this request is currently enabled or has been deleted. Filters may be added only to disabled requests.
    Since:
      1.4