Interface PackageNotificationSession

All Superinterfaces:
AutoCloseable, Closeable, OsidSession, OsidSession

public interface PackageNotificationSession extends OsidSession

This session defines methods to receive asynchronous notifications on adds/changes to Package 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 views defined in this session correspond to the views in the PackageLookupSession .

  • Method Details

    • getDepotId

      Id getDepotId()
      Gets the Depot Id associated with this session.
      Returns:
      the Depot Id associated with this session
      Compliance:
      mandatory - This method must be implemented.
    • getDepot

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

      boolean canRegisterForPackageNotifications()
      Tests if this user can register for Package 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.
    • useFederatedDepotView

      void useFederatedDepotView()
      Federates the view for methods in this session. A federated view will include notifications for packages in depots which are children of this depot in the depot hierarchy.
      Compliance:
      mandatory - This method is must be implemented.
    • useIsolatedDepotView

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

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

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

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

      void registerForNewPackages() throws OperationFailedException, PermissionDeniedException
      Register for notifications of new packages. PackageReceiver.newPackages() is invoked when a new package is created.
      Throws:
      OperationFailedException - unable to complete request
      PermissionDeniedException - authorization failure
      Compliance:
      mandatory - This method must be implemented.
    • registerForChangedPackages

      void registerForChangedPackages() throws OperationFailedException, PermissionDeniedException
      Registers for notification of updated packages. PackageReceiver.changedPackages() is invoked when a package is changed.
      Throws:
      OperationFailedException - unable to complete request
      PermissionDeniedException - authorization failure
      Compliance:
      mandatory - This method must be implemented.
    • registerForChangedPackage

      void registerForChangedPackage(Id packageId) throws OperationFailedException, PermissionDeniedException
      Registers for notification of an updated package. PackageReceiver.changedPackages() is invoked when the specified package is changed.
      Parameters:
      packageId - the Id of the Package to monitor
      Throws:
      NullArgumentException - packageId is null
      OperationFailedException - unable to complete request
      PermissionDeniedException - authorization failure
      Compliance:
      mandatory - This method must be implemented.
    • registerForDeletedPackages

      void registerForDeletedPackages() throws OperationFailedException, PermissionDeniedException
      Registers for notification of deleted packages. PackageReceiver.deletedPackages() is invoked when a package is removed from this depot.
      Throws:
      OperationFailedException - unable to complete request
      PermissionDeniedException - authorization failure
      Compliance:
      mandatory - This method must be implemented.
    • registerForDeletedPackage

      void registerForDeletedPackage(Id packageId) throws OperationFailedException, PermissionDeniedException
      Registers for notification of a deleted package. PackageReceiver.deletedPackages() is invoked when the specified package is removed from this depot.
      Parameters:
      packageId - the Id of the Package to monitor
      Throws:
      NullArgumentException - packageId is null
      OperationFailedException - unable to complete request
      PermissionDeniedException - authorization failure
      Compliance:
      mandatory - This method must be implemented.