# 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 final String`
`RELATION_BASIC_CREATION`
Type for the creation of an internal relation.
`static final String`
`RELATION_BASIC_REMOVAL`
Type for the removal from the Relation Service of an internal relation.
`static final String`
`RELATION_BASIC_UPDATE`
Type for an update of an internal relation.
`static final String`
`RELATION_MBEAN_CREATION`
Type for the relation MBean added into the Relation Service.
`static final String`
`RELATION_MBEAN_REMOVAL`
Type for the removal from the Relation Service of a relation MBean.
`static final String`
`RELATION_MBEAN_UPDATE`
Type for the update of a relation MBean.

### Fields declared in class Notification

`source`
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
`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 Notification

`getMessage, getSequenceNumber, getTimeStamp, getType, getUserData, setSequenceNumber, setSource, setTimeStamp, setUserData, toString`
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

### 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 Details

### 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 Details

### 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.