Class SimpAttributes
- java.lang.Object
- org.springframework.messaging.simp.SimpAttributes
public class SimpAttributes extends Object
A wrapper class for access to attributes associated with a SiMP session (e.g. WebSocket session).- Since:
- 4.1
- Author:
- Rossen Stoyanchev
Field Summary
Fields Modifier and Type Field Description static StringDESTRUCTION_CALLBACK_NAME_PREFIXPrefix for the name of session attributes used to store destruction callbacks.static StringSESSION_COMPLETED_NAMEKey set after the session is completedstatic StringSESSION_MUTEX_NAMEKey for the mutex session attribute
Constructor Summary
Constructors Constructor Description SimpAttributes(String sessionId, Map<String,Object> attributes)Constructor wrapping the given session attributes map.
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description static SimpAttributesfromMessage(Message<?> message)Extract the SiMP session attributes from the given message and wrap them in aSimpAttributesinstance.ObjectgetAttribute(String name)Return the value for the attribute of the given name, if any.String[]getAttributeNames()Retrieve the names of all attributes.StringgetSessionId()Return an id for the associated session.ObjectgetSessionMutex()Expose the object to synchronize on for the underlying session.booleanisSessionCompleted()Whether thesessionCompleted()was already invoked.voidregisterDestructionCallback(String name, Runnable callback)Register a callback to execute on destruction of the specified attribute.voidremoveAttribute(String name)Remove the attribute of the given name, if it exists.voidsessionCompleted()Invoked when the session is completed.voidsetAttribute(String name, Object value)Set the value with the given name replacing an existing value (if any).
Field Detail
SESSION_MUTEX_NAME
public static final String SESSION_MUTEX_NAME
Key for the mutex session attribute
SESSION_COMPLETED_NAME
public static final String SESSION_COMPLETED_NAME
Key set after the session is completed
DESTRUCTION_CALLBACK_NAME_PREFIX
public static final String DESTRUCTION_CALLBACK_NAME_PREFIX
Prefix for the name of session attributes used to store destruction callbacks.
Constructor Detail
SimpAttributes
public SimpAttributes(String sessionId, Map<String,Object> attributes)
Constructor wrapping the given session attributes map.- Parameters:
sessionId- the id of the associated sessionattributes- the attributes
Method Detail
getAttribute
public Object getAttribute(String name)
Return the value for the attribute of the given name, if any.- Parameters:
name- the name of the attribute- Returns:
- the current attribute value, or
nullif not found
setAttribute
public void setAttribute(String name, Object value)
Set the value with the given name replacing an existing value (if any).- Parameters:
name- the name of the attributevalue- the value for the attribute
removeAttribute
public void removeAttribute(String name)
Remove the attribute of the given name, if it exists.Also removes the registered destruction callback for the specified attribute, if any. However it does not execute the callback. It is assumed the removed object will continue to be used and destroyed independently at the appropriate time.
- Parameters:
name- the name of the attribute
getAttributeNames
public String[] getAttributeNames()
Retrieve the names of all attributes.- Returns:
- the attribute names as String array, never
null
registerDestructionCallback
public void registerDestructionCallback(String name, Runnable callback)
Register a callback to execute on destruction of the specified attribute. The callback is executed when the session is closed.- Parameters:
name- the name of the attribute to register the callback forcallback- the destruction callback to be executed
getSessionId
public String getSessionId()
Return an id for the associated session.- Returns:
- the session id as String (never
null)
getSessionMutex
public Object getSessionMutex()
Expose the object to synchronize on for the underlying session.- Returns:
- the session mutex to use (never
null)
isSessionCompleted
public boolean isSessionCompleted()
Whether thesessionCompleted()was already invoked.
sessionCompleted
public void sessionCompleted()
Invoked when the session is completed. Executed completion callbacks.
fromMessage
public static SimpAttributes fromMessage(Message<?> message)
Extract the SiMP session attributes from the given message and wrap them in aSimpAttributesinstance.- Parameters:
message- the message to extract session attributes from