Spec-Zone.ru › OpenJDK 25

Класс 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 каждого прослушивателя. Это поведение по умолчанию можно переопределить, переопределив handleNotification в подклассе или передав Executor конструктору.

Если при вызове метода фильтра или прослушивателя возникает Exception, это исключение не препятствует вызову других прослушивателей. Однако если при вызове метода фильтра, Executor.execute или handleNotification (если Executor не указан) возникает Error, то этот Error передается вызывающему кода sendNotification.

Удаленные прослушиватели, добавленные с помощью JMX Remote API (см. JMXConnector), обычно не вызываются синхронно. То есть после возврата sendNotification нет гарантии, что какие-либо удаленные прослушиватели уже получили уведомление.

Начиная с:
1.5

Краткое описание конструкторов

Конструктор Описание
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)
Отправляет уведомление.

Методы, объявленные в классе Object

clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait

Подробное описание конструкторов

NotificationBroadcasterSupport

public NotificationBroadcasterSupport()
Создает NotificationBroadcasterSupport, в котором каждый прослушиватель вызывается потоком, отправляющим уведомление. Этот конструктор эквивалентен NotificationBroadcasterSupport(null, null).

NotificationBroadcasterSupport

public NotificationBroadcasterSupport(Executor executor)
Создает NotificationBroadcasterSupport, в котором для вызова каждого прослушивателя используется указанный Executor. При вызове sendNotification прослушиватель выбирается, если он был добавлен с null-значением NotificationFilter или если isNotificationEnabled возвращает true для отправляемого уведомления. Вызов NotificationFilter.isNotificationEnabled выполняется в потоке, вызвавшем sendNotification. Затем для каждого выбранного прослушивателя вызывается executor.execute с командой, вызывающей метод handleNotification. Этот конструктор эквивалентен NotificationBroadcasterSupport(executor, null).
Параметры:
executor — исполнитель, используемый методом sendNotification для отправки каждого уведомления. Если он равен null, поток, вызвавший sendNotification, сам вызовет метод handleNotification.
Начиная с:
1.6

NotificationBroadcasterSupport

public NotificationBroadcasterSupport(MBeanNotificationInfo... info)

Создает NotificationBroadcasterSupport со сведениями об уведомлениях, которые могут быть отправлены. Каждый прослушиватель вызывается потоком, отправляющим уведомление. Этот конструктор эквивалентен NotificationBroadcasterSupport(null, info).

Если массив info не пуст, конструктор создает его клон, как если бы был вызван info.clone(), а каждый вызов getNotificationInfo() возвращает новый клон.

Параметры:
info — массив, содержащий для каждого уведомления, которое может отправить этот MBean, имя класса Java уведомления и тип уведомления. Может быть равен null, что эквивалентно пустому массиву.
Начиная с:
1.6

NotificationBroadcasterSupport

public NotificationBroadcasterSupport(Executor executor, MBeanNotificationInfo... info)

Создает NotificationBroadcasterSupport со сведениями об уведомлениях, которые могут быть отправлены, и использует указанный Executor для вызова каждого прослушивателя.

При вызове sendNotification прослушиватель выбирается, если он был добавлен с null-значением NotificationFilter или если isNotificationEnabled возвращает true для отправляемого уведомления. Вызов NotificationFilter.isNotificationEnabled выполняется в потоке, вызвавшем sendNotification. Затем для каждого выбранного прослушивателя вызывается executor.execute с командой, вызывающей метод handleNotification.

Если массив info не пуст, конструктор создает его клон, как если бы был вызван info.clone(), а каждый вызов getNotificationInfo() возвращает новый клон.

Параметры:
executor — исполнитель, используемый методом sendNotification для отправки каждого уведомления. Если он равен null, поток, вызвавший sendNotification, сам вызовет метод handleNotification.
info — массив, содержащий для каждого уведомления, которое может отправить этот MBean, имя класса Java уведомления и тип уведомления. Может быть равен null, что эквивалентно пустому массиву.
Начиная с:
1.6

Подробное описание методов

addNotificationListener

public void addNotificationListener(NotificationListener listener, NotificationFilter filter, Object handback)
Добавляет прослушиватель.
Определено в:
addNotificationListener в интерфейсе NotificationBroadcaster
Параметры:
listener — прослушиватель для получения уведомлений.
filter — объект фильтра. Если filter равен null, перед обработкой уведомлений фильтрация выполняться не будет.
handback — непрозрачный объект, который будет передан обратно прослушивателю при отправке уведомления. Этот объект не может использоваться объектом Notification broadcaster. Его следует без изменений повторно передавать прослушивателю вместе с уведомлением.
Вызывает исключение:
IllegalArgumentException — если прослушиватель равен null.
См. также:
  • removeNotificationListener(NotificationListener)

