Interface CategoryNotificationSession

All Superinterfaces:
AutoCloseable, Closeable, OsidSession, OsidSession

public interface CategoryNotificationSession extends OsidSession

This session defines methods to receive notifications on adds/changes to Categories . in this Business . This also includes existing categories that may appear or disappear due to changes in the Business 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 CategoryLookupSession .

  • Method Details

    • getBusinessId

      Id getBusinessId()
      Gets the Business Id associated with this session.
      Returns:
      the Business Id associated with this session
      Compliance:
      mandatory - This method must be implemented.
    • getBusiness

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

      boolean canRegisterForCategoryNotifications()
      Tests if this user can register for Category 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.
    • useFederatedBusinessView

      void useFederatedBusinessView()
      Federates the view for methods in this session. A federated view will include categories in catalogs which are children of this catalog in the business hierarchy.
      Compliance:
      mandatory - This method is must be implemented.
    • useIsolatedBusinessView

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

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

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

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

      void registerForNewCategories() throws OperationFailedException, PermissionDeniedException
      Register for notifications of new categories. CategoryReceiver.newCategories() is invoked when a new Category appears in this business.
      Throws:
      OperationFailedException - unable to complete request
      PermissionDeniedException - authorization failure
      Compliance:
      mandatory - This method must be implemented.
    • registerForChangedCategories

      void registerForChangedCategories() throws OperationFailedException, PermissionDeniedException
      Registers for notification of updated categories. CategoryReceiver.changedCategories() is invoked when a category in this business is changed.
      Throws:
      OperationFailedException - unable to complete request
      PermissionDeniedException - authorization failure
      Compliance:
      mandatory - This method must be implemented.
    • registerForChangedCategory

      void registerForChangedCategory(Id categoryId) throws OperationFailedException, PermissionDeniedException
      Registers for notification of an updated category. CategoryReceiver.changedCategories() is invoked when the specified category in this business is changed.
      Parameters:
      categoryId - the Id of the Category to monitor
      Throws:
      NullArgumentException - categoryId is null
      OperationFailedException - unable to complete request
      PermissionDeniedException - authorization failure
      Compliance:
      mandatory - This method must be implemented.
    • registerForDeletedCategories

      void registerForDeletedCategories() throws OperationFailedException, PermissionDeniedException
      Registers for notification of deleted categories. CategoryReceiver.deletedCategories() is invoked when a category is deleted or removed from this business.
      Throws:
      OperationFailedException - unable to complete request
      PermissionDeniedException - authorization failure
      Compliance:
      mandatory - This method must be implemented.
    • registerForDeletedCategory

      void registerForDeletedCategory(Id categoryId) throws OperationFailedException, PermissionDeniedException
      Registers for notification of a deleted category. CategoryReceiver.deletedCategories() is invoked when the specified category is deleted or removed from this business.
      Parameters:
      categoryId - the Id of the Category to monitor
      Throws:
      NullArgumentException - categoryId is null
      OperationFailedException - unable to complete request
      PermissionDeniedException - authorization failure
      Compliance:
      mandatory - This method must be implemented.