Interface FamilyNotificationSession

All Superinterfaces:
AutoCloseable, Closeable, OsidSession, OsidSession

public interface FamilyNotificationSession extends OsidSession

This session defines methods to receive notifications on adds/changes to Family 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 Family object itself. Adding and removing relationships result in notifications available from the notification session for rules.

  • Method Details

    • canRegisterForFamilyNotifications

      boolean canRegisterForFamilyNotifications()
      Tests if this user can register for Family 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.
    • reliableFamilyNotifications

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

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

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

      void registerForNewFamilies() throws OperationFailedException, PermissionDeniedException
      Register for notifications of new families. FamilyReceiver.newFamilies() is invoked when a new Family is created.
      Throws:
      OperationFailedException - unable to complete request
      PermissionDeniedException - authorization failure
      Compliance:
      mandatory - This method must be implemented.
    • registerForChangedFamilies

      void registerForChangedFamilies() throws OperationFailedException, PermissionDeniedException
      Registers for notification of updated families. FamilyReceiver.changedFamilies() is invoked when a family is changed.
      Throws:
      OperationFailedException - unable to complete request
      PermissionDeniedException - authorization failure
      Compliance:
      mandatory - This method must be implemented.
    • registerForChangedFamily

      void registerForChangedFamily(Id familyId) throws OperationFailedException, PermissionDeniedException
      Registers for notification of an updated family. FamilyReceiver.changedFamilies() is invoked when the specified family is changed.
      Parameters:
      familyId - the Id of the Family to monitor
      Throws:
      NullArgumentException - familyId is null
      OperationFailedException - unable to complete request
      PermissionDeniedException - authorization failure
      Compliance:
      mandatory - This method must be implemented.
    • registerForDeletedFamilies

      void registerForDeletedFamilies() throws OperationFailedException, PermissionDeniedException
      Registers for notification of deleted families. FamilyReceiver.deletedFamilies() is invoked when a family is deleted.
      Throws:
      OperationFailedException - unable to complete request
      PermissionDeniedException - authorization failure
      Compliance:
      mandatory - This method must be implemented.
    • registerForDeletedFamily

      void registerForDeletedFamily(Id familyId) throws OperationFailedException, PermissionDeniedException
      Registers for notification of a deleted family. FamilyReceiver.deletedFamilies() is invoked when the specified family is deleted.
      Parameters:
      familyId - the Id of the Family to monitor
      Throws:
      NullArgumentException - familyId is null
      OperationFailedException - unable to complete request
      PermissionDeniedException - authorization failure
      Compliance:
      mandatory - This method must be implemented.
    • registerForChangedFamilyHierarchy

      void registerForChangedFamilyHierarchy() throws OperationFailedException, PermissionDeniedException
      Registers for notification of an updated family hierarchy structure. FamilyReceiver.changedChildOfFamilies() 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.
    • registerForChangedFamilyHierarchyForAncestors

      void registerForChangedFamilyHierarchyForAncestors(Id familyId) throws OperationFailedException, PermissionDeniedException
      Registers for notification of an updated family hierarchy structure. FamilyReceiver.changedChildOfFamilies() is invoked when the specified node or any of its ancestors experiences a change in its children.
      Parameters:
      familyId - the Id of the Family node to monitor
      Throws:
      NullArgumentException - familyId is null
      OperationFailedException - unable to complete request
      PermissionDeniedException - authorization failure
      Compliance:
      mandatory - This method must be implemented.
    • registerForChangedFamilyHierarchyForDescendants

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