# Class BaseNotificationBroadcaster

java.lang.Object
org.apache.tomcat.util.modeler.BaseNotificationBroadcaster

All Implemented Interfaces:
  `NotificationBroadcaster`

public class BaseNotificationBroadcaster extends Object implements NotificationBroadcaster
Implementation of `NotificationBroadcaster` for attribute change notifications. This class is used by `BaseModelMBean` to handle notifications of attribute change events to interested listeners.

Author:
  Craig R. McClanahan, Costin Manolache

- ## Field Summary

  Fields
  Modifier and Type
  Field
  Description
  `protected ArrayList<org.apache.tomcat.util.modeler.BaseNotificationBroadcasterEntry>`
  `entries`
  The set of registered `BaseNotificationBroadcasterEntry` entries.

- ## Constructor Summary

  Constructors
  Constructor
  Description
  `BaseNotificationBroadcaster()`

- ## Method Summary

  Modifier and Type
  Method
  Description
  `void`
  `addNotificationListener(NotificationListener listener, NotificationFilter filter, Object handback)`
  Add a notification event listener to this MBean.
  `MBeanNotificationInfo[]`
  `getNotificationInfo()`
  Return an `MBeanNotificationInfo` object describing the notifications sent by this MBean.
  `void`
  `removeNotificationListener(NotificationListener listener)`
  Remove a notification event listener from this MBean.
  `void`
  `sendNotification(Notification notification)`
  Send the specified notification to all interested listeners.

  ### Methods inherited from class java.lang.Object

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

- ## Field Details

  - ### entries

    protected ArrayList<org.apache.tomcat.util.modeler.BaseNotificationBroadcasterEntry> entries
    The set of registered `BaseNotificationBroadcasterEntry` entries.

- ## Constructor Details

  - ### BaseNotificationBroadcaster

    public BaseNotificationBroadcaster()

- ## Method Details

  - ### addNotificationListener

    public void addNotificationListener(NotificationListener listener, NotificationFilter filter, Object handback) throws IllegalArgumentException
    Add a notification event listener to this MBean.
    Specified by:
      `addNotificationListener` in interface `NotificationBroadcaster`
    Parameters:
      `listener` - Listener that will receive event notifications
      `filter` - Filter object used to filter event notifications actually delivered, or `null` for no filtering
      `handback` - Handback object to be sent along with event notifications
    Throws:
      `IllegalArgumentException` - if the listener parameter is null

  - ### getNotificationInfo

    public MBeanNotificationInfo[] getNotificationInfo()
    Return an `MBeanNotificationInfo` object describing the notifications sent by this MBean.
    Specified by:
      `getNotificationInfo` in interface `NotificationBroadcaster`

  - ### removeNotificationListener

    public void removeNotificationListener(NotificationListener listener) throws ListenerNotFoundException
    Remove a notification event listener from this MBean.
    Specified by:
      `removeNotificationListener` in interface `NotificationBroadcaster`
    Parameters:
      `listener` - The listener to be removed (any and all registrations for this listener will be eliminated)
    Throws:
      `ListenerNotFoundException` - if this listener is not registered in the MBean

  - ### sendNotification

    public void sendNotification(Notification notification)
    Send the specified notification to all interested listeners.
    Parameters:
      `notification` - The notification to be sent