public interface EventRequest extends Mirror
BreakpointRequest
и ExceptionRequest
. Когда событие имеет место, для которого включенный запрос присутствует, EventSet
будет помещен в EventQueue
. Набором существующих запросов события управляют EventRequestManager
. Числом событий, сгенерированных для запроса события, можно управлять через фильтры. Фильтры обеспечивают дополнительные ограничения, которые должно удовлетворить событие прежде, чем оно будет помещено в очередь событий. Многократные фильтры могут использоваться, делая множественные вызовы, чтобы фильтровать дополнительные методы такой как ExceptionRequest.addClassFilter(java.lang.String classPattern)
. Фильтры добавляются к событию по одному только, в то время как событие отключается. Многократные фильтры применяются с СОКРАЩЕНИЕМ, И, в порядке оно было добавлено к запросу. Только события, которые удовлетворяют все фильтры, помещаются в конечном счете очередь.
Набор доступных фильтров зависит от запроса события, некоторые примеры фильтров:
Любой метод на EventRequest
который берет EventRequest
поскольку параметр может бросить VMDisconnectedException
если целевой VM разъединяется и VMDisconnectEvent
был или доступен, чтобы быть считанным из EventQueue
.
Любой метод на EventRequest
который берет EventRequest
поскольку параметр может бросить VMOutOfMemoryException
если целевой VM исчерпал память.
BreakpointEvent
, EventQueue
, EventRequestManager
Модификатор и Тип | Поле и Описание |
---|---|
static int |
SUSPEND_ALL
Приостановите все потоки, когда событие имеет место
|
static int |
SUSPEND_EVENT_THREAD
Приостановите только поток, который генерировал событие, когда событие имеет место
|
static int |
SUSPEND_NONE
Не приостановите потоки, когда событие имеет место
|
Модификатор и Тип | Метод и Описание |
---|---|
void |
addCountFilter(int count)
Ограничьте требуемое событие, о котором сообщат самое большее однажды после данного числа возникновений.
|
void |
disable()
То же самое как
. |
void |
enable()
То же самое как
. |
Объект |
getProperty(Object key)
Возвращает значение свойства с указанным ключом.
|
boolean |
isEnabled()
Определяет, включается ли этот запрос события в настоящий момент.
|
void |
putProperty(Object key, Object value)
Добавьте произвольный ключ/значение "свойство" к этому запросу.
|
void |
setEnabled(boolean val)
Включает или отключает этот запрос события.
|
void |
setSuspendPolicy(int policy)
Определяет потоки, чтобы приостановить, когда требуемое событие имеет место в целевом VM.
|
int |
suspendPolicy()
Возвращает значение, которое описывает потоки, чтобы приостановить, когда требуемое событие имеет место в целевом VM.
|
toString, virtualMachine
static final int SUSPEND_NONE
static final int SUSPEND_EVENT_THREAD
static final int SUSPEND_ALL
boolean isEnabled()
true
если включено; false
иначе.void setEnabled(boolean val)
EventRequestManager.breakpointRequests()
.val
- true
если запрос события должен быть включен; false
иначе.InvalidRequestStateException
- если этот запрос был удален.IllegalThreadStateException
- если это - StepRequest, val
true
, и поток, названный в запросе, умер.void enable()
setEnabled(true)
.InvalidRequestStateException
- если этот запрос был удален.IllegalThreadStateException
- если это - StepRequest, и поток, названный в запросе, умер.void disable()
setEnabled(false)
.InvalidRequestStateException
- если этот запрос был удален.void addCountFilter(int count)
count - 1
времена этот фильтр достигаются. Чтобы запросить одноразовое событие, вызовите этот метод с количеством 1. Как только количество достигает 0, любые последующие фильтры в этом запросе применяются. Если ни один из тех фильтров не заставляет событие быть подавленным, о событии сообщают. Иначе, о событии не сообщают. В любом случае о последующих событиях никогда не сообщают для этого запроса.
count
- число ocurrences прежде, чем генерировать событие.InvalidRequestStateException
- если этот запрос в настоящий момент включается или был удален. Фильтры могут быть добавлены только к отключенным запросам.IllegalArgumentException
- если count
меньше чем один.void setSuspendPolicy(int policy)
SUSPEND_ALL
приостановить все потоки в целевом VM (значение по умолчанию). Использовать SUSPEND_EVENT_THREAD
приостановить только поток, который генерировал событие. Использовать SUSPEND_NONE
не приостановить потоки. У приостановок потока через события есть та же самая функциональность как явно требуемые приостановки. См. ThreadReference.suspend()
и VirtualMachine.suspend()
для деталей.
policy
- выбранные приостанавливают политику.InvalidRequestStateException
- если этот запрос в настоящий момент включается или был удален. Приостановите политику, может только быть установлен в отключенных запросах.IllegalArgumentException
- если параметр политики содержит недопустимое значение.int suspendPolicy()
SUSPEND_ALL
, SUSPEND_EVENT_THREAD
, или SUSPEND_NONE
.void putProperty(Object key, Object value)
get/putProperty
методы обеспечивают доступ к маленькой карте на экземпляр. Это не должно быть перепутано с Properties
.
Если значение будет нулем, то этот метод удалит свойство.
getProperty(java.lang.Object)
Object getProperty(Object key)
putProperty(java.lang.Object, java.lang.Object)
возвратит ненулевое значение.putProperty(java.lang.Object, java.lang.Object)
Авторское право © 1999, 2013, Oracle и/или его филиалы. Все права защищены.
Проект сборка-b92