Interface CourseEntryNotificationSession

All Superinterfaces:
AutoCloseable, Closeable, OsidSession, OsidSession

public interface CourseEntryNotificationSession extends OsidSession

This session defines methods to receive notifications on adds/changes to CourseEntry objects in this CourseCatalog . This also includes existing courses that may appear or disappear due to changes in the CourseCatalog 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 CourseEntryLookupSession .

  • Method Details

    • getCourseCatalogId

      Id getCourseCatalogId()
      Gets the CourseCatalog Id associated with this session.
      Returns:
      the CourseCatalog Id associated with this session
      Compliance:
      mandatory - This method must be implemented.
    • getCourseCatalog

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

      boolean canRegisterForCourseEntryNotifications()
      Tests if this user can register for CourseEntry 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.
    • useFederatedCourseCatalogView

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

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

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

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

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

      void registerForNewCourseEntries() throws OperationFailedException, PermissionDeniedException
      Register for notifications of new course entries. CourseEntryReceiver.newCourseEntries() is invoked when a new CourseEntry appears in this course catalog.
      Throws:
      OperationFailedException - unable to complete request
      PermissionDeniedException - authorization failure
      Compliance:
      mandatory - This method must be implemented.
    • registerForNewCourseEntriesForStudent

      void registerForNewCourseEntriesForStudent(Id resourceId) throws OperationFailedException, PermissionDeniedException
      Registers for notification of new course entries for the given student. CourseEntryReceiver.newCourseEntries() is invoked when a new course entry appears in this course catalog.
      Parameters:
      resourceId - the Id of the Resource to monitor
      Throws:
      NullArgumentException - resourceId is null
      OperationFailedException - unable to complete request
      PermissionDeniedException - authorization failure
      Compliance:
      mandatory - This method must be implemented.
    • registerForNewCourseEntriesForCourse

      void registerForNewCourseEntriesForCourse(Id courseId) throws OperationFailedException, PermissionDeniedException
      Registers for notification of new course entries for the given course. CourseEntryReceiver.newCourseEntries() is invoked when a course entry appears in this course catalog.
      Parameters:
      courseId - the Id of the Course to monitor
      Throws:
      NullArgumentException - courseId is null
      OperationFailedException - unable to complete request
      PermissionDeniedException - authorization failure
      Compliance:
      mandatory - This method must be implemented.
    • registerForChangedCourseEntries

      void registerForChangedCourseEntries() throws OperationFailedException, PermissionDeniedException
      Registers for notification of updated course entries. CourseEntryReceiver.changedCourseEntries() is invoked when a course entry in this course catalog is changed.
      Throws:
      OperationFailedException - unable to complete request
      PermissionDeniedException - authorization failure
      Compliance:
      mandatory - This method must be implemented.
    • registerForChangedCourseEntriesForStudent

      void registerForChangedCourseEntriesForStudent(Id resourceId) throws OperationFailedException, PermissionDeniedException
      Registers for notification of updated course entries for the given student. CourseEntryReceiver.changedCourseEntries() is invoked when a course entry in this course catalog is changed.
      Parameters:
      resourceId - the Id of the Resource to monitor
      Throws:
      NullArgumentException - resourceId is null
      OperationFailedException - unable to complete request
      PermissionDeniedException - authorization failure
      Compliance:
      mandatory - This method must be implemented.
    • registerForChangedCourseEntriesForCourse

      void registerForChangedCourseEntriesForCourse(Id courseId) throws OperationFailedException, PermissionDeniedException
      Registers for notification of updated course entries for the given course. CourseEntryReceiver.changedCourseEntries() is invoked when a course entry in this course catalog is changed.
      Parameters:
      courseId - the Id of the Course to monitor
      Throws:
      NullArgumentException - courseId is null
      OperationFailedException - unable to complete request
      PermissionDeniedException - authorization failure
      Compliance:
      mandatory - This method must be implemented.
    • registerForChangedCourseEntry

      void registerForChangedCourseEntry(Id courseEntryId) throws OperationFailedException, PermissionDeniedException
      Registers for notification of an updated course entry. CourseEntryReceiver.changedCourseEntries() is invoked when the specified course entry in this course catalog is changed.
      Parameters:
      courseEntryId - the Id of the CourseEntry to monitor
      Throws:
      NullArgumentException - courseEntryId is null
      OperationFailedException - unable to complete request
      PermissionDeniedException - authorization failure
      Compliance:
      mandatory - This method must be implemented.
    • registerForDeletedCourseEntries

      void registerForDeletedCourseEntries() throws OperationFailedException, PermissionDeniedException
      Registers for notification of deleted course entries. CourseEntryReceiver.deletedCourseEntries() is invoked when a course entry is deleted or removed from this course catalog.
      Throws:
      OperationFailedException - unable to complete request
      PermissionDeniedException - authorization failure
      Compliance:
      mandatory - This method must be implemented.
    • registerForDeletedCourseEntriesForStudent

      void registerForDeletedCourseEntriesForStudent(Id resourceId) throws OperationFailedException, PermissionDeniedException
      Registers for notification of deleted course entries for the given student. CourseEntryReceiver.deletedCourseEntries() is invoked when a course entry in this course catalog is removed or deleted.
      Parameters:
      resourceId - the Id of the Resource to monitor
      Throws:
      NullArgumentException - resourceId is null
      OperationFailedException - unable to complete request
      PermissionDeniedException - authorization failure
      Compliance:
      mandatory - This method must be implemented.
    • registerForDeletedCourseEntriesForCourse

      void registerForDeletedCourseEntriesForCourse(Id courseId) throws OperationFailedException, PermissionDeniedException
      Registers for notification of deleted course entries for the given course. CourseEntryReceiver.deletedCourseEntries() is invoked when a course entry in this course catalog is removed or deleted.
      Parameters:
      courseId - the Id of the Course to monitor
      Throws:
      NullArgumentException - courseId is null
      OperationFailedException - unable to complete request
      PermissionDeniedException - authorization failure
      Compliance:
      mandatory - This method must be implemented.
    • registerForDeletedCourseEntry

      void registerForDeletedCourseEntry(Id courseEntryId) throws OperationFailedException, PermissionDeniedException
      Registers for notification of a deleted course entry. CourseEntryReceiver.deletedCourseEntries() is invoked when the specified course entry is deleted or removed from this course catalog.
      Parameters:
      courseEntryId - the Id of the CourseEntry to monitor
      Throws:
      NullArgumentException - courseEntryId is null
      OperationFailedException - unable to complete request
      PermissionDeniedException - authorization failure
      Compliance:
      mandatory - This method must be implemented.