Interface ProductNotificationSession

All Superinterfaces:
AutoCloseable, Closeable, OsidSession, OsidSession

public interface ProductNotificationSession extends OsidSession

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

Notifications are triggered with changes to the Product object itself. Adding and removing orders result in notifications available from the notification session for orders.

  • Method Details

    • getStoreId

      Id getStoreId()
      Gets the Store Id associated with this session.
      Returns:
      the Store Id associated with this session
      Compliance:
      mandatory - This method must be implemented.
    • getStore

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

      boolean canRegisterForProductNotifications()
      Tests if this user can register for Product 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.
    • useFederatedStoreView

      void useFederatedStoreView()
      Federates the view for methods in this session. A federated view will include products in stores which are children of this store in the store hierarchy.
      Compliance:
      mandatory - This method is must be implemented.
    • useIsolatedStoreView

      void useIsolatedStoreView()
      Isolates the view for methods in this session. An isolated view restricts retrievals to this store only.
      Compliance:
      mandatory - This method is must be implemented.
    • reliableProductNotifications

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

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

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

      void registerForNewProducts() throws OperationFailedException, PermissionDeniedException
      Register for notifications of new products. ProductReceiver.newProducts() is invoked when a new Product is created.
      Throws:
      OperationFailedException - unable to complete request
      PermissionDeniedException - authorization failure
      Compliance:
      mandatory - This method must be implemented.
    • registerForChangedProducts

      void registerForChangedProducts() throws OperationFailedException, PermissionDeniedException
      Registers for notification of updated products. ProductReceiver.changedProducts() is invoked when a product is changed.
      Throws:
      OperationFailedException - unable to complete request
      PermissionDeniedException - authorization failure
      Compliance:
      mandatory - This method must be implemented.
    • registerForChangedProduct

      void registerForChangedProduct(Id productId) throws OperationFailedException, PermissionDeniedException
      Registers for notification of an updated product. ProductReceiver.changedProducts() is invoked when the specified product is changed.
      Parameters:
      productId - the Id of the Product to monitor
      Throws:
      NullArgumentException - productId is null
      OperationFailedException - unable to complete request
      PermissionDeniedException - authorization failure
      Compliance:
      mandatory - This method must be implemented.
    • registerForDeletedProducts

      void registerForDeletedProducts() throws OperationFailedException, PermissionDeniedException
      Registers for notification of deleted products. ProductReceiver.deletedProducts() is invoked when a product is deleted.
      Throws:
      OperationFailedException - unable to complete request
      PermissionDeniedException - authorization failure
      Compliance:
      mandatory - This method must be implemented.
    • registerForDeletedProduct

      void registerForDeletedProduct(Id productId) throws OperationFailedException, PermissionDeniedException
      Registers for notification of a deleted product. ProductReceiver.deletedProducts() is invoked when the specified product is deleted.
      Parameters:
      productId - the Id of the Product to monitor
      Throws:
      NullArgumentException - productId is null
      OperationFailedException - unable to complete request
      PermissionDeniedException - authorization failure
      Compliance:
      mandatory - This method must be implemented.