removeNotificationListener

public void removeNotificationListener(NotificationListener listener) throws ListenerNotFoundException
Описание скопировано из интерфейса: NotificationBroadcaster
Удаляет прослушиватель из этого MBean. Если прослушиватель зарегистрирован с разными объектами handback или фильтрами уведомлений, будут удалены все записи, соответствующие этому прослушивателю.
Определено в:
removeNotificationListener в интерфейсе NotificationBroadcaster
Параметры:
listener — прослушиватель, ранее добавленный в этот MBean.
Вызывает исключение:
ListenerNotFoundException — прослушиватель не зарегистрирован в MBean.
См. также:
  • NotificationBroadcaster.addNotificationListener(NotificationListener, NotificationFilter, Object)
  • NotificationEmitter.removeNotificationListener(NotificationListener, NotificationFilter, Object)

removeNotificationListener

public void removeNotificationListener(NotificationListener listener, NotificationFilter filter, Object handback) throws ListenerNotFoundException
Описание скопировано из интерфейса: NotificationEmitter

Удаляет прослушиватель из этого MBean. MBean должен содержать прослушиватель, точно соответствующий заданным параметрам listener, filter и handback. Если таких прослушивателей несколько, удаляется только один.

Параметры filter и handback могут быть равны null только в том случае, если они равны null у удаляемого прослушивателя.

Определено в:
removeNotificationListener в интерфейсе NotificationEmitter
Параметры:
listener — прослушиватель, ранее добавленный в этот MBean.
filter — фильтр, указанный при добавлении прослушивателя.
handback — объект handback, указанный при добавлении прослушивателя.
Вызывает исключение:
ListenerNotFoundException — прослушиватель не зарегистрирован в MBean либо зарегистрирован с другим фильтром или объектом handback.

getNotificationInfo

public MBeanNotificationInfo[] getNotificationInfo()
Описание скопировано из интерфейса: NotificationBroadcaster

Возвращает массив, содержащий для каждого уведомления, которое может отправить этот MBean, имя класса Java уведомления и тип уведомления.

MBean не запрещено отправлять уведомления, не описанные в этом массиве. Однако для правильной работы некоторым клиентам сервера MBean может потребоваться, чтобы массив был полным.

Определено в:
getNotificationInfo в интерфейсе NotificationBroadcaster
Возвращает:
массив возможных уведомлений.

sendNotification

public void sendNotification(Notification notification)
Отправляет уведомление. Если в конструкторе был указан Executor, ему будет передана отдельная задача для каждого выбранного прослушивателя, чтобы доставить уведомление этому прослушивателю.
Параметры:
notification — отправляемое уведомление.

handleNotification

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

Этот метод вызывается методом sendNotification для каждого прослушивателя, чтобы отправить ему уведомление. Его можно переопределить в подклассах, чтобы изменить поведение при доставке уведомлений, например доставлять уведомление в отдельном потоке.

Реализация этого метода по умолчанию эквивалентна

listener.handleNotification(notif, handback);
Параметры:
listener — прослушиватель, которому доставляется уведомление.
notif — уведомление, доставляемое прослушивателю.
handback — объект handback, указанный при добавлении прослушивателя.

Сообщить об ошибке или предложить улучшение
Дополнительные справочные материалы по API и документацию для разработчиков см. в разделе Документация Java SE, содержащем более подробные описания для разработчиков, концептуальные обзоры, определения терминов, обходные решения и рабочие примеры кода. Другие версии.
Java является товарным знаком или зарегистрированным товарным знаком Oracle и/или ее аффилированных лиц в США и других странах.
Авторское право © 1993, 2025, Oracle и/или ее аффилированные лица, 500 Oracle Parkway, Redwood Shores, CA 94065 USA.
Все права защищены. Использование регулируется условиями лицензии и политикой распространения документации.

© 1993, 2025, Oracle and/or its affiliates. All rights reserved.
Documentation extracted from Debian's OpenJDK Development Kit package.
Licensed under the GNU General Public License, version 2, with the Classpath Exception.
Various third party code in OpenJDK is licensed under different licenses (see Debian package).
Java and OpenJDK are trademarks or registered trademarks of Oracle and/or its affiliates.
https://docs.oracle.com/en/java/javase/25/docs/api/java.management/javax/management/NotificationBroadcasterSupport.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API