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 Summary
Modifier and TypeMethodDescriptionbeginConversation
(ConversationParameters conversationParameters) Begin a new conversation.Get the conversation with the provided id.parseConversationId
(String encodedId) Parse the string-encoded conversationId into its object form.
-
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 invalidConversationException
-
parseConversationId
Parse the string-encoded conversationId into its object form. Essentially, the reverse ofConversationId.toString()
.- Parameters:
encodedId
- the encoded id- Returns:
- the parsed conversation id
- Throws:
ConversationException
- an exception occured parsing the id
-