org.springframework.messaging.core

## Class AbstractMessageReceivingTemplate<D>

- java.lang.Object
- - org.springframework.messaging.core.AbstractMessageSendingTemplate<D>
  - - org.springframework.messaging.core.AbstractMessageReceivingTemplate<D>

Type Parameters:
  `D` - the destination type

All Implemented Interfaces:
  MessageReceivingOperations<D>, MessageSendingOperations<D>

Direct Known Subclasses:
  AbstractMessagingTemplate

    public abstract class AbstractMessageReceivingTemplate<D>
    extends AbstractMessageSendingTemplate<D>
    implements MessageReceivingOperations<D>

An extension of `AbstractMessageSendingTemplate` that adds support for receive style operations as defined by `MessageReceivingOperations`.

Since:
  4.1
Author:
  Mark Fisher, Rossen Stoyanchev, Stephane Nicoll

### Field Summary

### Fields inherited from class org.springframework.messaging.core.AbstractMessageSendingTemplate

`CONVERSION_HINT_HEADER, logger`

### Constructor Summary

Constructors
Constructor and Description
`AbstractMessageReceivingTemplate()`

### Method Summary

All Methods Instance Methods Abstract Methods Concrete Methods
`protected <T> T` `doConvert(Message<?> message, Class<T> targetClass)` Convert from the given message to the given target class.
`protected abstract Message<?>` `doReceive(D destination)` Actually receive a message from the given destination.
`Message<?>` `receive()` Receive a message from a default destination.
`Message<?>` `receive(D destination)` Receive a message from the given destination.
`<T> T` `receiveAndConvert(Class<T> targetClass)` Receive a message from a default destination and convert its payload to the specified target class.
`<T> T` `receiveAndConvert(D destination, Class<T> targetClass)` Receive a message from the given destination and convert its payload to the specified target class.

### Methods inherited from class org.springframework.messaging.core.AbstractMessageSendingTemplate

`convertAndSend, convertAndSend, convertAndSend, convertAndSend, convertAndSend, convertAndSend, doConvert, doSend, getDefaultDestination, getMessageConverter, getRequiredDefaultDestination, processHeadersToSend, send, send, setDefaultDestination, setMessageConverter`

### Methods inherited from class java.lang.Object

`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

### Constructor Detail

#### AbstractMessageReceivingTemplate

    public AbstractMessageReceivingTemplate()

### Method Detail

#### receive

    @Nullable
    public Message<?> receive()

Description copied from interface: `MessageReceivingOperations`
Receive a message from a default destination.

Specified by:
  `receive` in interface `MessageReceivingOperations<D>`
Returns:
  the received message, possibly `null` if the message could not be received, for example due to a timeout

#### receive

    @Nullable
    public Message<?> receive(D destination)

Description copied from interface: `MessageReceivingOperations`
Receive a message from the given destination.

Specified by:
  `receive` in interface `MessageReceivingOperations<D>`
Parameters:
  `destination` - the target destination
Returns:
  the received message, possibly `null` if the message could not be received, for example due to a timeout

#### doReceive

    @Nullable
    protected abstract Message<?> doReceive(D destination)

Actually receive a message from the given destination.

Parameters:
  `destination` - the target destination
Returns:
  the received message, possibly `null` if the message could not be received, for example due to a timeout

#### receiveAndConvert

    @Nullable
    public <T> T receiveAndConvert(Class<T> targetClass)

Description copied from interface: `MessageReceivingOperations`
Receive a message from a default destination and convert its payload to the specified target class.

Specified by:
  `receiveAndConvert` in interface `MessageReceivingOperations<D>`
Parameters:
  `targetClass` - the target class to convert the payload to
Returns:
  the converted payload of the reply message, possibly `null` if the message could not be received, for example due to a timeout

#### receiveAndConvert

    @Nullable
    public <T> T receiveAndConvert(D destination,
                                             Class<T> targetClass)

Description copied from interface: `MessageReceivingOperations`
Receive a message from the given destination and convert its payload to the specified target class.

Specified by:
  `receiveAndConvert` in interface `MessageReceivingOperations<D>`
Parameters:
  `destination` - the target destination
  `targetClass` - the target class to convert the payload to
Returns:
  the converted payload of the reply message, possibly `null` if the message could not be received, for example due to a timeout

#### doConvert

    @Nullable
    protected <T> T doConvert(Message<?> message,
                                        Class<T> targetClass)

Convert from the given message to the given target class.

Parameters:
  `message` - the message to convert
  `targetClass` - the target class to convert the payload to
Returns:
  the converted payload of the reply message (never `null`)