Spec-Zone .ru
спецификации, руководства, описания, API
|
public interface NotificationEmitter extends NotificationBroadcaster
Интерфейс, реализованный MBean, который испускает Уведомления. Это позволяет слушателю быть зарегистрированным в MBean как слушатель уведомления.
Когда MBean испускает уведомление, он рассматривает каждого слушателя, который был добавлен с addNotificationListener
и не впоследствии удаленный с removeNotificationListener
. Если фильтру предоставили того слушателя, и если фильтр isNotificationEnabled
метод возвращает false, слушатель игнорируется. Иначе, слушатель handleNotification
метод вызывают с уведомлением, так же как объектом handback, для которого обеспечили addNotificationListener
.
Если тот же самый слушатель добавляется не раз, это рассматривают так много раз, как это было добавлено. Часто полезно добавить того же самого слушателя с различными фильтрами или объектами handback.
Реализации этого интерфейса могут отличаться относительно потока, в котором вызывают методы фильтров и слушателей.
Если вызов метода фильтра или слушателя бросает Exception
, тогда то исключение не должно препятствовать тому, чтобы другие слушатели были вызваны. Однако, если вызов метода бросает Error
, тогда рекомендуется, чтобы обработка уведомления остановилась в той точке, и если возможно распространить Error
к отправителю уведомления это должно быть сделано.
Этот интерфейс должен использоваться новым кодом в предпочтении к NotificationBroadcaster
интерфейс.
Реализации этого интерфейса и NotificationBroadcaster
должно быть осторожным относительно синхронизации. В частности это не хорошая идея для реализации, чтобы содержать любые блокировки, в то время как это вызывает слушателя. Чтобы иметь дело с возможностью, что список слушателей мог бы измениться, в то время как уведомление диспетчеризируется, хорошая стратегия состоит в том, чтобы использовать a CopyOnWriteArrayList
для этого списка.
Модификатор и Тип | Метод и Описание |
---|---|
void |
removeNotificationListener(NotificationListener listener, NotificationFilter filter, Object handback)
Удаляет слушателя из этого MBean.
|
addNotificationListener, getNotificationInfo, removeNotificationListener
void removeNotificationListener(NotificationListener listener, NotificationFilter filter, Object handback) throws ListenerNotFoundException
Удаляет слушателя из этого MBean. У MBean должен быть слушатель, который точно соответствует данный listener
, filter
, и handback
параметры. Если есть больше чем один такой слушатель, только один удаляется.
filter
и handback
параметры могут быть нулем, если и только если они - нуль в слушателе, чтобы быть удаленными.
listener
- Слушатель, который был ранее добавлен к этому MBean.filter
- Фильтр, который был определен, когда слушатель был добавлен.handback
- handback, который был определен, когда слушатель был добавлен.ListenerNotFoundException
- Слушатель не регистрируется в MBean, или он не регистрируется в данном фильтре и handback.
Для дальнейшей ссылки API и документации разработчика, см.
Авторское право © 1993, 2011, Oracle и/или его филиалы. Все права защищены.