|
|||||||||
| 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 key
public Conversation beginConversation(ConversationParameters conversationParameters)
throws ConversationException
ConversationManager
beginConversation in interface ConversationManagerconversationParameters - descriptive conversation parameters
ConversationException - an exception occured
public Conversation getConversation(ConversationId id)
throws ConversationException
ConversationManagerImplementors 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 ConversationManagerid - the conversation id
NoSuchConversationException - the id provided was invalid
ConversationException
public ConversationId parseConversationId(java.lang.String encodedId)
throws ConversationException
ConversationManagerConversationId.toString().
parseConversationId in interface ConversationManagerencodedId - 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 | ||||||||