Interface CatalogNotificationSession

All Superinterfaces:
AutoCloseable, Closeable, OsidSession, OsidSession

public interface CatalogNotificationSession extends OsidSession

This session defines methods to receive notifications on adds/changes to Catalogs . 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.

Notifications are triggered with changes to the Catalog object itself. Adding and removing Ids result in notifications available from the notification session for catalog entries.

  • Method Details

    • canRegisterForCatalogNotifications

      boolean canRegisterForCatalogNotifications()
      Tests if this user can register for Catalog 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.
    • reliableCatalogNotifications

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

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

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

      void registerForNewCatalogs() throws OperationFailedException, PermissionDeniedException
      Register for notifications of new catalogs. CatalogReceiver.newCatalogs() is invoked when a new Catalog is created.
      Throws:
      OperationFailedException - unable to complete request
      PermissionDeniedException - authorization failure
      Compliance:
      mandatory - This method must be implemented.
    • registerForChangedCatalogs

      void registerForChangedCatalogs() throws OperationFailedException, PermissionDeniedException
      Registers for notification of updated catalogs. CatalogReceiver.changedCatalogs() is invoked when a catalog is changed.
      Throws:
      OperationFailedException - unable to complete request
      PermissionDeniedException - authorization failure
      Compliance:
      mandatory - This method must be implemented.
    • registerForChangedCatalog

      void registerForChangedCatalog(Id catalogId) throws OperationFailedException, PermissionDeniedException
      Registers for notification of an updated catalog. CatalogReceiver.changedCatalogs() is invoked when the specified catalog is changed.
      Parameters:
      catalogId - the Id of the Catalog to monitor
      Throws:
      NullArgumentException - catalogId is null
      OperationFailedException - unable to complete request
      PermissionDeniedException - authorization failure
      Compliance:
      mandatory - This method must be implemented.
    • registerForDeletedCatalogs

      void registerForDeletedCatalogs() throws OperationFailedException, PermissionDeniedException
      Registers for notification of deleted catalogs. CatalogReceiver.deletedCatalogs() is invoked when a catalog is deleted.
      Throws:
      OperationFailedException - unable to complete request
      PermissionDeniedException - authorization failure
      Compliance:
      mandatory - This method must be implemented.
    • registerForDeletedCatalog

      void registerForDeletedCatalog(Id catalogId) throws OperationFailedException, PermissionDeniedException
      Registers for notification of a deleted catalog. CatalogReceiver.deletedCatalogs() is invoked when the specified catalog is deleted.
      Parameters:
      catalogId - the Id of the Catalog to monitor
      Throws:
      NullArgumentException - catalogId is null
      OperationFailedException - unable to complete request
      PermissionDeniedException - authorization failure
      Compliance:
      mandatory - This method must be implemented.
    • registerForChangedCatalogHierarchy

      void registerForChangedCatalogHierarchy() throws OperationFailedException, PermissionDeniedException
      Registers for notification of an updated catalog hierarchy structure. CatalogReceiver.changedChildOfCatalogs() is invoked when a node experiences a change in its children.
      Throws:
      OperationFailedException - unable to complete request
      PermissionDeniedException - authorization failure
      Compliance:
      mandatory - This method must be implemented.
    • registerForChangedCatalogHierarchyForAncestors

      void registerForChangedCatalogHierarchyForAncestors(Id catalogId) throws OperationFailedException, PermissionDeniedException
      Catalog Receiver.changedChildOfCatalogs() is invoked when the specified node or any of its ancestors experiences a change in its children.
      Parameters:
      catalogId - the Id of the Catalog node to monitor
      Throws:
      NullArgumentException - catalogId is null
      OperationFailedException - unable to complete request
      PermissionDeniedException - authorization failure
      Compliance:
      mandatory - This method must be implemented.
    • registerForChangedCatalogHierarchyForDescendants

      void registerForChangedCatalogHierarchyForDescendants(Id catalogId) throws OperationFailedException, PermissionDeniedException
      Registers for notification of an updated catalog hierarchy structure. CatalogReceiver.changedChildOfCatalogs() is invoked when the specified node or any of its descendants experiences a change in its children.
      Parameters:
      catalogId - the Id of the catalog node to monitor
      Throws:
      NullArgumentException - catalogId is null
      OperationFailedException - unable to complete request
      PermissionDeniedException - authorization failure
      Compliance:
      mandatory - This method must be implemented.