org.springframework.messaging.handler.invocation

## Class CompletableFutureReturnValueHandler

- java.lang.Object
- - org.springframework.messaging.handler.invocation.AbstractAsyncReturnValueHandler
  - - org.springframework.messaging.handler.invocation.CompletableFutureReturnValueHandler

All Implemented Interfaces:
  AsyncHandlerMethodReturnValueHandler, HandlerMethodReturnValueHandler

    public class CompletableFutureReturnValueHandler
    extends AbstractAsyncReturnValueHandler

Support for `CompletableFuture` (and as of 4.3.7 also `CompletionStage`) as a return value type.

Since:
  4.2
Author:
  Sebastien Deleuze, Juergen Hoeller

### Constructor Summary

Constructors
Constructor and Description
`CompletableFutureReturnValueHandler()`

### Method Summary

All Methods Instance Methods Concrete Methods
`boolean` `supportsReturnType(org.springframework.core.MethodParameter returnType)` Whether the given method return type is supported by this handler.
`org.springframework.util.concurrent.ListenableFuture<?>` `toListenableFuture(Object returnValue, org.springframework.core.MethodParameter returnType)` Adapt the asynchronous return value to a `ListenableFuture`.

### Methods inherited from class org.springframework.messaging.handler.invocation.AbstractAsyncReturnValueHandler

`handleReturnValue, isAsyncReturnValue`

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

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

### Constructor Detail

#### CompletableFutureReturnValueHandler

    public CompletableFutureReturnValueHandler()

### Method Detail

#### supportsReturnType

    public boolean supportsReturnType(org.springframework.core.MethodParameter returnType)

Description copied from interface: `HandlerMethodReturnValueHandler`
Whether the given method return type is supported by this handler.

Parameters:
  `returnType` - the method return type to check
Returns:
  `true` if this handler supports the supplied return type; `false` otherwise

#### toListenableFuture

    public org.springframework.util.concurrent.ListenableFuture<?> toListenableFuture(Object returnValue,
                                                                                      org.springframework.core.MethodParameter returnType)

Description copied from interface: `AsyncHandlerMethodReturnValueHandler`
Adapt the asynchronous return value to a `ListenableFuture`. Implementations should consider returning an instance of `SettableListenableFuture`. Return value handling will then continue when the ListenableFuture is completed with either success or error.

Note: this method will only be invoked after `HandlerMethodReturnValueHandler.supportsReturnType(org.springframework.core.MethodParameter)` is called and it returns `true`.

Parameters:
  `returnValue` - the value returned from the handler method
  `returnType` - the type of the return value
Returns:
  the resulting ListenableFuture, or `null` in which case no further handling will be performed