public interface ConversationManager
Modifier and Type | Method and Description |
---|---|
Conversation |
beginConversation(ConversationParameters conversationParameters)
Begin a new conversation.
|
Conversation |
getConversation(ConversationId id)
Get the conversation with the provided id.
|
ConversationId |
parseConversationId(java.lang.String encodedId)
Parse the string-encoded conversationId into its object form.
|
Conversation beginConversation(ConversationParameters conversationParameters) throws ConversationException
conversationParameters
- descriptive conversation parametersConversationException
- an exception occuredConversation getConversation(ConversationId id) throws ConversationException
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(); }
id
- the conversation idNoSuchConversationException
- the id provided was invalidConversationException
ConversationId parseConversationId(java.lang.String encodedId) throws ConversationException
ConversationId.toString()
.encodedId
- the encoded idConversationException
- an exception occured parsing the id