Класс 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 |
Создает NotificationBroadcasterSupport, в котором каждый слушатель вызывается с использованием указанного Executor. |
NotificationBroadcasterSupport |
Создает NotificationBroadcasterSupport со сведениями об уведомлениях, которые могут отправляться, и вызывает каждого слушателя с использованием указанного Executor. |
NotificationBroadcasterSupport |
Создает NotificationBroadcasterSupport со сведениями об уведомлениях, которые могут отправляться. |
Краткое описание методов
| Модификатор и тип | Метод | Описание |
|---|---|---|
void |
addNotificationListener |
Добавляет слушателя. |
MBeanNotificationInfo[] |
getNotificationInfo() |
Возвращает массив, содержащий для каждого уведомления, которое может отправлять этот MBean, имя класса Java уведомления и тип уведомления. |
protected void |
handleNotification |
Этот метод вызывается методом sendNotification для каждого слушателя, чтобы отправить ему уведомление. |
void |
removeNotificationListener |
Удаляет слушателя из этого MBean. |
void |
removeNotificationListener |
Удаляет слушателя из этого MBean. |
void |
sendNotification |
Отправляет уведомление. |
Методы, объявленные в классе Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait | Модификатор и тип | Метод | Описание |
|---|---|---|
protected Object |
clone() |
Создает и возвращает копию этого объекта. |
boolean |
equals |
Указывает, равен ли этот объект какому-либо другому объекту. |
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 |
Заставляет текущий поток ожидать пробуждения, обычно в результате вызова notify или interrupt, либо до истечения заданного промежутка реального времени. |
final void |
wait |
Заставляет текущий поток ожидать пробуждения, обычно в результате вызова notify или interrupt, либо до истечения заданного промежутка реального времени. |
Подробное описание конструкторов
NotificationBroadcasterSupport
public NotificationBroadcasterSupport()
NotificationBroadcasterSupport(null, null).NotificationBroadcasterSupport
public NotificationBroadcasterSupport(Executor executor)
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
public void removeNotificationListener(NotificationListener listener) throws ListenerNotFoundException
NotificationBroadcaster- Переопределяет:
-
removeNotificationListenerв интерфейсеNotificationBroadcaster - Параметры:
-
listener- слушатель, ранее добавленный в этот MBean. - Исключения:
-
ListenerNotFoundException- слушатель не зарегистрирован в MBean. - См. также:
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- объект обратной передачи, переданный при добавлении слушателя.
© 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.