Interface RecipeNotificationSession

All Superinterfaces:
AutoCloseable, Closeable, OsidSession, OsidSession

public interface RecipeNotificationSession extends OsidSession

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

  • Method Details

    • getCookbookId

      Id getCookbookId()
      Gets the Cookbook Id associated with this session.
      Returns:
      the Cookbook Id associated with this session
      Compliance:
      mandatory - This method must be implemented.
    • getCookbook

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

      boolean canRegisterForRecipeNotifications()
      Tests if this user can register for Recipe 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.
    • useFederatedCookbookView

      void useFederatedCookbookView()
      Federates the view for methods in this session. A federated view will include recipes in cookbooks which are children of this cookbook in the cookbook hierarchy.
      Compliance:
      mandatory - This method is must be implemented.
    • useIsolatedCookbookView

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

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

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

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

      void registerForNewRecipes() throws OperationFailedException, PermissionDeniedException
      Register for notifications of new recipes. RecipeReceiver.newRecipes() is invoked when a new Recipe appears in this cookbook.
      Throws:
      OperationFailedException - unable to complete request
      PermissionDeniedException - authorization failure
      Compliance:
      mandatory - This method must be implemented.
    • registerForChangedRecipes

      void registerForChangedRecipes() throws OperationFailedException, PermissionDeniedException
      Registers for notification of updated recipes. RecipeReceiver.changedRecipes() is invoked when a recipe in this cookbook is changed.
      Throws:
      OperationFailedException - unable to complete request
      PermissionDeniedException - authorization failure
      Compliance:
      mandatory - This method must be implemented.
    • registerForChangedRecipe

      void registerForChangedRecipe(Id recipeId) throws NotFoundException, OperationFailedException, PermissionDeniedException
      Registers for notification of an updated recipe. RecipeReceiver.changedRecipes() is invoked when the specified recipe in this cookbook is changed.
      Parameters:
      recipeId - the Id of the Recipe to monitor
      Throws:
      NotFoundException - a recipe was not found in this cookbook identified by the given Id
      NullArgumentException - recipeId is null
      OperationFailedException - unable to complete request
      PermissionDeniedException - authorization failure
      Compliance:
      mandatory - This method must be implemented.
    • registerForDeletedRecipes

      void registerForDeletedRecipes() throws OperationFailedException, PermissionDeniedException
      Registers for notification of deleted recipes. RecipeReceiver.deletedRecipes() is invoked when a recipe is deleted or removed from this cookbook.
      Throws:
      OperationFailedException - unable to complete request
      PermissionDeniedException - authorization failure
      Compliance:
      mandatory - This method must be implemented.
    • registerForDeletedRecipe

      void registerForDeletedRecipe(Id recipeId) throws NotFoundException, OperationFailedException, PermissionDeniedException
      Registers for notification of a deleted recipe. RecipeReceiver.deletedRecipes() is invoked when the specified recipe is deleted or removed from this cookbook.
      Parameters:
      recipeId - the Id of the Recipe to monitor
      Throws:
      NotFoundException - a recipe was not found identified by the given Id
      NullArgumentException - recipeId is null
      OperationFailedException - unable to complete request
      PermissionDeniedException - authorization failure
      Compliance:
      mandatory - This method must be implemented.