public class MessageHeaderAccessor
extends java.lang.Object
MessageHeaders
. Supports creation of new
headers or modification of existing message headers.
Sub-classes can provide additional typed getters and setters for convenient access
to specific headers. Getters and setters should delegate to getHeader(String)
or setHeader(String, Object)
respectively. At the end toMap()
can be
used to obtain the resulting headers.
Modifier and Type | Field and Description |
---|---|
private java.util.Map<java.lang.String,java.lang.Object> |
headers |
protected Log |
logger |
private MessageHeaders |
originalHeaders |
Constructor and Description |
---|
MessageHeaderAccessor()
A constructor for creating new message headers.
|
MessageHeaderAccessor(Message<?> message)
A constructor for accessing and modifying existing message headers.
|
Modifier and Type | Method and Description |
---|---|
void |
copyHeaders(java.util.Map<java.lang.String,?> headersToCopy)
Copy the name-value pairs from the provided Map.
|
void |
copyHeadersIfAbsent(java.util.Map<java.lang.String,?> headersToCopy)
Copy the name-value pairs from the provided Map.
|
MimeType |
getContentType() |
java.lang.Object |
getErrorChannel() |
java.lang.Object |
getHeader(java.lang.String headerName) |
java.util.UUID |
getId() |
private java.util.List<java.lang.String> |
getMatchingHeaderNames(java.lang.String pattern,
java.util.Map<java.lang.String,java.lang.Object> headers) |
java.lang.Object |
getReplyChannel() |
java.lang.Long |
getTimestamp() |
boolean |
isModified() |
protected boolean |
isReadOnly(java.lang.String headerName) |
void |
removeHeader(java.lang.String headerName)
Remove the value for the given header name.
|
void |
removeHeaders(java.lang.String... headerPatterns)
Removes all headers provided via array of 'headerPatterns'.
|
void |
setContentType(MimeType contentType) |
void |
setErrorChannel(MessageChannel errorChannel) |
void |
setErrorChannelName(java.lang.String errorChannelName) |
void |
setHeader(java.lang.String name,
java.lang.Object value)
Set the value for the given header name.
|
void |
setHeaderIfAbsent(java.lang.String name,
java.lang.Object value)
Set the value for the given header name only if the header name is not already associated with a value.
|
void |
setReplyChannel(MessageChannel replyChannel) |
void |
setReplyChannelName(java.lang.String replyChannelName) |
java.util.Map<java.lang.String,java.lang.Object> |
toMap()
Return a header map including original, wrapped headers (if any) plus additional
header updates made through accessor methods.
|
java.lang.String |
toString() |
protected void |
verifyType(java.lang.String headerName,
java.lang.Object headerValue) |
protected Log logger
private final MessageHeaders originalHeaders
private final java.util.Map<java.lang.String,java.lang.Object> headers
public MessageHeaderAccessor()
public MessageHeaderAccessor(Message<?> message)
public java.util.Map<java.lang.String,java.lang.Object> toMap()
public boolean isModified()
public java.lang.Object getHeader(java.lang.String headerName)
public void setHeader(java.lang.String name, java.lang.Object value)
null
the
header will be removed.protected boolean isReadOnly(java.lang.String headerName)
public void setHeaderIfAbsent(java.lang.String name, java.lang.Object value)
public void removeHeaders(java.lang.String... headerPatterns)
private java.util.List<java.lang.String> getMatchingHeaderNames(java.lang.String pattern, java.util.Map<java.lang.String,java.lang.Object> headers)
public void removeHeader(java.lang.String headerName)
public void copyHeaders(java.util.Map<java.lang.String,?> headersToCopy)
copyHeadersIfAbsent(Map)
to avoid overwriting
values.public void copyHeadersIfAbsent(java.util.Map<java.lang.String,?> headersToCopy)
public java.util.UUID getId()
public java.lang.Long getTimestamp()
public void setReplyChannel(MessageChannel replyChannel)
public java.lang.Object getReplyChannel()
public void setReplyChannelName(java.lang.String replyChannelName)
public void setErrorChannel(MessageChannel errorChannel)
public java.lang.Object getErrorChannel()
public void setErrorChannelName(java.lang.String errorChannelName)
public MimeType getContentType()
public void setContentType(MimeType contentType)
public java.lang.String toString()
toString
in class java.lang.Object
protected void verifyType(java.lang.String headerName, java.lang.Object headerValue)