Class MessageBuilder<T>
java.lang.Object
org.springframework.integration.support.AbstractIntegrationMessageBuilder<T>
org.springframework.integration.support.MessageBuilder<T>
public final class MessageBuilder<T> extends AbstractIntegrationMessageBuilder<T>
The default message builder; creates immutable
GenericMessages.
Named MessageBuilder instead of DefaultMessageBuilder for backwards
compatibility.-
Method Summary
Modifier and Type Method Description org.springframework.messaging.Message<T>build()MessageBuilder<T>copyHeaders(java.util.Map<java.lang.String,?> headersToCopy)Copy the name-value pairs from the provided Map.MessageBuilder<T>copyHeadersIfAbsent(java.util.Map<java.lang.String,?> headersToCopy)Copy the name-value pairs from the provided Map.static <T> MessageBuilder<T>fromMessage(org.springframework.messaging.Message<T> message)Create a builder for a newMessageinstance pre-populated with all of the headers copied from the provided message.protected java.lang.ObjectgetCorrelationId()<V> VgetHeader(java.lang.String key, java.lang.Class<V> type)java.util.Map<java.lang.String,java.lang.Object>getHeaders()TgetPayload()protected java.util.List<java.util.List<java.lang.Object>>getSequenceDetails()protected java.lang.ObjectgetSequenceNumber()protected java.lang.ObjectgetSequenceSize()MessageBuilder<T>popSequenceDetails()MessageBuilder<T>pushSequenceDetails(java.lang.Object correlationId, int sequenceNumber, int sequenceSize)MessageBuilder<T>readOnlyHeaders(java.lang.String... readOnlyHeaders)Specify a list of headers which should be considered as read only and prohibited from being populated in the message.MessageBuilder<T>removeHeader(java.lang.String headerName)Remove the value for the given header name.MessageBuilder<T>removeHeaders(java.lang.String... headerPatterns)Removes all headers provided via array of 'headerPatterns'.MessageBuilder<T>setCorrelationId(java.lang.Object correlationId)MessageBuilder<T>setErrorChannel(org.springframework.messaging.MessageChannel errorChannel)MessageBuilder<T>setErrorChannelName(java.lang.String errorChannelName)MessageBuilder<T>setExpirationDate(java.lang.Long expirationDate)MessageBuilder<T>setExpirationDate(java.util.Date expirationDate)MessageBuilder<T>setHeader(java.lang.String headerName, java.lang.Object headerValue)Set the value for the given header name.MessageBuilder<T>setHeaderIfAbsent(java.lang.String headerName, java.lang.Object headerValue)Set the value for the given header name only if the header name is not already associated with a value.MessageBuilder<T>setPriority(java.lang.Integer priority)MessageBuilder<T>setReplyChannel(org.springframework.messaging.MessageChannel replyChannel)MessageBuilder<T>setReplyChannelName(java.lang.String replyChannelName)MessageBuilder<T>setSequenceNumber(java.lang.Integer sequenceNumber)MessageBuilder<T>setSequenceSize(java.lang.Integer sequenceSize)static <T> MessageBuilder<T>withPayload(T payload)Create a builder for a newMessageinstance with the provided payload.Methods inherited from class org.springframework.integration.support.AbstractIntegrationMessageBuilder
filterAndCopyHeadersIfAbsent
-
Method Details
-
getPayload
- Specified by:
getPayloadin classAbstractIntegrationMessageBuilder<T>
-
getHeaders
public java.util.Map<java.lang.String,java.lang.Object> getHeaders()- Specified by:
getHeadersin classAbstractIntegrationMessageBuilder<T>
-
getHeader
@Nullable public <V> V getHeader(java.lang.String key, java.lang.Class<V> type)- Specified by:
getHeaderin classAbstractIntegrationMessageBuilder<T>
-
fromMessage
Create a builder for a newMessageinstance pre-populated with all of the headers copied from the provided message. The payload of the provided Message will also be used as the payload for the new message.- Type Parameters:
T- The type of the payload.- Parameters:
message- the Message from which the payload and all headers will be copied- Returns:
- A MessageBuilder.
-
withPayload
Create a builder for a newMessageinstance with the provided payload.- Type Parameters:
T- The type of the payload.- Parameters:
payload- the payload for the new message- Returns:
- A MessageBuilder.
-
setHeader
public MessageBuilder<T> setHeader(java.lang.String headerName, @Nullable java.lang.Object headerValue)Set the value for the given header name. If the provided value isnull, the header will be removed.- Specified by:
setHeaderin classAbstractIntegrationMessageBuilder<T>- Parameters:
headerName- The header name.headerValue- The header value.- Returns:
- this MessageBuilder.
-
setHeaderIfAbsent
public MessageBuilder<T> setHeaderIfAbsent(java.lang.String headerName, java.lang.Object headerValue)Set the value for the given header name only if the header name is not already associated with a value.- Specified by:
setHeaderIfAbsentin classAbstractIntegrationMessageBuilder<T>- Parameters:
headerName- The header name.headerValue- The header value.- Returns:
- this MessageBuilder.
-
removeHeaders
Removes all headers provided via array of 'headerPatterns'. As the name suggests the array may contain simple matching patterns for header names. Supported pattern styles are: "xxx*", "*xxx", "*xxx*" and "xxx*yyy".- Specified by:
removeHeadersin classAbstractIntegrationMessageBuilder<T>- Parameters:
headerPatterns- The header patterns.- Returns:
- this MessageBuilder.
-
removeHeader
Remove the value for the given header name.- Specified by:
removeHeaderin classAbstractIntegrationMessageBuilder<T>- Parameters:
headerName- The header name.- Returns:
- this MessageBuilder.
-
copyHeaders
Copy the name-value pairs from the provided Map. This operation will overwrite any existing values. Use {copyHeadersIfAbsent(Map)to avoid overwriting values. Note that the 'id' and 'timestamp' header values will never be overwritten.- Specified by:
copyHeadersin classAbstractIntegrationMessageBuilder<T>- Parameters:
headersToCopy- The headers to copy.- Returns:
- this MessageBuilder.
- See Also:
MessageHeaders.ID,MessageHeaders.TIMESTAMP
-
copyHeadersIfAbsent
public MessageBuilder<T> copyHeadersIfAbsent(@Nullable java.util.Map<java.lang.String,?> headersToCopy)Copy the name-value pairs from the provided Map. This operation will not overwrite any existing values.- Specified by:
copyHeadersIfAbsentin classAbstractIntegrationMessageBuilder<T>- Parameters:
headersToCopy- The headers to copy.- Returns:
- this MessageBuilder.
-
getSequenceDetails
@Nullable protected java.util.List<java.util.List<java.lang.Object>> getSequenceDetails()- Specified by:
getSequenceDetailsin classAbstractIntegrationMessageBuilder<T>
-
getCorrelationId
@Nullable protected java.lang.Object getCorrelationId()- Specified by:
getCorrelationIdin classAbstractIntegrationMessageBuilder<T>
-
getSequenceNumber
protected java.lang.Object getSequenceNumber()- Specified by:
getSequenceNumberin classAbstractIntegrationMessageBuilder<T>
-
getSequenceSize
protected java.lang.Object getSequenceSize()- Specified by:
getSequenceSizein classAbstractIntegrationMessageBuilder<T>
-
pushSequenceDetails
public MessageBuilder<T> pushSequenceDetails(java.lang.Object correlationId, int sequenceNumber, int sequenceSize)- Overrides:
pushSequenceDetailsin classAbstractIntegrationMessageBuilder<T>
-
popSequenceDetails
- Overrides:
popSequenceDetailsin classAbstractIntegrationMessageBuilder<T>
-
setExpirationDate
- Overrides:
setExpirationDatein classAbstractIntegrationMessageBuilder<T>
-
setExpirationDate
- Overrides:
setExpirationDatein classAbstractIntegrationMessageBuilder<T>
-
setCorrelationId
- Overrides:
setCorrelationIdin classAbstractIntegrationMessageBuilder<T>
-
setReplyChannel
public MessageBuilder<T> setReplyChannel(org.springframework.messaging.MessageChannel replyChannel)- Overrides:
setReplyChannelin classAbstractIntegrationMessageBuilder<T>
-
setReplyChannelName
- Overrides:
setReplyChannelNamein classAbstractIntegrationMessageBuilder<T>
-
setErrorChannel
public MessageBuilder<T> setErrorChannel(org.springframework.messaging.MessageChannel errorChannel)- Overrides:
setErrorChannelin classAbstractIntegrationMessageBuilder<T>
-
setErrorChannelName
- Overrides:
setErrorChannelNamein classAbstractIntegrationMessageBuilder<T>
-
setSequenceNumber
- Overrides:
setSequenceNumberin classAbstractIntegrationMessageBuilder<T>
-
setSequenceSize
- Overrides:
setSequenceSizein classAbstractIntegrationMessageBuilder<T>
-
setPriority
- Overrides:
setPriorityin classAbstractIntegrationMessageBuilder<T>
-
readOnlyHeaders
Specify a list of headers which should be considered as read only and prohibited from being populated in the message.- Parameters:
readOnlyHeaders- the list of headers forreadOnlymode. Defaults toMessageHeaders.IDandMessageHeaders.TIMESTAMP.- Returns:
- the current
MessageBuilder - Since:
- 4.3.2
- See Also:
IntegrationMessageHeaderAccessor.isReadOnly(String)
-
build
- Specified by:
buildin classAbstractIntegrationMessageBuilder<T>
-