public interface EventRequest extends Mirror
BreakpointRequest
や ExceptionRequest
があります。有効な要求が存在するイベントが発生すると、EventSet
が EventQueue
に置かれます。既存のイベント要求のコレクションは、EventRequestManager
によって管理されます。
イベント要求のために生成されるイベントの数は、フィルタを使って制御できます。フィルタは、イベントがイベントキューに置かれる前に満たす必要がある追加制約を提供します。ExceptionRequest.addClassFilter(java.lang.String classPattern)
などのフィルタ追加メソッドを複数回呼び出すことによって、複数のフィルタを使用できます。フィルタはイベントに一度に 1 つ追加されます (イベントが無効のときのみ)。複数のフィルタは、カットオフ、かつ要求に追加された順序で適用されます。すべてのフィルタを満たすイベントだけがイベントキューに置かれます。
利用可能なフィルタのセットは、イベント要求に応じて異なります。フィルタの例を示します。
ターゲット VM が切断されていて、VMDisconnectEvent
が EventQueue
から読み出されたか読み出せる場合は、EventRequest
をパラメータとして取る EventRequest
上のメソッドは VMDisconnectedException
をスローします。
EventRequest
をパラメータとして取る EventRequest
上のメソッドは、ターゲット VM のメモリーが不足した場合に VMOutOfMemoryException
をスローします。
BreakpointEvent
, EventQueue
, EventRequestManager
修飾子と型 | フィールドと説明 |
---|---|
static int |
SUSPEND_ALL
イベントの発生時に、すべてのスレッドを中断します。
|
static int |
SUSPEND_EVENT_THREAD
イベントの発生時に、イベントを生成したスレッドだけを中断します。
|
static int |
SUSPEND_NONE
イベントの発生時に、どのスレッドも中断しません。
|
修飾子と型 | メソッドと説明 |
---|---|
void |
addCountFilter(int count)
要求されたイベントが報告される回数を最大で、指定された回数発生したあと 1 回に制限します。
|
void |
disable()
と同じ。 |
void |
enable()
と同じ。 |
Object |
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 回かぎりのイベントを要求するには、このメソッドをカウント 1 で呼び出せばよい。
カウントが 0 に達したあとは、この要求内の続くフィルタが適用される。それらのフィルタがいずれもイベントを抑制しない場合、そのイベントはレポートされる。そうでない場合、イベントはレポートされない。どちらの場合にも、この要求に対して、それ以降のイベントがレポートされることはない。
count
- イベントを生成する前の発生回数。InvalidRequestStateException
- この要求が現在有効になっている場合、または削除されている場合。フィルタは無効な要求にだけ追加できる。IllegalArgumentException
- count
が 1 より小さい場合。void setSuspendPolicy(int policy)
SUSPEND_ALL
を使用します (デフォルト)。イベントを生成したスレッドだけを中断する場合は SUSPEND_EVENT_THREAD
を使用します。スレッドを中断しない場合は、SUSPEND_NONE
を使用します。
イベントに基づくスレッドの中断は、明示的に要求された中断と同じ機能です。詳細は、ThreadReference.suspend()
および VirtualMachine.suspend()
を参照してください。
policy
- 選択された中断ポリシー。InvalidRequestStateException
- この要求が現在有効になっている場合、または削除されている場合。中断ポリシーは無効な要求にだけ設定できる。IllegalArgumentException
- policy 引数に不正な値が含まれている場合。int suspendPolicy()
SUSPEND_ALL
、SUSPEND_EVENT_THREAD
、または SUSPEND_NONE
です。void putProperty(Object key, Object value)
get/putProperty
メソッドは、インスタンスごとの小規模なマップへのアクセスを提供します。これを Properties
と混同しないでください。
value が null の場合、このメソッドはプロパティーを削除します。
Object getProperty(Object key)
putProperty(java.lang.Object, java.lang.Object)
で追加されたプロパティーだけが null 以外の値を返します。putProperty(java.lang.Object, java.lang.Object)
Copyright © 1999, 2013, Oracle and/or its affiliates. All rights reserved.