JavaTM 2 Platform
Standard Ed. 5.0

javax.management
类 NotificationBroadcasterSupport

java.lang.Object
  继承者 javax.management.NotificationBroadcasterSupport
所有已实现的接口:
NotificationBroadcaster, NotificationEmitter
直接已知子类:
JMXConnectorServer, Monitor, RelationService, Timer

public class NotificationBroadcasterSupport
extends Object
implements NotificationEmitter

提供 NotificationEmitter 接口的实现。这可以用作发送通知的 MBean 的超类。

并未指定通知调度模型是同步的还是异步的。也就是说,当某些线程调用 sendNotification 时,可以在该线程内调用每个侦听器的 NotificationListener.handleNotification 方法(同步模型),也可以在某个其他线程内调用这些方法(异步模型)。

应用程序不应依赖于通知调度是同步的还是异步的。因此:

从以下版本开始:
1.5

构造方法摘要
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
 

构造方法详细信息

NotificationBroadcasterSupport

public NotificationBroadcasterSupport()
方法详细信息

addNotificationListener

public void addNotificationListener(NotificationListener listener,
                                    NotificationFilter filter,
                                    Object handback)
添加一个侦听器。

指定者:
接口 NotificationBroadcaster 中的 addNotificationListener
参数:
listener - 要接收通知的侦听器。
filter - 过滤器对象。如果 filter 为 null,则处理通知前不执行过滤。
handback - 发出通知时要发送到侦听器的不透明对象。Notifica+ion 广播者对象不能使用此对象。应该不作更改并带有通知的情况下将其重新发送到侦听器。
抛出:
IllegalArgumentException - 如果 listener 为 null。
另请参见:
removeNotificationListener(javax.management.NotificationListener)

removeNotificationListener

public void removeNotificationListener(NotificationListener listener)
                                throws ListenerNotFoundException
从接口 NotificationBroadcaster 复制的描述
从此 MBean 移除一个侦听器。如果已向不同的回调对象或通知过滤器注册了该侦听器,则移除与该侦听器有关的所有项。

指定者:
接口 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)

removeNotificationListener

public void removeNotificationListener(NotificationListener listener,
                                       NotificationFilter filter,
                                       Object handback)
                                throws ListenerNotFoundException
从接口 NotificationEmitter 复制的描述

从此 MBean 中移除一个侦听器。该 MBean 必须有一个与给定 listenerfilterhandback 参数完全相符的侦听器。如果有多个此种侦听器,则只移除一个。

当且仅当 filterhandback 在要移除的侦听器中为 null 时,这两个参数才可以为 null。

指定者:
接口 NotificationEmitter 中的 removeNotificationListener
参数:
listener - 以前添加到此 MBean 的侦听器。
filter - 添加侦听器时所指定的过滤器。
handback - 添加侦听器时所指定的回调。
抛出:
ListenerNotFoundException - 如果侦听器未向该 MBean 注册,或者没有用给定的过滤器和回调注册它。

getNotificationInfo

public MBeanNotificationInfo[] getNotificationInfo()
从接口 NotificationBroadcaster 复制的描述

返回一个数组,指示此 MBean 可能发送的每个通知的 Java 类名和通知类型。

MBean 发送此数组中未描述的通知是合法的。但是,某些 MBean 服务器的客户端要想正常运行,可能要依赖于完整的数组。

指定者:
接口 NotificationBroadcaster 中的 getNotificationInfo
返回:
可能的通知数组。

sendNotification

public void sendNotification(Notification notification)
发送一个通知。

参数:
notification - 要发送的通知。

handleNotification

protected void handleNotification(NotificationListener listener,
                                  Notification notif,
                                  Object handback)

为了向侦听器发送通知,由该侦听器的 sendNotification 调用此方法。在子类中可重写此方法,以更改通知传递的行为,例如在一个单独的线程中传递该通知。

并不保证调用此方法的线程就是调用 sendNotification 的线程。

此方法的默认实现等效于

 listener.handleNotification(notif, handback);
 

参数:
listener - 将通知传递到的侦听器。
notif - 向侦听器所传递的通知。
handback - 添加侦听器时所提供的回调对象。

JavaTM 2 Platform
Standard Ed. 5.0

提交错误或意见
有关更多的 API 参考资料和开发人员文档,请参阅 Java 2 SDK SE 开发人员文档。该文档包含更详细的、面向开发人员的描述,以及总体概述、术语定义、使用技巧和工作代码示例。

版权所有 2004 Sun Microsystems, Inc. 保留所有权利。 请遵守许可证条款。另请参阅文档重新分发政策