public class SimpAttributes extends Object
Modifier and Type | Field and Description |
---|---|
static String |
DESTRUCTION_CALLBACK_NAME_PREFIX
Prefix for the name of session attributes used to store destruction callbacks.
|
static String |
SESSION_COMPLETED_NAME
Key set after the session is completed
|
static String |
SESSION_MUTEX_NAME
Key for the mutex session attribute
|
Constructor and Description |
---|
SimpAttributes(String sessionId,
Map<String,Object> attributes)
Constructor wrapping the given session attributes map.
|
Modifier and Type | Method and Description |
---|---|
static SimpAttributes |
fromMessage(Message<?> message)
Extract the SiMP session attributes from the given message and
wrap them in a
SimpAttributes instance. |
Object |
getAttribute(String name)
Return the value for the attribute of the given name, if any.
|
String[] |
getAttributeNames()
Retrieve the names of all attributes.
|
String |
getSessionId()
Return an id for the associated session.
|
Object |
getSessionMutex()
Expose the object to synchronize on for the underlying session.
|
boolean |
isSessionCompleted()
Whether the
sessionCompleted() was already invoked. |
void |
registerDestructionCallback(String name,
Runnable callback)
Register a callback to execute on destruction of the specified attribute.
|
void |
removeAttribute(String name)
Remove the attribute of the given name, if it exists.
|
void |
sessionCompleted()
Invoked when the session is completed.
|
void |
setAttribute(String name,
Object value)
Set the value with the given name replacing an existing value (if any).
|
public static final String SESSION_MUTEX_NAME
public static final String SESSION_COMPLETED_NAME
public static final String DESTRUCTION_CALLBACK_NAME_PREFIX
@Nullable public Object getAttribute(String name)
name
- the name of the attributenull
if not foundpublic void setAttribute(String name, Object value)
name
- the name of the attributevalue
- the value for the attributepublic void removeAttribute(String name)
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.
name
- the name of the attributepublic String[] getAttributeNames()
null
public void registerDestructionCallback(String name, Runnable callback)
name
- the name of the attribute to register the callback forcallback
- the destruction callback to be executedpublic String getSessionId()
null
)public Object getSessionMutex()
null
)public boolean isSessionCompleted()
sessionCompleted()
was already invoked.public void sessionCompleted()
public static SimpAttributes fromMessage(Message<?> message)
SimpAttributes
instance.message
- the message to extract session attributes from