Interface AccountNotificationSession

All Superinterfaces:
AutoCloseable, Closeable, OsidSession, OsidSession

public interface AccountNotificationSession extends OsidSession

This session defines methods to receive notifications on adds/changes to Accounts in this Business . This also includes existing accounts 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 AccountLookupSession .

  • 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.
    • canRegisterForAccountNotifications

      boolean canRegisterForAccountNotifications()
      Tests if this user can register for Account 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 accounts 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.
    • reliableAccountNotifications

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

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

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

      void registerForNewAccounts() throws OperationFailedException, PermissionDeniedException
      Register for notifications of new accounts. AccountReceiver.newAccounts() is invoked when a new Account appears in this business.
      Throws:
      OperationFailedException - unable to complete request
      PermissionDeniedException - authorization failure
      Compliance:
      mandatory - This method must be implemented.
    • registerForChangedAccounts

      void registerForChangedAccounts() throws OperationFailedException, PermissionDeniedException
      Registers for notification of updated accounts. AccountReceiver.changedAccounts() is invoked when an account in this business is changed.
      Throws:
      OperationFailedException - unable to complete request
      PermissionDeniedException - authorization failure
      Compliance:
      mandatory - This method must be implemented.
    • registerForChangedAccount

      void registerForChangedAccount(Id accountId) throws OperationFailedException, PermissionDeniedException
      Registers for notification of an updated account. AccountReceiver.changedAccounts() is invoked when the specified account in this business is changed.
      Parameters:
      accountId - the Id of the Account to monitor
      Throws:
      NullArgumentException - accountId is null
      OperationFailedException - unable to complete request
      PermissionDeniedException - authorization failure
      Compliance:
      mandatory - This method must be implemented.
    • registerForDeletedAccounts

      void registerForDeletedAccounts() throws OperationFailedException, PermissionDeniedException
      Registers for notification of deleted accounts. AccountReceiver.deletedAccounts() is invoked when an account is deleted or removed from this business.
      Throws:
      OperationFailedException - unable to complete request
      PermissionDeniedException - authorization failure
      Compliance:
      mandatory - This method must be implemented.
    • registerForDeletedAccount

      void registerForDeletedAccount(Id accountId) throws OperationFailedException, PermissionDeniedException
      Registers for notification of a deleted account. AccountReceiver.deletedAccounts() is invoked when the specified account is deleted or removed from this business.
      Parameters:
      accountId - the Id of the Account to monitor
      Throws:
      NullArgumentException - accountId is null
      OperationFailedException - unable to complete request
      PermissionDeniedException - authorization failure
      Compliance:
      mandatory - This method must be implemented.
    • registerForChangedAccountHierarchy

      void registerForChangedAccountHierarchy() throws OperationFailedException, PermissionDeniedException
      Registers for notification of an updated account hierarchy structure. accountId is null AccountReceiver.changedChildOfAccounts() 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.
    • registerForChangedAccountHierarchyForAncestors

      void registerForChangedAccountHierarchyForAncestors(Id accountId) throws OperationFailedException, PermissionDeniedException
      Registers for notification of an updated account hierarchy structure. AccountReceiver.changedChildOfAccounts() is invoked when the specified node or any of its ancestors experiences a change in its children.
      Parameters:
      accountId - the Id of the Account node to monitor
      Throws:
      NullArgumentException - accountId is null
      OperationFailedException - unable to complete request
      PermissionDeniedException - authorization failure
      Compliance:
      mandatory - This method must be implemented.
    • registerForChangedAccountHierarchyForDescendants

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