Interface ProjectNotificationSession

All Superinterfaces:
AutoCloseable, Closeable, OsidSession, OsidSession

public interface ProjectNotificationSession extends OsidSession

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

  • Method Details

    • getCampusId

      Id getCampusId()
      Gets the Campus Id associated with this session.
      Returns:
      the Campus Id associated with this session
      Compliance:
      mandatory - This method must be implemented.
    • getCampus

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

      boolean canRegisterForProjectNotifications()
      Tests if this user can register for Project 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.
    • useFederatedCampusView

      void useFederatedCampusView()
      Federates the view for methods in this session. A federated view will include projects in campuses which are children of this campus in the campus hierarchy.
      Compliance:
      mandatory - This method is must be implemented.
    • useIsolatedCampusView

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

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

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

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

      void registerForNewProjects() throws OperationFailedException, PermissionDeniedException
      Register for notifications of new projects. ProjectReceiver.newProjects() is invoked when a new Project is created.
      Throws:
      OperationFailedException - unable to complete request
      PermissionDeniedException - authorization failure
      Compliance:
      mandatory - This method must be implemented.
    • registerForNewProjectsByBuilding

      void registerForNewProjectsByBuilding(Id buildingId) throws OperationFailedException, PermissionDeniedException
      Registers for notification of new projects for a building. ProjectReceiver.newProjects() is invoked when a project for the building is created.
      Parameters:
      buildingId - the Id of the Building to monitor
      Throws:
      NullArgumentException - buildingId is null
      OperationFailedException - unable to complete request
      PermissionDeniedException - authorization failure
      Compliance:
      mandatory - This method must be implemented.
    • registerForChangedProjects

      void registerForChangedProjects() throws OperationFailedException, PermissionDeniedException
      Registers for notification of updated projects. ProjectReceiver.changedProjects() is invoked when a project is changed.
      Throws:
      OperationFailedException - unable to complete request
      PermissionDeniedException - authorization failure
      Compliance:
      mandatory - This method must be implemented.
    • registerForChangedProjectsByBuilding

      void registerForChangedProjectsByBuilding(Id buildingId) throws OperationFailedException, PermissionDeniedException
      Registers for notification of a updated projectsfor a building. ProjectReceiver.changedProjects() is invoked when a project for the building is changed.
      Parameters:
      buildingId - the Id of the Building to monitor
      Throws:
      NullArgumentException - buildingId is null
      OperationFailedException - unable to complete request
      PermissionDeniedException - authorization failure
      Compliance:
      mandatory - This method must be implemented.
    • registerForChangedProject

      void registerForChangedProject(Id projectId) throws OperationFailedException, PermissionDeniedException
      Registers for notification of an updated project. ProjectReceiver.changedProjects() is invoked when the specified project is changed.
      Parameters:
      projectId - the Id of the Project to monitor
      Throws:
      NullArgumentException - projectId is null
      OperationFailedException - unable to complete request
      PermissionDeniedException - authorization failure
      Compliance:
      mandatory - This method must be implemented.
    • registerForDeletedProjects

      void registerForDeletedProjects() throws OperationFailedException, PermissionDeniedException
      Registers for notification of deleted projects. ProjectReceiver.deletedProjects() is invoked when a project is deleted.
      Throws:
      OperationFailedException - unable to complete request
      PermissionDeniedException - authorization failure
      Compliance:
      mandatory - This method must be implemented.
    • registerForDeletedProjectsByBuilding

      void registerForDeletedProjectsByBuilding(Id buildingId) throws OperationFailedException, PermissionDeniedException
      Registers for notification of a deleted project for a building. ProjectReceiver.deletedProjects() is invoked when a project for the building is deleted.
      Parameters:
      buildingId - the Id of the Building to monitor
      Throws:
      NullArgumentException - buildingId is null
      OperationFailedException - unable to complete request
      PermissionDeniedException - authorization failure
      Compliance:
      mandatory - This method must be implemented.
    • registerForDeletedProject

      void registerForDeletedProject(Id projectId) throws OperationFailedException, PermissionDeniedException
      Registers for notification of a deleted project. ProjectReceiver.deletedProjects() is invoked when the specified project is deleted.
      Parameters:
      projectId - the Id of the Project to monitor
      Throws:
      NullArgumentException - projectId is null
      OperationFailedException - unable to complete request
      PermissionDeniedException - authorization failure
      Compliance:
      mandatory - This method must be implemented.