Class EncoderHttpMessageWriter<T>
java.lang.Object
org.springframework.http.codec.EncoderHttpMessageWriter<T>
- Type Parameters:
- T- the type of objects in the input stream
- All Implemented Interfaces:
- HttpMessageWriter<T>
- Direct Known Subclasses:
- ProtobufHttpMessageWriter
HttpMessageWriter that wraps and delegates to an Encoder.
 Also a HttpMessageWriter that pre-resolves encoding hints
 from the extra information available on the server side such as the request
 or controller method annotations.
- Since:
- 5.0
- Author:
- Arjen Poutsma, Sebastien Deleuze, Rossen Stoyanchev, Brian Clozel, Sam Brannen
- 
Constructor SummaryConstructorsConstructorDescriptionEncoderHttpMessageWriter(Encoder<T> encoder) Create an instance wrapping the givenEncoder.
- 
Method SummaryModifier and TypeMethodDescriptionbooleancanWrite(ResolvableType elementType, @Nullable MediaType mediaType) Whether the given object type is supported by this writer.Return theEncoderof this writer.Return the list of media types supported by this Writer.getWritableMediaTypes(ResolvableType elementType) Return the list of media types supported by this Writer for the given type of element.getWriteHints(ResolvableType streamType, ResolvableType elementType, @Nullable MediaType mediaType, ServerHttpRequest request, ServerHttpResponse response) Get additional hints for encoding for example based on the server request or annotations from controller method parameters.reactor.core.publisher.Mono<Void> write(Publisher<? extends T> inputStream, ResolvableType actualType, ResolvableType elementType, @Nullable MediaType mediaType, ServerHttpRequest request, ServerHttpResponse response, Map<String, Object> hints) Server-side only alternative toHttpMessageWriter.write(Publisher, ResolvableType, MediaType, ReactiveHttpOutputMessage, Map)with additional context available.reactor.core.publisher.Mono<Void> write(Publisher<? extends T> inputStream, ResolvableType elementType, @Nullable MediaType mediaType, ReactiveHttpOutputMessage message, Map<String, Object> hints) Write a given stream of object to the output message.
- 
Constructor Details- 
EncoderHttpMessageWriter
 
- 
- 
Method Details- 
getEncoder
- 
getWritableMediaTypesDescription copied from interface:HttpMessageWriterReturn the list of media types supported by this Writer. The list may not apply to every possible target element type and calls to this method should typically be guarded viacanWrite(elementType, null). The list may also exclude media types supported only for a specific element type. Alternatively, useHttpMessageWriter.getWritableMediaTypes(ResolvableType)for a more precise list.- Specified by:
- getWritableMediaTypesin interface- HttpMessageWriter<T>
- Returns:
- the general list of supported media types
 
- 
getWritableMediaTypesDescription copied from interface:HttpMessageWriterReturn the list of media types supported by this Writer for the given type of element. This list may differ fromHttpMessageWriter.getWritableMediaTypes()if the Writer doesn't support the element type, or if it supports it only for a subset of media types.- Specified by:
- getWritableMediaTypesin interface- HttpMessageWriter<T>
- Parameters:
- elementType- the type of element to encode
- Returns:
- the list of media types supported for the given class
 
- 
canWriteDescription copied from interface:HttpMessageWriterWhether the given object type is supported by this writer.- Specified by:
- canWritein interface- HttpMessageWriter<T>
- Parameters:
- elementType- the type of object to check
- mediaType- the media type for the write (possibly- null)
- Returns:
- trueif writable,- falseotherwise
 
- 
writepublic reactor.core.publisher.Mono<Void> write(Publisher<? extends T> inputStream, ResolvableType elementType, @Nullable MediaType mediaType, ReactiveHttpOutputMessage message, Map<String, Object> hints) Description copied from interface:HttpMessageWriterWrite a given stream of object to the output message.- Specified by:
- writein interface- HttpMessageWriter<T>
- Parameters:
- inputStream- the objects to write
- elementType- the type of objects in the stream which must have been previously checked via- HttpMessageWriter.canWrite(ResolvableType, MediaType)
- mediaType- the content type for the write (possibly- nullto indicate that the default content type of the writer must be used)
- message- the message to write to
- hints- additional information about how to encode and write
- Returns:
- indicates completion or error
 
- 
writepublic reactor.core.publisher.Mono<Void> write(Publisher<? extends T> inputStream, ResolvableType actualType, ResolvableType elementType, @Nullable MediaType mediaType, ServerHttpRequest request, ServerHttpResponse response, Map<String, Object> hints) Description copied from interface:HttpMessageWriterServer-side only alternative toHttpMessageWriter.write(Publisher, ResolvableType, MediaType, ReactiveHttpOutputMessage, Map)with additional context available.- Specified by:
- writein interface- HttpMessageWriter<T>
- Parameters:
- actualType- the actual return type of the method that returned the value; for annotated controllers, the- MethodParametercan be accessed via- ResolvableType.getSource().
- elementType- the type of Objects in the input stream
- mediaType- the content type to use (possibly- nullindicating the default content type of the writer should be used)
- request- the current request
- response- the current response
- Returns:
- a Monothat indicates completion of writing or error
 
- 
getWriteHintsprotected Map<String,Object> getWriteHints(ResolvableType streamType, ResolvableType elementType, @Nullable MediaType mediaType, ServerHttpRequest request, ServerHttpResponse response) Get additional hints for encoding for example based on the server request or annotations from controller method parameters. By default, delegate to the encoder if it is an instance ofHttpMessageEncoder.
 
-