Module java.management
Package javax.management.relation

## Class RelationNotification

- java.lang.Object
- - java.util.EventObject
  - - javax.management.Notification
    - - javax.management.relation.RelationNotification

- All Implemented Interfaces:
    `Serializable`

      public class RelationNotification
      extends Notification

  A notification of a change in the Relation Service. A RelationNotification notification is sent when a relation is created via the Relation Service, or an MBean is added as a relation in the Relation Service, or a role is updated in a relation, or a relation is removed from the Relation Service.

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

  Since:
    1.5
  See Also:
    Serialized Form

- - ### Field Summary

    Fields
    Modifier and Type | Field | Description
    --- | --- | ---
    `static String` | `RELATION_BASIC_CREATION` | Type for the creation of an internal relation.
    `static String` | `RELATION_BASIC_REMOVAL` | Type for the removal from the Relation Service of an internal relation.
    `static String` | `RELATION_BASIC_UPDATE` | Type for an update of an internal relation.
    `static String` | `RELATION_MBEAN_CREATION` | Type for the relation MBean added into the Relation Service.
    `static String` | `RELATION_MBEAN_REMOVAL` | Type for the removal from the Relation Service of a relation MBean.
    `static String` | `RELATION_MBEAN_UPDATE` | Type for the update of a relation MBean.

    - ### Fields declared in class javax.management.Notification

      `source`

  - ### Constructor Summary

    Constructors
    Constructor | Description
    --- | ---
    `RelationNotification​(String notifType, Object sourceObj, long sequence, long timeStamp, String message, String id, String typeName, ObjectName objectName, String name, List<ObjectName> newValue, List<ObjectName> oldValue)` | Creates a notification for a role update in a relation.
    `RelationNotification​(String notifType, Object sourceObj, long sequence, long timeStamp, String message, String id, String typeName, ObjectName objectName, List<ObjectName> unregMBeanList)` | Creates a notification for either a relation creation (RelationSupport object created internally in the Relation Service, or an MBean added as a relation) or for a relation removal from the Relation Service.

  - ### Method Summary

    Modifier and Type | Method | Description
    --- | --- | ---
    `List<ObjectName>` | `getMBeansToUnregister()` | Returns the list of ObjectNames of MBeans expected to be unregistered due to a relation removal (only for relation removal).
    `List<ObjectName>` | `getNewRoleValue()` | Returns new value of updated role (only for role update).
    `ObjectName` | `getObjectName()` | Returns the ObjectName of the created/removed/updated relation.
    `List<ObjectName>` | `getOldRoleValue()` | Returns old value of updated role (only for role update).
    `String` | `getRelationId()` | Returns the relation identifier of created/removed/updated relation.
    `String` | `getRelationTypeName()` | Returns the relation type name of created/removed/updated relation.
    `String` | `getRoleName()` | Returns name of updated role of updated relation (only for role update).

    - ### Methods declared in class javax.management.Notification

      `getMessage, getSequenceNumber, getTimeStamp, getType, getUserData, setSequenceNumber, setSource, setTimeStamp, setUserData, toString`

    - ### Methods declared in class java.util.EventObject

      `getSource`

    - ### Methods declared in class java.lang.Object

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

