Interface ConversationManager

All Known Implementing Classes:
SessionBindingConversationManager

public interface ConversationManager
A service for managing conversations. This interface is the entry point into the conversation subsystem.
Author:
Keith Donald, Erwin Vervaet
  • Method Details

    • beginConversation

      Conversation beginConversation(ConversationParameters conversationParameters) throws ConversationException
      Begin a new conversation.
      Parameters:
      conversationParameters - descriptive conversation parameters
      Returns:
      a service interface allowing access to the conversation context
      Throws:
      ConversationException - an exception occured
    • getConversation

      Get the conversation with the provided id.

      Implementors should take care to manage conversation identity correctly. Although it is not strictly required to return the same (==) Conversation object every time this method is called with a particular conversation id in a single execution thread, callers will expect to recieve an object that allows them to manipulate the identified conversation. In other words, the following is legal ConversationManager client code:

              ConversationManager manager = ...;
              ConversationId id = ...;
              Conversation conv = manager.getConversation(id);
        conv.lock();
        try {
              Conversation localReference = manager.getConversation(id);
              // no need to lock since conversation 'id' is already locked
              // even though possibly conv != localReference
              localReference.putAttribute("foo", "bar");
              Object foo = conv.getAttribute("foo");
              }
              finally {
                      conv.unlock();
              }
       
      Parameters:
      id - the conversation id
      Returns:
      the conversation
      Throws:
      NoSuchConversationException - the id provided was invalid
      ConversationException
    • parseConversationId

      ConversationId parseConversationId(String encodedId) throws ConversationException
      Parse the string-encoded conversationId into its object form. Essentially, the reverse of ConversationId.toString().
      Parameters:
      encodedId - the encoded id
      Returns:
      the parsed conversation id
      Throws:
      ConversationException - an exception occured parsing the id