Interface NodeNotificationSession

All Superinterfaces:
AutoCloseable, Closeable, OsidSession, OsidSession

public interface NodeNotificationSession extends OsidSession

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

  • Method Details

    • getGraphId

      Id getGraphId()
      Gets the Graph Id associated with this session.
      Returns:
      the Graph Id associated with this session
      Compliance:
      mandatory - This method must be implemented.
    • getGraph

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

      boolean canRegisterForNodeNotifications()
      Tests if this user can register for Node 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.
    • useFederatedGraphView

      void useFederatedGraphView()
      Federates the view for methods in this session. A federated view will include nodes in graphs which are children of this graph in the graph hierarchy.
      Compliance:
      mandatory - This method is must be implemented.
    • useIsolatedGraphView

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

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

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

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

      void registerForNewNodes() throws OperationFailedException, PermissionDeniedException
      Register for notifications of new nodes. NodeReceiver.newNodes() is invoked when a new Node appears in this graph.
      Throws:
      OperationFailedException - unable to complete request
      PermissionDeniedException - authorization failure
      Compliance:
      mandatory - This method must be implemented.
    • registerForChangedNodes

      void registerForChangedNodes() throws OperationFailedException, PermissionDeniedException
      Registers for notification of updated nodes. NodeReceiver.changedNodes() is invoked when a node in this graph is changed.
      Throws:
      OperationFailedException - unable to complete request
      PermissionDeniedException - authorization failure
      Compliance:
      mandatory - This method must be implemented.
    • registerForChangedNode

      void registerForChangedNode(Id nodeId) throws OperationFailedException, PermissionDeniedException
      Registers for notification of an updated node. NodeReceiver.changedNodes() is invoked when the specified node in this graph is changed.
      Parameters:
      nodeId - the Id of the Node to monitor
      Throws:
      NullArgumentException - nodeId is null
      OperationFailedException - unable to complete request
      PermissionDeniedException - authorization failure
      Compliance:
      mandatory - This method must be implemented.
    • registerForDeletedNodes

      void registerForDeletedNodes() throws OperationFailedException, PermissionDeniedException
      Registers for notification of deleted nodes. NodeReceiver.deletedNodes() is invoked when a node is deleted or removed from this graph.
      Throws:
      OperationFailedException - unable to complete request
      PermissionDeniedException - authorization failure
      Compliance:
      mandatory - This method must be implemented.
    • registerForDeletedNode

      void registerForDeletedNode(Id nodeId) throws OperationFailedException, PermissionDeniedException
      Registers for notification of a deleted node. NodeReceiver.deletedNodes() is invoked when the specified node is deleted or removed from this graph.
      Parameters:
      nodeId - the Id of the Node to monitor
      Throws:
      NullArgumentException - nodeId is null
      OperationFailedException - unable to complete request
      PermissionDeniedException - authorization failure
      Compliance:
      mandatory - This method must be implemented.