Class StompHeaders
- java.lang.Object
- org.springframework.messaging.simp.stomp.StompHeaders
- All Implemented Interfaces:
Serializable
,Map<String,List<String>>
,MultiValueMap<String,String>
public class StompHeaders extends Object implements MultiValueMap<String,String>, Serializable
Represents STOMP frame headers.In addition to the normal methods defined by
Map
, this class offers the following convenience methods:getFirst(String)
return the first value for a header nameadd(String, String)
add to the list of values for a header nameset(String, String)
set a header name to a single string value
- Since:
- 4.2
- Author:
- Rossen Stoyanchev
- See Also:
- https://stomp.github.io/stomp-specification-1.2.html#Frames_and_Headers, Serialized Form
Field Summary
Fields Modifier and Type Field Description static String
ACCEPT_VERSION
static String
ACK
static String
CONTENT_LENGTH
static String
CONTENT_TYPE
static String
DESTINATION
static String
HEARTBEAT
static String
HOST
static String
ID
static String
LOGIN
static String
MESSAGE_ID
static String
PASSCODE
static String
RECEIPT
static String
RECEIPT_ID
static String
SERVER
static String
SESSION
static String
SUBSCRIPTION
Constructor Summary
Constructors Constructor Description StompHeaders()
Create a new instance to be populated with new header values.
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description void
add(String headerName, String headerValue)
Add the given, single header value under the given name.void
addAll(String headerName, List<? extends String> headerValues)
Add all the values of the given list to the current list of values for the given key.void
addAll(MultiValueMap<String,String> values)
Add all the values of the givenMultiValueMap
to the current values.void
clear()
boolean
containsKey(Object key)
boolean
containsValue(Object value)
Set<Map.Entry<String,List<String>>>
entrySet()
boolean
equals(Object other)
List<String>
get(Object key)
String[]
getAcceptVersion()
Get the accept-version header.String
getAck()
Get the ack header.long
getContentLength()
Return the content-length header or -1 if unknown.MimeType
getContentType()
Return the content-type header value.String
getDestination()
Get the destination header.String
getFirst(String headerName)
Return the first header value for the given header name, if any.long[]
getHeartbeat()
Get the heartbeat header.String
getHost()
Get the host header.String
getId()
Get the id header.String
getLogin()
Get the login header.String
getMessageId()
Get the message-id header.String
getPasscode()
Get the passcode header.String
getReceipt()
Get the receipt header.String
getReceiptId()
Get the receipt header.String
getServer()
Get the server header.String
getSession()
Get the session header.String
getSubscription()
Get the subscription header.int
hashCode()
boolean
isEmpty()
boolean
isHeartbeatEnabled()
Whether heartbeats are enabled.Set<String>
keySet()
List<String>
put(String key, List<String> value)
void
putAll(Map<? extends String,? extends List<String>> map)
static StompHeaders
readOnlyStompHeaders(Map<String,List<String>> headers)
Return aStompHeaders
object that can only be read, not written to.List<String>
remove(Object key)
void
set(String headerName, String headerValue)
Set the given, single header value under the given name.void
setAcceptVersion(String... acceptVersions)
Set the accept-version header.void
setAck(String ack)
Set the ack header to one of "auto", "client", or "client-individual".void
setAll(Map<String,String> values)
Set the given values under.void
setContentLength(long contentLength)
Set the content-length header.void
setContentType(MimeType mimeType)
Set the content-type header.void
setDestination(String destination)
Set the destination header.void
setHeartbeat(long[] heartbeat)
Set the heartbeat header.void
setHost(String host)
Set the host header.void
setId(String id)
Set the id header.void
setLogin(String login)
Set the login header.void
setMessageId(String messageId)
Set the message-id header.void
setPasscode(String passcode)
Set the passcode header.void
setReceipt(String receipt)
Set the receipt header.void
setReceiptId(String receiptId)
Set the receipt-id header.void
setServer(String server)
Set the server header.void
setSession(String session)
Set the session header.void
setSubscription(String subscription)
Set the login header.int
size()
Map<String,String>
toSingleValueMap()
Return aMap
with the first values contained in thisMultiValueMap
.String
toString()
Collection<List<String>>
values()
Methods inherited from class java.lang.Object
clone, finalize, getClass, notify, notifyAll, wait, wait, wait
Methods inherited from interface java.util.Map
compute, computeIfAbsent, computeIfPresent, forEach, getOrDefault, merge, putIfAbsent, remove, replace, replace, replaceAll
Methods inherited from interface org.springframework.util.MultiValueMap
addIfAbsent
Field Detail
CONTENT_TYPE
public static final String CONTENT_TYPE
- See Also:
- Constant Field Values
CONTENT_LENGTH
public static final String CONTENT_LENGTH
- See Also:
- Constant Field Values
RECEIPT
public static final String RECEIPT
- See Also:
- Constant Field Values
HOST
public static final String HOST
- See Also:
- Constant Field Values
ACCEPT_VERSION
public static final String ACCEPT_VERSION
- See Also:
- Constant Field Values
LOGIN
public static final String LOGIN
- See Also:
- Constant Field Values
PASSCODE
public static final String PASSCODE
- See Also:
- Constant Field Values
HEARTBEAT
public static final String HEARTBEAT
- See Also:
- Constant Field Values
SESSION
public static final String SESSION
- See Also:
- Constant Field Values
SERVER
public static final String SERVER
- See Also:
- Constant Field Values
DESTINATION
public static final String DESTINATION
- See Also:
- Constant Field Values
ID
public static final String ID
- See Also:
- Constant Field Values
ACK
public static final String ACK
- See Also:
- Constant Field Values
SUBSCRIPTION
public static final String SUBSCRIPTION
- See Also:
- Constant Field Values
MESSAGE_ID
public static final String MESSAGE_ID
- See Also:
- Constant Field Values
RECEIPT_ID
public static final String RECEIPT_ID
- See Also:
- Constant Field Values
Constructor Detail
StompHeaders
public StompHeaders()
Create a new instance to be populated with new header values.
Method Detail
setContentType
public void setContentType(@Nullable MimeType mimeType)
Set the content-type header. Applies to the SEND, MESSAGE, and ERROR frames.
getContentType
@Nullable public MimeType getContentType()
Return the content-type header value.
setContentLength
public void setContentLength(long contentLength)
Set the content-length header. Applies to the SEND, MESSAGE, and ERROR frames.
getContentLength
public long getContentLength()
Return the content-length header or -1 if unknown.
setReceipt
public void setReceipt(@Nullable String receipt)
Set the receipt header. Applies to any client frame other than CONNECT.
getReceipt
@Nullable public String getReceipt()
Get the receipt header.
setHost
public void setHost(@Nullable String host)
Set the host header. Applies to the CONNECT frame.
setAcceptVersion
public void setAcceptVersion(@Nullable String... acceptVersions)
Set the accept-version header. Must be one of "1.1", "1.2", or both. Applies to the CONNECT frame.- Since:
- 5.0.7
getAcceptVersion
@Nullable public String[] getAcceptVersion()
Get the accept-version header.- Since:
- 5.0.7
setLogin
public void setLogin(@Nullable String login)
Set the login header. Applies to the CONNECT frame.
setPasscode
public void setPasscode(@Nullable String passcode)
Set the passcode header. Applies to the CONNECT frame.
getPasscode
@Nullable public String getPasscode()
Get the passcode header.
setHeartbeat
public void setHeartbeat(@Nullable long[] heartbeat)
Set the heartbeat header. Applies to the CONNECT and CONNECTED frames.
getHeartbeat
@Nullable public long[] getHeartbeat()
Get the heartbeat header.
isHeartbeatEnabled
public boolean isHeartbeatEnabled()
Whether heartbeats are enabled. Returnsfalse
ifsetHeartbeat(long[])
is set to "0,0", andtrue
otherwise.
setSession
public void setSession(@Nullable String session)
Set the session header. Applies to the CONNECTED frame.
getSession
@Nullable public String getSession()
Get the session header.
setServer
public void setServer(@Nullable String server)
Set the server header. Applies to the CONNECTED frame.
setDestination
public void setDestination(@Nullable String destination)
Set the destination header.
getDestination
@Nullable public String getDestination()
Get the destination header. Applies to the SEND, SUBSCRIBE, and MESSAGE frames.
setId
public void setId(@Nullable String id)
Set the id header. Applies to the SUBSCR0BE, UNSUBSCRIBE, and ACK or NACK frames.
setAck
public void setAck(@Nullable String ack)
Set the ack header to one of "auto", "client", or "client-individual". Applies to the SUBSCRIBE and MESSAGE frames.
setSubscription
public void setSubscription(@Nullable String subscription)
Set the login header. Applies to the MESSAGE frame.
getSubscription
@Nullable public String getSubscription()
Get the subscription header.
setMessageId
public void setMessageId(@Nullable String messageId)
Set the message-id header. Applies to the MESSAGE frame.
getMessageId
@Nullable public String getMessageId()
Get the message-id header.
setReceiptId
public void setReceiptId(@Nullable String receiptId)
Set the receipt-id header. Applies to the RECEIPT frame.
getReceiptId
@Nullable public String getReceiptId()
Get the receipt header.
getFirst
@Nullable public String getFirst(String headerName)
Return the first header value for the given header name, if any.- Specified by:
getFirst
in interfaceMultiValueMap<String,String>
- Parameters:
headerName
- the header name- Returns:
- the first header value, or
null
if none
add
public void add(String headerName, @Nullable String headerValue)
Add the given, single header value under the given name.- Specified by:
add
in interfaceMultiValueMap<String,String>
- Parameters:
headerName
- the header nameheaderValue
- the header value- Throws:
UnsupportedOperationException
- if adding headers is not supported- See Also:
put(String, List)
,set(String, String)
addAll
public void addAll(String headerName, List<? extends String> headerValues)
Description copied from interface:MultiValueMap
Add all the values of the given list to the current list of values for the given key.- Specified by:
addAll
in interfaceMultiValueMap<String,String>
- Parameters:
headerName
- they keyheaderValues
- the values to be added
addAll
public void addAll(MultiValueMap<String,String> values)
Description copied from interface:MultiValueMap
Add all the values of the givenMultiValueMap
to the current values.- Specified by:
addAll
in interfaceMultiValueMap<String,String>
- Parameters:
values
- the values to be added
set
public void set(String headerName, @Nullable String headerValue)
Set the given, single header value under the given name.- Specified by:
set
in interfaceMultiValueMap<String,String>
- Parameters:
headerName
- the header nameheaderValue
- the header value- Throws:
UnsupportedOperationException
- if adding headers is not supported- See Also:
put(String, List)
,add(String, String)
setAll
public void setAll(Map<String,String> values)
Description copied from interface:MultiValueMap
Set the given values under.- Specified by:
setAll
in interfaceMultiValueMap<String,String>
- Parameters:
values
- the values.
toSingleValueMap
public Map<String,String> toSingleValueMap()
Description copied from interface:MultiValueMap
Return aMap
with the first values contained in thisMultiValueMap
.- Specified by:
toSingleValueMap
in interfaceMultiValueMap<String,String>
- Returns:
- a single value representation of this map
containsKey
public boolean containsKey(Object key)
- Specified by:
containsKey
in interfaceMap<String,List<String>>
containsValue
public boolean containsValue(Object value)
- Specified by:
containsValue
in interfaceMap<String,List<String>>
values
public Collection<List<String>> values()
hashCode
public int hashCode()
readOnlyStompHeaders
public static StompHeaders readOnlyStompHeaders(@Nullable Map<String,List<String>> headers)
Return aStompHeaders
object that can only be read, not written to.