|
Spec-Zone .ru
спецификации, руководства, описания, API
|
public class NotificationBroadcasterSupport extends Object implements NotificationEmitter
Обеспечивает реализацию NotificationEmitter интерфейс. Это может использоваться в качестве class высшего качества MBean, который отправляет уведомления.
По умолчанию, уведомление диспетчеризируют модель, синхронно. Таким образом, когда поток вызывает sendNotification, NotificationListener.handleNotification метод каждого слушателя вызывают в пределах того потока. Можно переопределить это значение по умолчанию, переопределяя handleNotification в подклассе, или передавая Исполнителя конструктору.
Если вызов метода фильтра или слушателя бросает Exception, тогда то исключение не препятствует тому, чтобы другие слушатели были вызваны. Однако, если вызов метода фильтра или Executor.execute или handleNotification (когда нет Excecutor определяется), бросает Error, тогда это Error распространяется к вызывающей стороне sendNotification.
Отдалите слушателей, добавило использование JMX Удаленный 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 class уведомления и типа уведомления.
|
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)
Отправляет уведомление.
|
public NotificationBroadcasterSupport()
NotificationBroadcasterSupport(null, null).public NotificationBroadcasterSupport(Executor executor)
Executor. Когда sendNotification вызывается, слушатель выбирается, если это было добавлено с нулем NotificationFilter, или если isNotificationEnabled возвращает true для отправляемого уведомления. Звонок NotificationFilter.isNotificationEnabled имеет место в потоке, который вызывал sendNotification. Затем, для каждого выбранного слушателя, executor.execute вызывается с командой, которая вызывает handleNotification метод. Этот конструктор эквивалентен NotificationBroadcasterSupport(executor, null).executor - исполнитель используется методом sendNotification отправить каждое уведомление. Если это - нуль, вызов потока sendNotification вызовет handleNotification метод непосредственно.public NotificationBroadcasterSupport(MBeanNotificationInfo... info)
Создает NotificationBroadcasterSupport с информацией об уведомлениях, которые могут быть отправлены. Каждый слушатель вызывается потоком, отправляющим уведомление. Этот конструктор эквивалентен NotificationBroadcasterSupport(null, info).
Если info массив не пуст, тогда он клонируется конструктором как будто info.clone(), и каждый звонок getNotificationInfo() возвращает нового клона.
info - указание массива, для каждого уведомления этот MBean может передаться, имя Java class уведомления и типа уведомления. Может быть нуль, который эквивалентен пустому массиву.public NotificationBroadcasterSupport(Executor executor, MBeanNotificationInfo... info)
Создает NotificationBroadcasterSupport с информацией об уведомлениях, которые могут быть отправлены, и где каждый слушатель вызывается, используя данный Executor.
Когда sendNotification вызывается, слушатель выбирается, если это было добавлено с нулем NotificationFilter, или если isNotificationEnabled возвращает true для отправляемого уведомления. Звонок NotificationFilter.isNotificationEnabled имеет место в потоке, который вызывал sendNotification. Затем, для каждого выбранного слушателя, executor.execute вызывается с командой, которая вызывает handleNotification метод.
Если info массив не пуст, тогда он клонируется конструктором как будто info.clone(), и каждый звонок getNotificationInfo() возвращает нового клона.
executor - исполнитель используется методом sendNotification отправить каждое уведомление. Если это - нуль, вызов потока sendNotification вызовет handleNotification метод непосредственно.info - указание массива, для каждого уведомления этот MBean может передаться, имя Java class уведомления и типа уведомления. Может быть нуль, который эквивалентен пустому массиву.public void addNotificationListener(NotificationListener listener, NotificationFilter filter, Object handback)
addNotificationListener в интерфейсе NotificationBroadcasterlistener - Слушатель, чтобы получить уведомления.filter - Объект фильтра. Если фильтр будет нулем, то никакая фильтрация не будет выполняться прежде, чем обработать уведомления.handback - Непрозрачный объект, который будет отослан назад к слушателю, когда уведомление испускается. Этот объект не может использоваться объектом вещательной компании Уведомления. Это должно быть снова послано неизменное с уведомлением слушателю.IllegalArgumentException - брошенный, если слушатель является нулем.removeNotificationListener(javax.management.NotificationListener)public void removeNotificationListener(NotificationListener listener) throws ListenerNotFoundException
NotificationBroadcasterremoveNotificationListener в интерфейсе NotificationBroadcasterlistener - Слушатель, который был ранее добавлен к этому 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 параметры могут быть нулем, если и только если они - нуль в слушателе, чтобы быть удаленными.
removeNotificationListener в интерфейсе NotificationEmitterlistener - Слушатель, который был ранее добавлен к этому MBean.filter - Фильтр, который был определен, когда слушатель был добавлен.handback - handback, который был определен, когда слушатель был добавлен.ListenerNotFoundException - Слушатель не регистрируется в MBean, или он не регистрируется в данном фильтре и handback.public MBeanNotificationInfo[] getNotificationInfo()
NotificationBroadcasterВозвращает указание массива, для каждого уведомления, которое этот MBean может отправить, имя Java class уведомления и типа уведомления.
Это не недопустимо для MBean, чтобы отправить уведомления, не описанные в этом массиве. Однако, некоторые клиенты сервера MBean могут зависеть от массива, являющегося полным для их корректного функционирования.
getNotificationInfo в интерфейсе NotificationBroadcasterpublic void sendNotification(Notification notification)
Executor был определен в конструкторе, этому дадут одну задачу на выбранного слушателя поставить уведомление тому слушателю.notification - Уведомление, чтобы передаться.protected void handleNotification(NotificationListener listener, Notification notif, Object handback)
Этим методом вызывают sendNotification для каждого слушателя, чтобы отправить уведомление тому слушателю. Это может быть переопределено в подклассах, чтобы изменить поведение поставки уведомления, например поставить уведомление в отдельном потоке.
Реализация по умолчанию этого метода эквивалентна
listener.handleNotification(notif, handback);
listener - слушатель, которому поставляется уведомление.notif - уведомление, поставляемое слушателю.handback - объект handback, который был предоставлен, когда слушатель был добавлен.
Для дальнейшей ссылки API и документации разработчика, см. Java Документация SE. Та документация содержит более подробные, предназначенные разработчиком описания, с концептуальными краткими обзорами, определениями сроков, обходных решений, и рабочих примеров кода.
Авторское право © 1993, 2013, Oracle и/или его филиалы. Все права защищены.
Проект сборка-b92