# Class Notification

java.lang.Object
java.util.EventObject
javax.management.Notification

All Implemented Interfaces:
  `Serializable`

Direct Known Subclasses:
  `AttributeChangeNotification, JMXConnectionNotification, MBeanServerNotification, MonitorNotification, RelationNotification, TimerNotification`

public class Notification extends EventObject

The Notification class represents a notification emitted by an MBean. It contains a reference to the source MBean: if the notification has been forwarded through the MBean server, and the original source of the notification was a reference to the emitting MBean object, then the MBean server replaces it by the MBean's ObjectName. If the listener has registered directly with the MBean, this is either the object name or a direct reference to the MBean.

It is strongly recommended that notification senders use the object name rather than a reference to the MBean object as the source.

The serialVersionUID of this class is `-7516092053498031989L`.

Since:
  1.5
See Also:
  - Serialized Form

- ## Field Summary

  Fields
  Modifier and Type
  Field
  Description
  `protected Object`
  `source`
  This field hides the `EventObject.source` field in the parent class to make it non-transient and therefore part of the serialized form.

- ## Constructor Summary

  Constructors
  Constructor
  Description
  `Notification(String type, Object source, long sequenceNumber)`
  Creates a Notification object.
  `Notification(String type, Object source, long sequenceNumber, long timeStamp)`
  Creates a Notification object.
  `Notification(String type, Object source, long sequenceNumber, long timeStamp, String message)`
  Creates a Notification object.
  `Notification(String type, Object source, long sequenceNumber, String message)`
  Creates a Notification object.

- ## Method Summary

  Modifier and Type
  Method
  Description
  `String`
  `getMessage()`
  Get the notification message.
  `long`
  `getSequenceNumber()`
  Get the notification sequence number.
  `long`
  `getTimeStamp()`
  Get the notification timestamp.
  `String`
  `getType()`
  Get the notification type.
  `Object`
  `getUserData()`
  Get the user data.
  `void`
  `setSequenceNumber(long sequenceNumber)`
  Set the notification sequence number.
  `void`
  `setSource(Object source)`
  Sets the source.
  `void`
  `setTimeStamp(long timeStamp)`
  Set the notification timestamp.
  `void`
  `setUserData(Object userData)`
  Set the user data.
  `String`
  `toString()`
  Returns a String representation of this notification.

  ### Methods declared in class EventObject

  `getSource`
  Modifier and Type
  Method
  Description
  `Object`
  `getSource()`
  The object on which the Event initially occurred.

  ### Methods declared in class Object

  `clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait`
  Modifier and Type
  Method
  Description
  `protected Object`
  `clone()`
  Creates and returns a copy of this object.
  `boolean`
  `equals(Object obj)`
  Indicates whether some other object is "equal to" this one.
  `protected void`
  `finalize()`
  Deprecated, for removal: This API element is subject to removal in a future version.
  Finalization is deprecated and subject to removal in a future release.
  `final Class<?>`
  `getClass()`
  Returns the runtime class of this `Object`.
  `int`
  `hashCode()`
  Returns a hash code value for this object.
  `final void`
  `notify()`
  Wakes up a single thread that is waiting on this object's monitor.
  `final void`
  `notifyAll()`
  Wakes up all threads that are waiting on this object's monitor.
  `final void`
  `wait()`
  Causes the current thread to wait until it is awakened, typically by being notified or interrupted.
  `final void`
  `wait(long timeoutMillis)`
  Causes the current thread to wait until it is awakened, typically by being notified or interrupted, or until a certain amount of real time has elapsed.
  `final void`
  `wait(long timeoutMillis, int nanos)`
  Causes the current thread to wait until it is awakened, typically by being notified or interrupted, or until a certain amount of real time has elapsed.

- ## Field Details

  - ### source

    protected Object source

    This field hides the `EventObject.source` field in the parent class to make it non-transient and therefore part of the serialized form.

- ## Constructor Details

  - ### Notification

    public Notification(String type, Object source, long sequenceNumber)
    Creates a Notification object. The notification timeStamp is set to the current date.
    Parameters:
      `type` - The notification type.
      `source` - The notification source.
      `sequenceNumber` - The notification sequence number within the source object.

  - ### Notification

    public Notification(String type, Object source, long sequenceNumber, String message)
    Creates a Notification object. The notification timeStamp is set to the current date.
    Parameters:
      `type` - The notification type.
      `source` - The notification source.
      `sequenceNumber` - The notification sequence number within the source object.
      `message` - The detailed message.

  - ### Notification

    public Notification(String type, Object source, long sequenceNumber, long timeStamp)
    Creates a Notification object.
    Parameters:
      `type` - The notification type.
      `source` - The notification source.
      `sequenceNumber` - The notification sequence number within the source object.
      `timeStamp` - The notification emission date.

  - ### Notification

    public Notification(String type, Object source, long sequenceNumber, long timeStamp, String message)
    Creates a Notification object.
    Parameters:
      `type` - The notification type.
      `source` - The notification source.
      `sequenceNumber` - The notification sequence number within the source object.
      `timeStamp` - The notification emission date.
      `message` - The detailed message.

- ## Method Details

  - ### setSource

    public void setSource(Object source)
    Sets the source.
    Parameters:
      `source` - the new source for this object.
    See Also:
      - `EventObject.getSource()`

  - ### getSequenceNumber

    public long getSequenceNumber()
    Get the notification sequence number.
    Returns:
      The notification sequence number within the source object. It's a serial number identifying a particular instance of notification in the context of the notification source. The notification model does not assume that notifications will be received in the same order that they are sent. The sequence number helps listeners to sort received notifications.
    See Also:
      - `setSequenceNumber(long)`

  - ### setSequenceNumber

    public void setSequenceNumber(long sequenceNumber)
    Set the notification sequence number.
    Parameters:
      `sequenceNumber` - The notification sequence number within the source object. It is a serial number identifying a particular instance of notification in the context of the notification source.
    See Also:
      - `getSequenceNumber()`

  - ### getType

    public String getType()
    Get the notification type.
    Returns:
      The notification type. It's a string expressed in a dot notation similar to Java properties. It is recommended that the notification type should follow the reverse-domain-name convention used by Java package names. An example of a notification type is com.sun.management.gc.notification

  - ### getTimeStamp

    public long getTimeStamp()
    Get the notification timestamp.
    Returns:
      The notification timestamp.
    See Also:
      - `setTimeStamp(long)`

  - ### setTimeStamp

    public void setTimeStamp(long timeStamp)
    Set the notification timestamp.
    Parameters:
      `timeStamp` - The notification timestamp. It indicates when the notification was generated.
    See Also:
      - `getTimeStamp()`

  - ### getMessage

    public String getMessage()
    Get the notification message.
    Returns:
      The message string of this notification object.

  - ### getUserData

    public Object getUserData()
    Get the user data.
    Returns:
      The user data object. It is used for whatever data the notification source wishes to communicate to its consumers.
    See Also:
      - `setUserData(Object)`

  - ### setUserData

    public void setUserData(Object userData)
    Set the user data.
    Parameters:
      `userData` - The user data object. It is used for whatever data the notification source wishes to communicate to its consumers.
    See Also:
      - `getUserData()`

  - ### toString

    public String toString()
    Returns a String representation of this notification.
    Overrides:
      `toString` in class `EventObject`
    Returns:
      A String representation of this notification.