com.avaya.ccs.api

## Interface UserListenerI

-     public interface UserListenerI

  An implementing instance of the `UserListenerI` interface delivers `UserI` level events within a `SessionI` to the controlling client application.

- - ### Method Summary

    All Methods Instance Methods Abstract Methods
    Modifier and Type | Method and Description
    --- | ---
    `void` | `onUserEvent(NotificationEventI<UserI> userEvent)` This method delivers a `NotificationEventI` object which contains a `NotificationType`, the object that is being updated (`UserI`), an optional `ErrorI` object and an optional `ResponseData` object.

- - ### Method Detail

    - #### onUserEvent

          void onUserEvent(NotificationEventI<UserI> userEvent)

      This method delivers a `NotificationEventI` object which contains a `NotificationType`, the object that is being updated (`UserI`), an optional `ErrorI` object and an optional `ResponseData` object.

      A `NotificationType.NEW` notification indicates that a new `UserI` object has been added to the session. A `NotificationType.UPDATE` notification indicates that properties of the specified `UserI` instance has been modified and the newly supplied `UserI` object represents a complete update.

      A `NotificationType.DELETE` notification indicates that the identified `UserI` has been deleted. The majority of API methods will throw an `ObjectInvalidException` if invoked after the `UserI` object has been deleted. However a small set of API methods for retrieving specific properties are available for the client application after the `UserI` object has been deleted. If an API method is accessible after object deletion it will be specified in the API documentation. The client application must discontinue the use of the `UserI` object. The application must also null out all references it holds to the deleted `UserI` object as well as all references it holds to objects obtained from the `UserI` such as `MonitoredUserI` and `MonitoredInteractionI`. This is to ensure that garbage collection of the deleted objects can occur. On user deletion, `NotificationType.DELETE` notifications will also be sent to the application the objects obtained from the user (detailed above).

      An `NotificationType.ERROR` notification indicates the failure of a `UserI` method call made by the client application on one of the `UserI` instances. The accompanying `ErrorI` object provides details as to the cause of the error. A `NotificationType.RESPONSE` notification indicates that a response has been received for an `UserI` SDK method that has requested data from the server. The response notifications will have a `ResponseData` object containing the data that was requested.

      The CCS API executes this event listener method in the context of the CCS API processing threads. On receiving a notification event, the application must immediately switch executing context from the CCS API processing threads and move processing of the event to application threads.

      Parameters:
        `userEvent` - an event containing a `UserI` notification