Spec-Zone .ru
спецификации, руководства, описания, API
|
public class NotificationBroadcasterSupport extends Object implements NotificationEmitter
Обеспечивает реализацию NotificationEmitter
интерфейс. Это может использоваться в качестве класса высшего качества 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 уведомления и типа уведомления.
|
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 уведомления и типа уведомления. Может быть нуль, который эквивалентен пустому массиву.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 уведомления и типа уведомления. Может быть нуль, который эквивалентен пустому массиву.public void addNotificationListener(NotificationListener listener, NotificationFilter filter, Object handback)
addNotificationListener
в интерфейсе NotificationBroadcaster
listener
- Слушатель, чтобы получить уведомления.filter
- Объект фильтра. Если фильтр будет нулем, то никакая фильтрация не будет выполняться прежде, чем обработать уведомления.handback
- Непрозрачный объект, который будет отослан назад к слушателю, когда уведомление испускается. Этот объект не может использоваться объектом вещательной компании Уведомления. Это должно быть снова послано неизменное с уведомлением слушателю.IllegalArgumentException
- брошенный, если слушатель является нулем.removeNotificationListener(javax.management.NotificationListener)
public void removeNotificationListener(NotificationListener listener) throws ListenerNotFoundException
NotificationBroadcaster
removeNotificationListener
в интерфейсе NotificationBroadcaster
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
параметры могут быть нулем, если и только если они - нуль в слушателе, чтобы быть удаленными.
removeNotificationListener
в интерфейсе NotificationEmitter
listener
- Слушатель, который был ранее добавлен к этому MBean.filter
- Фильтр, который был определен, когда слушатель был добавлен.handback
- handback, который был определен, когда слушатель был добавлен.ListenerNotFoundException
- Слушатель не регистрируется в MBean, или он не регистрируется в данном фильтре и handback.public MBeanNotificationInfo[] getNotificationInfo()
NotificationBroadcaster
Возвращает указание массива, для каждого уведомления, которое этот MBean может отправить, имя класса Java уведомления и типа уведомления.
Это не недопустимо для MBean, чтобы отправить уведомления, не описанные в этом массиве. Однако, некоторые клиенты сервера MBean могут зависеть от массива, являющегося полным для их корректного функционирования.
getNotificationInfo
в интерфейсе NotificationBroadcaster
public 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 и документации разработчика, см.
Авторское право © 1993, 2011, Oracle и/или его филиалы. Все права защищены.