Spec-Zone.ru › OpenJDK 27

Класс 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
Модификатор и тип Метод Описание
protected Object clone()
Создает и возвращает копию этого объекта.
boolean equals(Object obj)
Указывает, равен ли этот объект какому-либо другому объекту.
protected void finalize()
Устарело, подлежит удалению: этот элемент API может быть удален в будущей версии.
Финализация объявлена устаревшей и подлежит удалению в одном из будущих выпусков.
final Class<?> getClass()
Возвращает класс времени выполнения этого Object.
int hashCode()
Возвращает хеш-код этого объекта.
final void notify()
Пробуждает один поток, ожидающий на мониторе этого объекта.
final void notifyAll()
Пробуждает все потоки, ожидающие на мониторе этого объекта.
String toString()
Возвращает строковое представление объекта.
final void wait()
Заставляет текущий поток ожидать пробуждения, обычно в результате вызова notify или interrupt.
final void wait(long timeoutMillis)
Заставляет текущий поток ожидать пробуждения, обычно в результате вызова notify или interrupt, либо до истечения заданного промежутка реального времени.
final void wait(long timeoutMillis, int nanos)
Заставляет текущий поток ожидать пробуждения, обычно в результате вызова notify или interrupt, либо до истечения заданного промежутка реального времени.

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

NotificationBroadcasterSupport

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

NotificationBroadcasterSupport

public NotificationBroadcasterSupport(Executor executor)
Создает NotificationBroadcasterSupport, в котором каждый слушатель вызывается с использованием указанного Executor. При вызове sendNotification выбирается слушатель, добавленный с нулевым значением 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 выбирается слушатель, добавленный с нулевым значением 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 - объект фильтра. Если фильтр равен null, перед обработкой уведомлений фильтрация выполняться не будет.
handback - непрозрачный объект, который будет передан обратно слушателю при отправке уведомления. Объект не может использоваться объектом-рассыльщиком уведомлений. Он должен без изменений передаваться слушателю вместе с уведомлением.
Исключения:
IllegalArgumentException - выбрасывается, если слушатель равен null.
См. также:
  • removeNotificationListener(NotificationListener)

removeNotificationListener

public void removeNotificationListener(NotificationListener listener) throws ListenerNotFoundException
Описание скопировано из интерфейса: NotificationBroadcaster
Удаляет слушателя из этого MBean. Если слушатель был зарегистрирован с разными объектами обратной передачи или фильтрами уведомлений, будут удалены все записи, соответствующие этому слушателю.
Переопределяет:
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 - объект обратной передачи, указанный при добавлении слушателя.
Исключения:
ListenerNotFoundException - слушатель не зарегистрирован в MBean либо зарегистрирован с другим фильтром и объектом обратной передачи.

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 - объект обратной передачи, переданный при добавлении слушателя.

Сообщить об ошибке или предложить улучшение
Дополнительную справочную информацию по API и документацию для разработчиков см. в документации Java SE, содержащей более подробные описания для разработчиков, концептуальные обзоры, определения терминов, обходные решения и рабочие примеры кода. Другие версии.
Java является товарным знаком или зарегистрированным товарным знаком Oracle и/или ее дочерних компаний в США и других странах.
Авторское право © 1993, 2026, 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.

Spec-Zone.ru

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