Interface ItemNotificationSession

All Superinterfaces:
AutoCloseable, Closeable, OsidSession, OsidSession

public interface ItemNotificationSession extends OsidSession

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

  • Method Details

    • getBankId

      Id getBankId()
      Gets the Bank Id associated with this session.
      Returns:
      the Bank Id associated with this session
      Compliance:
      mandatory - This method must be implemented.
    • getBank

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

      boolean canRegisterForItemNotifications()
      Tests if this user can register for Item 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.
    • useFederatedBankView

      void useFederatedBankView()
      Federates the view for methods in this session. A federated view will include notifications for assessment items in assessment banks which are children of this assessment bank in the assessment bank hierarchy.
      Compliance:
      mandatory - This method is must be implemented.
    • useIsolatedBankView

      void useIsolatedBankView()
      Isolates the view for methods in this session. An isolated view restricts notifications to this assessment bank only.
      Compliance:
      mandatory - This method is must be implemented.
    • reliableItemNotifications

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

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

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

      void registerForNewItems() throws OperationFailedException, PermissionDeniedException
      Register for notifications of new assessment items. ItemReceiver.newItems() is invoked when a new Item is created.
      Throws:
      OperationFailedException - unable to complete request
      PermissionDeniedException - authorization failure occurred
      Compliance:
      mandatory - This method must be implemented.
    • registerForChangedItems

      void registerForChangedItems() throws OperationFailedException, PermissionDeniedException
      Registers for notification of updated assessment items. ItemReceiver.changedItems() is invoked when an assessment item is changed.
      Throws:
      OperationFailedException - unable to complete request
      PermissionDeniedException - authorization failure occurred
      Compliance:
      mandatory - This method must be implemented.
    • registerForChangedItem

      void registerForChangedItem(Id itemId) throws NotFoundException, OperationFailedException, PermissionDeniedException
      Registers for notification of an updated assessment item. ItemReceiver.changedItems() is invoked when the specified assessment item is changed.
      Parameters:
      itemId - the Id of the Assessment to monitor
      Throws:
      NotFoundException - an item was not found identified by the given Id
      NullArgumentException - itemId is null
      OperationFailedException - unable to complete request
      PermissionDeniedException - authorization failure occurred
      Compliance:
      mandatory - This method must be implemented.
    • registerForDeletedItems

      void registerForDeletedItems() throws OperationFailedException, PermissionDeniedException
      Registers for notification of deleted assessment items. ItemReceiver.deletedItems() is invoked when an assessment item is removed from the assessment bank.
      Throws:
      OperationFailedException - unable to complete request
      PermissionDeniedException - authorization failure occurred
      Compliance:
      mandatory - This method must be implemented.
    • registerForDeletedItem

      void registerForDeletedItem(Id itemId) throws NotFoundException, OperationFailedException, PermissionDeniedException
      Registers for notification of a deleted assessment item. ItemReceiver.deletedItems() is invoked when the specified assessment item is removed from the assessment bank.
      Parameters:
      itemId - the Id of the Item to monitor
      Throws:
      NotFoundException - an Item was not found identified by the given Id
      NullArgumentException - itemId is null
      OperationFailedException - unable to complete request
      PermissionDeniedException - authorization failure occurred
      Compliance:
      mandatory - This method must be implemented.