Interface CompositionEnablerNotificationSession

All Superinterfaces:
AutoCloseable, Closeable, OsidSession, OsidSession

public interface CompositionEnablerNotificationSession extends OsidSession

This session defines methods to receive notifications on adds/changes to CompositionEnabler objects in this Composition . This also includes existing CompositionEnablers that may appear or disappear due to changes in the Composition hierarchy, This session is intended for consumers needing to synchronize their state with this service without the use of polling. Notifications are cancelled when this session is closed.

The two views defined in this session correspond to the views in the CompositionEnablerLookupSession .

  • Method Details

    • getRepositoryId

      Id getRepositoryId()
      Gets the Repository Id associated with this session.
      Returns:
      the Repository Id associated with this session
      Compliance:
      mandatory - This method must be implemented.
    • getRepository

      Gets the Repository associated with this session.
      Returns:
      the repository
      Throws:
      OperationFailedException - unable to complete request
      PermissionDeniedException - authorization failure
      Compliance:
      mandatory - This method must be implemented.
    • canRegisterForCompositionEnablerNotifications

      boolean canRegisterForCompositionEnablerNotifications()
      Tests if this user can register for CompositionEnabler notifications. A return of true does not guarantee successful authorization. A return of false indicates that it is known all methods in this session will result in a PERMISSION_DENIED . This is intended as a hint to an application that may opt not to offer notification operations.
      Returns:
      false if notification methods are not authorized, true otherwise
      Compliance:
      mandatory - This method must be implemented.
    • useFederatedRepositoryView

      void useFederatedRepositoryView()
      Federates the view for methods in this session. A federated view will include composition enablers in repositories which are children of this repository in the repository hierarchy.
      Compliance:
      mandatory - This method is must be implemented.
    • useIsolatedRepositoryView

      void useIsolatedRepositoryView()
      Isolates the view for methods in this session. An isolated view restricts lookups to this repository only.
      Compliance:
      mandatory - This method is must be implemented.
    • reliableCompositionEnablerNotifications

      void reliableCompositionEnablerNotifications()
      Reliable notifications are desired. In reliable mode, notifications are to be acknowledged using acknowledgeCompositionEnablerNotification() .
      Compliance:
      mandatory - This method is must be implemented.
    • unreliableCompositionEnablerNotifications

      void unreliableCompositionEnablerNotifications()
      Unreliable notifications are desired. In unreliable mode, notifications do not need to be acknowledged.
      Compliance:
      mandatory - This method is must be implemented.
    • acknowledgeCompositionEnablerNotification

      void acknowledgeCompositionEnablerNotification(Id notificationId) throws OperationFailedException, PermissionDeniedException
      Acknowledge a composition enabler notification.
      Parameters:
      notificationId - the Id of the notification
      Throws:
      OperationFailedException - unable to complete request
      PermissionDeniedException - authorization failure
      Compliance:
      mandatory - This method must be implemented.
    • registerForNewCompositionEnablers

      void registerForNewCompositionEnablers() throws OperationFailedException, PermissionDeniedException
      Register for notifications of new composition enablers. CompositionEnablerReceiver.newCompositionEnablers() is invoked when a new CompositionEnabler appears in this repository.
      Throws:
      OperationFailedException - unable to complete request
      PermissionDeniedException - authorization failure
      Compliance:
      mandatory - This method must be implemented.
    • registerForChangedCompositionEnablers

      void registerForChangedCompositionEnablers() throws OperationFailedException, PermissionDeniedException
      Registers for notification of updated composition enabelrs. CompositionEnablerReceiver.changedCompositionEnablers() is invoked when a composition enabler in this repository is changed.
      Throws:
      OperationFailedException - unable to complete request
      PermissionDeniedException - authorization failure
      Compliance:
      mandatory - This method must be implemented.
    • registerForChangedCompositionEnabler

      void registerForChangedCompositionEnabler(Id compositionEnablerId) throws OperationFailedException, PermissionDeniedException
      Registers for notification of an updated composition enabler. ProvisionableReceiver.changedCompositionEnablers() is invoked when the specified composition enabler in this repository is changed.
      Parameters:
      compositionEnablerId - the Id of the CompositionEnabler to monitor
      Throws:
      NullArgumentException - compositionEnablerId is null
      OperationFailedException - unable to complete request
      PermissionDeniedException - authorization failure
      Compliance:
      mandatory - This method must be implemented.
    • registerForDeletedCompositionEnablers

      void registerForDeletedCompositionEnablers() throws OperationFailedException, PermissionDeniedException
      Registers for notification of deleted composition enablers. CompositionEnablerReceiver.deletedCompositionEnablers() is invoked when a composition enabler is deleted or removed from this repository.
      Throws:
      OperationFailedException - unable to complete request
      PermissionDeniedException - authorization failure
      Compliance:
      mandatory - This method must be implemented.
    • registerForDeletedCompositionEnabler

      void registerForDeletedCompositionEnabler(Id compositionEnablerId) throws OperationFailedException, PermissionDeniedException
      Registers for notification of a deleted composition enabler. CompositionEnablerReceiver.deletedCompositionEnablers() is invoked when the specified composition enabler is deleted or removed from this repository.
      Parameters:
      compositionEnablerId - the Id of the CompositionEnabler to monitor
      Throws:
      NullArgumentException - compositionEnablerId is null
      OperationFailedException - unable to complete request
      PermissionDeniedException - authorization failure
      Compliance:
      mandatory - This method must be implemented.