|
|||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Objectorg.springframework.webflow.conversation.impl.SessionBindingConversationManager
public class SessionBindingConversationManager
Simple implementation of a conversation manager that stores conversations in the session attribute map.
Using the maxConversations
property, you can limit the number of concurrently
active conversations allowed in a single session. If the maximum is exceeded, the conversation manager will
automatically end the oldest conversation. The default is 5, which should be fine for most situations. Set it to -1
for no limit. Setting maxConversations to 1 allows easy resource cleanup in situations where there should only be one
active conversation per session.
Constructor Summary | |
---|---|
SessionBindingConversationManager()
|
Method Summary | |
---|---|
Conversation |
beginConversation(ConversationParameters conversationParameters)
Begin a new conversation. |
Conversation |
getConversation(ConversationId id)
Get the conversation with the provided id. |
UidGenerator |
getConversationIdGenerator()
Returns the used generator for conversation ids. |
int |
getMaxConversations()
Returns the maximum number of allowed concurrent conversations. |
java.lang.String |
getSessionKey()
Returns the key this conversation manager uses to store conversation data in the session. |
ConversationId |
parseConversationId(java.lang.String encodedId)
Parse the string-encoded conversationId into its object form. |
void |
setConversationIdGenerator(UidGenerator uidGenerator)
Sets the configured generator for conversation ids. |
void |
setMaxConversations(int maxConversations)
Set the maximum number of allowed concurrent conversations. |
void |
setSessionKey(java.lang.String sessionKey)
Sets the key this conversation manager uses to store conversation data in the session. |
Methods inherited from class java.lang.Object |
---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
Constructor Detail |
---|
public SessionBindingConversationManager()
Method Detail |
---|
public UidGenerator getConversationIdGenerator()
RandomGuidUidGenerator
.
public void setConversationIdGenerator(UidGenerator uidGenerator)
public int getMaxConversations()
public void setMaxConversations(int maxConversations)
public java.lang.String getSessionKey()
public void setSessionKey(java.lang.String sessionKey)
sessionKey
- the session keypublic Conversation beginConversation(ConversationParameters conversationParameters) throws ConversationException
ConversationManager
beginConversation
in interface ConversationManager
conversationParameters
- descriptive conversation parameters
ConversationException
- an exception occuredpublic Conversation getConversation(ConversationId id) throws ConversationException
ConversationManager
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(); }
getConversation
in interface ConversationManager
id
- the conversation id
NoSuchConversationException
- the id provided was invalid
ConversationException
public ConversationId parseConversationId(java.lang.String encodedId) throws ConversationException
ConversationManager
ConversationId.toString()
.
parseConversationId
in interface ConversationManager
encodedId
- the encoded id
ConversationException
- an exception occured parsing the id
|
|||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |