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