public abstract class AbstractConversationContext<R,S> extends AbstractBoundContext<R> implements ConversationContext
| Modifier and Type | Field and Description |
|---|---|
static String |
CONVERSATIONS_ATTRIBUTE_NAME |
static String |
DESTRUCTION_QUEUE_ATTRIBUTE_NAME |
| Constructor and Description |
|---|
AbstractConversationContext(String contextId,
BeanIdentifierIndex beanIdentifierIndex) |
| Modifier and Type | Method and Description |
|---|---|
void |
activate()
Activate the Context.
|
void |
activate(String cid)
Activate the conversation context, using the id provided to attempt to restore a long-running conversation
|
boolean |
associate(R request)
Associate the context with the storage (for this thread).
|
protected void |
associateRequest(ManagedConversation conversation) |
protected void |
associateRequestWithNewConversation() |
void |
conversationPromotedToLongRunning(ConversationImpl conversation) |
protected void |
copyConversationIdGeneratorAndConversationsToSession() |
protected abstract BoundBeanStore |
createRequestBeanStore(NamingScheme namingScheme,
R request) |
protected abstract BoundBeanStore |
createSessionBeanStore(NamingScheme namingScheme,
S session) |
void |
deactivate()
Deactivate the Context, destroying any instances if the context is invalid.
|
boolean |
destroy(S session) |
protected void |
destroyConversation(S session,
String id) |
boolean |
dissociate(R request)
Dissociate the context from the storage (for this thread).
|
String |
generateConversationId()
Generate a new, unique, conversation id
|
long |
getConcurrentAccessTimeout()
Get the current concurrent access timeout
|
ManagedConversation |
getConversation(String id)
Get the conversation with the given id.
|
protected ConversationIdGenerator |
getConversationIdGenerator() |
Collection<ManagedConversation> |
getConversations()
Get conversations currently known to the context.
|
ManagedConversation |
getCurrentConversation()
Get a handle the current conversation (transient or otherwise).
|
long |
getDefaultTimeout()
Get the default inactivity timeout.
|
protected abstract String |
getNamingSchemePrefix() |
String |
getParameterName()
Get the name of the parameter used to propagate the conversation id
|
protected R |
getRequest()
Get the associated store
|
protected abstract Object |
getRequestAttribute(R request,
String name)
Retrieve an attribute value from the request
|
Class<? extends Annotation> |
getScope()
Get the scope type of the context object.
|
protected abstract Object |
getSessionAttribute(R request,
String name,
boolean create)
Get an attribute value from the session.
|
protected abstract Object |
getSessionAttributeFromSession(S session,
String name)
Get an attribute value from the session.
|
protected abstract Iterator<String> |
getSessionAttributeNames(S session) |
protected abstract S |
getSessionFromRequest(R request,
boolean create) |
protected void |
initialize(String cid) |
void |
invalidate()
Mark the context as due for destruction when deactivate is called.
|
protected boolean |
isAssociated()
Check if the context is currently associated
|
protected abstract void |
removeRequestAttribute(R request,
String name)
Remove an attribute from the request.
|
void |
sessionCreated() |
void |
setConcurrentAccessTimeout(long timeout)
Set the concurrent access timeout
|
void |
setDefaultTimeout(long timeout)
Set the default inactivity timeout.
|
void |
setParameterName(String cid)
Set the name of the parameter used to propagate the conversation id
|
protected abstract void |
setRequestAttribute(R request,
String name,
Object value)
Set an attribute in the request.
|
protected abstract void |
setSessionAttribute(R request,
String name,
Object value,
boolean create)
Set an attribute in the session.
|
cleanup, getBeanStore, setBeanStoreisActive, isValid, removeState, setActivedestroy, destroy, get, get, getContextual, getId, getServiceRegistry, checkContextInitializedclone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitdestroypublic static final String CONVERSATIONS_ATTRIBUTE_NAME
public static final String DESTRUCTION_QUEUE_ATTRIBUTE_NAME
public AbstractConversationContext(String contextId, BeanIdentifierIndex beanIdentifierIndex)
public String getParameterName()
ConversationContextgetParameterName in interface ConversationContextpublic void setParameterName(String cid)
ConversationContextsetParameterName in interface ConversationContextcid - the name of the conversation id parameterpublic void setConcurrentAccessTimeout(long timeout)
ConversationContextsetConcurrentAccessTimeout in interface ConversationContexttimeout - the timeout (in ms) for the concurrent access lockpublic long getConcurrentAccessTimeout()
ConversationContextgetConcurrentAccessTimeout in interface ConversationContextpublic void setDefaultTimeout(long timeout)
ConversationContextConversation.setTimeout(long)setDefaultTimeout in interface ConversationContexttimeout - the default inactivity timeout (in ms)public long getDefaultTimeout()
ConversationContextgetDefaultTimeout in interface ConversationContextpublic boolean associate(R request)
BoundContextBoundContext.associate(Object) has been called, further calls
to BoundContext.associate(Object) will be ignored, until the context has been subsequently BoundContext.dissociate(Object) from
the storage.associate in interface BoundContext<R>request - the external storagepublic boolean dissociate(R request)
BoundContextdissociate in interface BoundContext<R>dissociate in class AbstractBoundContext<R>request - the external storageprotected void copyConversationIdGeneratorAndConversationsToSession()
public void sessionCreated()
protected void associateRequestWithNewConversation()
protected void associateRequest(ManagedConversation conversation)
public void activate()
ManagedContextactivate in interface ConversationContextactivate in interface ManagedContextactivate in class AbstractBoundContext<R>public void activate(String cid)
ConversationContextactivate in interface ConversationContextcid - if the cid is null, a transient conversation will be created, otherwise the conversation will be restoredprotected void initialize(String cid)
public void deactivate()
ManagedContextdeactivate in interface ManagedContextdeactivate in class AbstractBoundContext<R>public void conversationPromotedToLongRunning(ConversationImpl conversation)
public void invalidate()
ManagedContextinvalidate in interface ConversationContextinvalidate in interface ManagedContextinvalidate in class AbstractManagedContextpublic boolean destroy(S session)
public String generateConversationId()
ConversationContextgenerateConversationId in interface ConversationContextprotected ConversationIdGenerator getConversationIdGenerator()
public ManagedConversation getConversation(String id)
ConversationContextgetConversation in interface ConversationContextid - the id of the conversation to getpublic Collection<ManagedConversation> getConversations()
ConversationContextgetConversations in interface ConversationContextpublic ManagedConversation getCurrentConversation()
ConversationContextgetCurrentConversation in interface ConversationContextpublic Class<? extends Annotation> getScope()
Contextprotected abstract void setSessionAttribute(R request, String name, Object value, boolean create)
request - the request to set the session attribute inname - the name of the attributevalue - the value of the attributecreate - if false, the attribute will only be set if the session
already exists, otherwise it will always be setIllegalStateException - if create is true, and the session can't be
createdprotected abstract Object getSessionAttribute(R request, String name, boolean create)
request - the request to get the session attribute fromname - the name of the attributecreate - if false, the attribute will only be retrieved if the
session already exists, other wise it will always be retrievedIllegalStateException - if create is true, and the session can't be
createdprotected abstract Object getSessionAttributeFromSession(S session, String name)
session - the session to get the session attribute fromname - the name of the attributeIllegalStateException - if create is true, and the session can't be
createdprotected abstract void removeRequestAttribute(R request, String name)
request - the request to remove the attribute fromname - the name of the attributeprotected abstract void setRequestAttribute(R request, String name, Object value)
request - the request to set the attribute fromname - the name of the attributevalue - the value of the attributeprotected abstract Object getRequestAttribute(R request, String name)
request - the request to get the attribute fromname - the name of the attribute to getprotected abstract BoundBeanStore createRequestBeanStore(NamingScheme namingScheme, R request)
protected abstract BoundBeanStore createSessionBeanStore(NamingScheme namingScheme, S session)
protected abstract String getNamingSchemePrefix()
protected boolean isAssociated()
protected R getRequest()
Copyright © 2015. All Rights Reserved.