|
JavaTM Platform Standard Ed. 6 |
|||||||||
| 前のクラス 次のクラス | フレームあり フレームなし | |||||||||
| 概要: 入れ子 | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド | |||||||||
java.lang.Objectjavax.management.NotificationBroadcasterSupport
public class NotificationBroadcasterSupport
NotificationEmitter インタフェースの実装を提供します。これは、通知を送信する MBean のスーパークラスとして使用可能です。
デフォルトでは、通知ディスパッチモデルは同期的です。つまり、スレッドが sendNotification を呼び出すと、そのスレッド内で各リスナーの NotificationListener.handleNotification メソッドが呼び出されます。このデフォルトをオーバーライドするには、サブクラス内で handleNotification をオーバーライドするか、executor をコンストラクタに渡します。
フィルタまたはリスナーのメソッド呼び出しにより Exception がスローされる場合、ほかのリスナーの呼び出しがその例外により妨げられることはありません。ただし、フィルタ、Executor.execute、または handleNotification (Excecutor が指定されていない場合) のメソッド呼び出しにより Error がスローされる場合、この Error は sendNotification の呼び出し側に送られます。
通常、JMX Remote API (「JMXConnector」を参照) を使って追加されたリモートリスナーは、同期的には呼び出されません。つまり、sendNotification の終了時点では、リモートリスナーが通知を受け取ったかどうかは保証されません。
| コンストラクタの概要 | |
|---|---|
NotificationBroadcasterSupport()
NotificationBroadcasterSupport を構築します。 |
|
NotificationBroadcasterSupport(Executor executor)
NotificationBroadcasterSupport を構築します。 |
|
NotificationBroadcasterSupport(Executor executor,
MBeanNotificationInfo... info)
送信可能な通知に関する情報を使って、NotificationBroadcasterSupport を構築します。 |
|
NotificationBroadcasterSupport(MBeanNotificationInfo... info)
送信可能な通知に関する情報を使って、NotificationBroadcasterSupport を構築します。 |
|
| メソッドの概要 | |
|---|---|
void |
addNotificationListener(NotificationListener listener,
NotificationFilter filter,
Object handback)
リスナーを追加します。 |
MBeanNotificationInfo[] |
getNotificationInfo()
この MBean が送信する可能性のある各通知について、その通知の Java クラス名と通知型を示す配列を返します。 |
protected void |
handleNotification(NotificationListener listener,
Notification notif,
Object handback)
このメソッドは、リスナーに通知を送信するため、 sendNotification によって呼び出されます。 |
void |
removeNotificationListener(NotificationListener listener)
この MBean からリスナーを削除します。 |
void |
removeNotificationListener(NotificationListener listener,
NotificationFilter filter,
Object handback)
この MBean からリスナーを削除します。 |
void |
sendNotification(Notification notification)
通知を送信します。 |
| クラス java.lang.Object から継承されたメソッド |
|---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
| コンストラクタの詳細 |
|---|
public NotificationBroadcasterSupport()
NotificationBroadcasterSupport(null, null) と同等です。
public NotificationBroadcasterSupport(Executor executor)
Executor を使って呼び出されます。null の NotificationFilter を使ってリスナーが追加されたか、送信中の通知に対して isNotificationEnabled が true を返す場合、sendNotification の呼び出し時にリスナーが選択されます。sendNotificationを呼び出したスレッド内で、NotificationFilter.isNotificationEnabled の呼び出しが実行されます。次に、選択したリスナーごとに、handleNotification メソッドを呼び出すコマンドを使って executor.execute が呼び出されます。このコンストラクタは、NotificationBroadcasterSupport(executor, null) と同等です。
executor - sendNotification メソッドにより、
各通知の送信に使用される executor。null の場合、sendNotification を呼び出すスレッドにより
handleNotification メソッド自体が呼び出されるpublic NotificationBroadcasterSupport(MBeanNotificationInfo... info)
送信可能な通知に関する情報を使って、NotificationBroadcasterSupport を構築します。各リスナーは、通知を送信するスレッドにより呼び出されます。このコンストラクタは、NotificationBroadcasterSupport(null, info) と同等です。
info 配列が空ではない場合、コンストラクタにより、info.clone() によるのと同様にこれが複製されます。getNotificationInfo() を呼び出すたびに、新しい複製が返されます。
info - この MBean が送信する可能性のある各通知について、その通知の Java クラス名と通知型を示す配列。null の場合、
空の配列と同等
public NotificationBroadcasterSupport(Executor executor,
MBeanNotificationInfo... info)
送信可能な通知に関する情報を使って、NotificationBroadcasterSupport を構築します。各リスナーは、指定した Executor を使って呼び出されます。
null の NotificationFilter を使ってリスナーが追加されたか、送信中の通知に対して isNotificationEnabled が true を返す場合、sendNotification の呼び出し時にリスナーが選択されます。sendNotification を呼び出したスレッド内で、NotificationFilter.isNotificationEnabled の呼び出しが実行されます。次に、選択したリスナーごとに、handleNotification メソッドを呼び出すコマンドを使って executor.execute が呼び出されます。
info 配列が空ではない場合、コンストラクタにより、info.clone() によるのと同様にこれが複製されます。getNotificationInfo() を呼び出すたびに、新しい複製が返されます。
executor - sendNotification メソッドが
各通知の送信に使用する executor。null の場合、
sendNotification を呼び出すスレッドにより
handleNotification メソッド自体が呼び出されるinfo - 通知の Java クラス名と通知型を示す配列。
この MBean が通知を送信するたびに、
配列が示される。null の場合、
空の配列と同等| メソッドの詳細 |
|---|
public void addNotificationListener(NotificationListener listener,
NotificationFilter filter,
Object handback)
NotificationBroadcaster 内の addNotificationListenerlistener - 通知を受け取るリスナーfilter - フィルタオブジェクト。フィルタが null の場合、
通知処理の前にフィルタは適用されないhandback - 通知の発行時にリスナーに送信される
不透明なオブジェクト。Notification ブロードキャスタオブジェクトは、
このオブジェクトを使用できない。このオブジェクトは、手を加えない状態で、
通知とともにリスナーへ送り返されなければならない
IllegalArgumentException - リスナーが null の場合removeNotificationListener(javax.management.NotificationListener)
public void removeNotificationListener(NotificationListener listener)
throws ListenerNotFoundException
NotificationBroadcaster の記述:
NotificationBroadcaster 内の removeNotificationListenerlistener - 以前にこの MBean に追加された
リスナー
ListenerNotFoundException - リスナーが MBean に
登録されていない場合NotificationBroadcaster.addNotificationListener(javax.management.NotificationListener, javax.management.NotificationFilter, java.lang.Object),
NotificationEmitter.removeNotificationListener(javax.management.NotificationListener, javax.management.NotificationFilter, java.lang.Object)
public void removeNotificationListener(NotificationListener listener,
NotificationFilter filter,
Object handback)
throws ListenerNotFoundException
NotificationEmitter の記述:この MBean からリスナーを削除します。MBean は、指定された listener、filter、および handback パラメータと正確に一致するリスナーを持っている必要があります。該当するリスナーが複数存在する場合、そのうちの 1 つだけが削除されます。
削除されるリスナー内で null が指定されている場合、filter および handback パラメータは null になります。
NotificationEmitter 内の removeNotificationListenerlistener - 以前にこの MBean に追加された
リスナーfilter - リスナーの追加時に指定された
フィルタhandback - リスナーの追加時に指定された
ハンドバック
ListenerNotFoundException - リスナーが MBean に
登録されていない場合、または指定されたフィルタおよびハンドバックで
登録されていない場合public MBeanNotificationInfo[] getNotificationInfo()
NotificationBroadcaster の記述:この MBean が送信する可能性のある各通知について、その通知の Java クラス名と通知型を示す配列を返します。
この配列に記述されていない通知を MBean が送信しても、不正ではありません。ただし一部の MBean サーバークライアントは、正しく機能するために、作成される配列に依存する場合があります。
NotificationBroadcaster 内の getNotificationInfopublic void sendNotification(Notification notification)
Executor がコンストラクタ内で指定された場合、選択したリスナーに通知を配信するため、リスナーごとに 1 つのタスクが割り当てられます。
notification - 送信する通知
protected void handleNotification(NotificationListener listener,
Notification notif,
Object handback)
このメソッドは、リスナーに通知を送信するため、sendNotification によって呼び出されます。通知の配信方法を変更する場合、たとえば通知を別々のスレッドで配信する場合などは、サブクラス内でオーバーライドできます。
このメソッドのデフォルト実装は、以下と同等です。
listener.handleNotification(notif, handback);
listener - 通知の配信先
リスナーnotif - リスナーに配信される通知handback - リスナーの追加時に指定された
ハンドバックオブジェクト
|
JavaTM Platform Standard Ed. 6 |
|||||||||
| 前のクラス 次のクラス | フレームあり フレームなし | |||||||||
| 概要: 入れ子 | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド | |||||||||
Copyright 2006 Sun Microsystems, Inc. All rights reserved. Use is subject to license terms. Documentation Redistribution Policy も参照してください。