|
JavaTM Platform Standard Ed. 6 |
|||||||||
上一个类 下一个类 | 框架 无框架 | |||||||||
摘要: 嵌套 | 字段 | 构造方法 | 方法 | 详细信息: 字段 | 构造方法 | 方法 |
java.lang.Object javax.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,其中的每个侦听器都是使用给定 Executor 调用的。 |
|
NotificationBroadcasterSupport(Executor executor,
MBeanNotificationInfo... info)
使用关于可能发送的通知的信息构造一个 NotificationBroadcasterSupport,其中的每个侦听器都是使用给定 Executor 调用的。 |
|
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
调用的。在调用 sendNotification
时,如果使用 null NotificationFilter
添加了某个侦听器,或者如果 isNotificationEnabled
为正在发送的通知返回 true,则选择该侦听器。对 NotificationFilter.isNotificationEnabled
的调用发生在调用了 sendNotification
的线程中。然后使用调用 handleNotification
方法的命令为每个选定的侦听器调用 executor.execute
。此构造方法等效于 NotificationBroadcasterSupport(executor, null)
。
executor
- 由方法 sendNotification
用来发送每个通知的执行程序。如果该参数为 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
调用的。
在调用 sendNotification
时,如果使用 null NotificationFilter
添加了某个侦听器,或者如果 isNotificationEnabled
为正在发送的通知返回 true,则选择该侦听器。对 NotificationFilter.isNotificationEnabled
的调用发生在调用了 sendNotification
的线程中。然后使用调用 handleNotification
方法的命令为每个选定的侦听器调用 executor.execute
。
如果 info
数组不为空,则由该构造方法复制它,这类似于使用 info.clone()
,并且对 getNotificationInfo()
的每次调用都返回一个新副本。
executor
- 由方法 sendNotification
用来发送每个通知的执行程序。如果该参数为 null,则调用 sendNotification
的线程将调用 handleNotification
方法本身。info
- 一个数组,指示此 MBean 可能发送的每个通知、这些通知的 Java 类的名称和通知类型。该数组可以为 null,它等效于一个空数组。方法详细信息 |
---|
public void addNotificationListener(NotificationListener listener, NotificationFilter filter, Object handback)
NotificationBroadcaster
中的 addNotificationListener
listener
- 要接收通知的侦听器。filter
- 过滤器对象。如果 filter 为 null,则处理通知前不执行过滤。handback
- 发出通知时要发送到侦听器的不透明对象。Notification 广播者对象不能使用此对象。应该不作更改地将通知重新发送到侦听器。
IllegalArgumentException
- 如果 listener 为 null。removeNotificationListener(javax.management.NotificationListener)
public void removeNotificationListener(NotificationListener listener) throws ListenerNotFoundException
NotificationBroadcaster
复制的描述
NotificationBroadcaster
中的 removeNotificationListener
listener
- 以前添加到此 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
参数完全匹配的侦听器。如果有多个此类侦听器,则只移除一个侦听器。
当且仅当在要移除的侦听器中 filter
和 handback
参数为 null 时,这两个参数才可以为 null。
NotificationEmitter
中的 removeNotificationListener
listener
- 以前添加到此 MBean 中的侦听器。filter
- 添加侦听器时指定的过滤器。handback
- 添加侦听器时指定的回送。
ListenerNotFoundException
- 如果没有在该 MBean 中注册侦听器,或者没有用给定的过滤器和回送注册它。public MBeanNotificationInfo[] getNotificationInfo()
NotificationBroadcaster
复制的描述返回一个数组,指示此 MBean 可能发送的每个通知的 Java 类名和通知类型。
MBean 发送此数组中未描述的通知是合法的。但是,某些 MBean 服务器的客户端要想正常运行,可能要依赖完整的数组。
NotificationBroadcaster
中的 getNotificationInfo
public void sendNotification(Notification notification)
Executor
,则为每个选定的侦听器提供一项任务,以便将通知发送给该侦听器。
notification
- 要发送的通知。protected void handleNotification(NotificationListener listener, Notification notif, Object handback)
为了向侦听器发送通知,由该侦听器的 sendNotification
调用此方法。在子类中可重写此方法,以更改通知传递的行为,例如在一个单独的线程中传递该通知。
此方法的默认实现等效于
listener.handleNotification(notif, handback);
listener
- 要接收通知的侦听器。notif
- 传递给侦听器的通知。handback
- 添加侦听器时提供的回调对象。
|
JavaTM Platform Standard Ed. 6 |
|||||||||
上一个类 下一个类 | 框架 无框架 | |||||||||
摘要: 嵌套 | 字段 | 构造方法 | 方法 | 详细信息: 字段 | 构造方法 | 方法 |
版权所有 2007 Sun Microsystems, Inc. 保留所有权利。 请遵守许可证条款。另请参阅文档重新分发政策。