- - ### Field Detail

    - #### RELATION_BASIC_CREATION

          public static final String RELATION_BASIC_CREATION

      Type for the creation of an internal relation.
      See Also:
        Constant Field Values

    - #### RELATION_MBEAN_CREATION

          public static final String RELATION_MBEAN_CREATION

      Type for the relation MBean added into the Relation Service.
      See Also:
        Constant Field Values

    - #### RELATION_BASIC_UPDATE

          public static final String RELATION_BASIC_UPDATE

      Type for an update of an internal relation.
      See Also:
        Constant Field Values

    - #### RELATION_MBEAN_UPDATE

          public static final String RELATION_MBEAN_UPDATE

      Type for the update of a relation MBean.
      See Also:
        Constant Field Values

    - #### RELATION_BASIC_REMOVAL

          public static final String RELATION_BASIC_REMOVAL

      Type for the removal from the Relation Service of an internal relation.
      See Also:
        Constant Field Values

    - #### RELATION_MBEAN_REMOVAL

          public static final String RELATION_MBEAN_REMOVAL

      Type for the removal from the Relation Service of a relation MBean.
      See Also:
        Constant Field Values

  - ### Constructor Detail

    - #### RelationNotification

          public RelationNotification​(String notifType,
                                      Object sourceObj,
                                      long sequence,
                                      long timeStamp,
                                      String message,
                                      String id,
                                      String typeName,
                                      ObjectName objectName,
                                      List<ObjectName> unregMBeanList)
                               throws IllegalArgumentException

      Creates a notification for either a relation creation (RelationSupport object created internally in the Relation Service, or an MBean added as a relation) or for a relation removal from the Relation Service.
      Parameters:
        `notifType` - type of the notification; either:

        - RELATION_BASIC_CREATION

        - RELATION_MBEAN_CREATION

        - RELATION_BASIC_REMOVAL

        - RELATION_MBEAN_REMOVAL

        `sourceObj` - source object, sending the notification. This is either an ObjectName or a RelationService object. In the latter case it must be the MBean emitting the notification; the MBean Server will rewrite the source to be the ObjectName under which that MBean is registered.
        `sequence` - sequence number to identify the notification
        `timeStamp` - time stamp
        `message` - human-readable message describing the notification
        `id` - relation id identifying the relation in the Relation Service
        `typeName` - name of the relation type
        `objectName` - ObjectName of the relation object if it is an MBean (null for relations internally handled by the Relation Service)
        `unregMBeanList` - list of ObjectNames of referenced MBeans expected to be unregistered due to relation removal (only for removal, due to CIM qualifiers, can be null)
      Throws:
        `IllegalArgumentException` - if:

        - no value for the notification type

        - the notification type is not RELATION_BASIC_CREATION, RELATION_MBEAN_CREATION, RELATION_BASIC_REMOVAL or RELATION_MBEAN_REMOVAL

        - no source object

        - the source object is not a Relation Service

        - no relation id

        - no relation type name

    - #### RelationNotification

          public RelationNotification​(String notifType,
                                      Object sourceObj,
                                      long sequence,
                                      long timeStamp,
                                      String message,
                                      String id,
                                      String typeName,
                                      ObjectName objectName,
                                      String name,
                                      List<ObjectName> newValue,
                                      List<ObjectName> oldValue)
                               throws IllegalArgumentException

      Creates a notification for a role update in a relation.
      Parameters:
        `notifType` - type of the notification; either:

        - RELATION_BASIC_UPDATE

        - RELATION_MBEAN_UPDATE

        `sourceObj` - source object, sending the notification. This is either an ObjectName or a RelationService object. In the latter case it must be the MBean emitting the notification; the MBean Server will rewrite the source to be the ObjectName under which that MBean is registered.
        `sequence` - sequence number to identify the notification
        `timeStamp` - time stamp
        `message` - human-readable message describing the notification
        `id` - relation id identifying the relation in the Relation Service
        `typeName` - name of the relation type
        `objectName` - ObjectName of the relation object if it is an MBean (null for relations internally handled by the Relation Service)
        `name` - name of the updated role
        `newValue` - new role value (List of ObjectName objects)
        `oldValue` - old role value (List of ObjectName objects)
      Throws:
        `IllegalArgumentException` - if null parameter

  - ### Method Detail

    - #### getRelationId

          public String getRelationId()

      Returns the relation identifier of created/removed/updated relation.
      Returns:
        the relation id.

    - #### getRelationTypeName

          public String getRelationTypeName()

      Returns the relation type name of created/removed/updated relation.
      Returns:
        the relation type name.

    - #### getObjectName

          public ObjectName getObjectName()

      Returns the ObjectName of the created/removed/updated relation.
      Returns:
        the ObjectName if the relation is an MBean, otherwise null.

    - #### getMBeansToUnregister

          public List<ObjectName> getMBeansToUnregister()

      Returns the list of ObjectNames of MBeans expected to be unregistered due to a relation removal (only for relation removal).
      Returns:
        a `List` of `ObjectName`.

    - #### getRoleName

          public String getRoleName()

      Returns name of updated role of updated relation (only for role update).
      Returns:
        the name of the updated role.

    - #### getOldRoleValue

          public List<ObjectName> getOldRoleValue()

      Returns old value of updated role (only for role update).
      Returns:
        the old value of the updated role.

    - #### getNewRoleValue

          public List<ObjectName> getNewRoleValue()

      Returns new value of updated role (only for role update).
      Returns:
        the new value of the updated role.