org.springframework.webflow.conversation
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
 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.
 

Method Detail

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

Conversation getConversation(ConversationId id)
                             throws ConversationException
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(java.lang.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


Copyright © 2004-2007. All Rights Reserved.