Top Description Methods
org.springframework.core.codec

public Interface Encoder<T>

Known Direct Implementers
org.springframework.core.codec.AbstractEncoder
Type Parameters
<T>
the type of elements in the input stream
Imports
java.util.Collections, .List, .Map, org.reactivestreams.Publisher, reactor.core.publisher.Flux, .Mono, org.springframework.core.ResolvableType, org.springframework.core.io.buffer.DataBuffer, .DataBufferFactory, org.springframework.lang.Nullable, org.springframework.util.MimeType

Strategy to encode a stream of Objects of type <T> into an output stream of bytes.
Authors
Sebastien Deleuze, Rossen Stoyanchev
Since
5.0

Method Summary

Modifier and TypeMethod and Description
public boolean

Returns:

true if supported, false otherwise
canEncode
(ResolvableType
the type of elements in the source stream
elementType
,
MimeType
the MIME type for the output stream (can be null if not specified)
mimeType
)

Whether the encoder supports the given source element type and the MIME type for the output stream.

public Flux<DataBuffer>

Returns:

the output stream
encode
(Publisher<? extends T>
the input stream of Objects to encode. If the input should be encoded as a single value rather than as a stream of elements, an instance of Mono should be used.
inputStream
,
DataBufferFactory
for creating output stream DataBuffer's
bufferFactory
,
ResolvableType
the expected type of elements in the input stream; this type must have been previously passed to the canEncode method and it must have returned true.
elementType
,
MimeType
the MIME type for the output content (optional)
mimeType
,
Map<String, Object>
additional information about how to encode
hints
)

Encode a stream of Objects of type T into a DataBuffer output stream.

public default DataBuffer

Returns:

the encoded content
encodeValue
(T
the value to be encoded
value
,
DataBufferFactory
for creating the output DataBuffer
bufferFactory
,
ResolvableType
the type for the value being encoded
valueType
,
MimeType
the MIME type for the output content (optional)
mimeType
,
Map<String, Object>
additional information about how to encode
hints
)

Encode an Object of type T to a data buffer.

public List<MimeType>

Returns:

the list of supported MIME types
getEncodableMimeTypes
()

Return the list of MIME types supported by this Encoder.

public default List<MimeType>

Returns:

the list of MIME types supported for the given element type
getEncodableMimeTypes
(ResolvableType
the type of element to check for encoding
elementType
)

Return the list of MIME types supported by this Encoder for the given type of element.

Method Detail

canEncodeback to summary
public boolean canEncode(ResolvableType elementType, MimeType mimeType)

Whether the encoder supports the given source element type and the MIME type for the output stream.

Parameters
elementType:ResolvableType

the type of elements in the source stream

mimeType:MimeType

the MIME type for the output stream (can be null if not specified)

Returns:boolean

true if supported, false otherwise

encodeback to summary
public Flux<DataBuffer> encode(Publisher<? extends T> inputStream, DataBufferFactory bufferFactory, ResolvableType elementType, MimeType mimeType, Map<String, Object> hints)

Encode a stream of Objects of type T into a DataBuffer output stream.

Parameters
inputStream:Publisher<? extends T>

the input stream of Objects to encode. If the input should be encoded as a single value rather than as a stream of elements, an instance of Mono should be used.

bufferFactory:DataBufferFactory

for creating output stream DataBuffer's

elementType:ResolvableType

the expected type of elements in the input stream; this type must have been previously passed to the canEncode method and it must have returned true.

mimeType:MimeType

the MIME type for the output content (optional)

hints:Map<String, Object>

additional information about how to encode

Returns:Flux<DataBuffer>

the output stream

encodeValueback to summary
public default DataBuffer encodeValue(T value, DataBufferFactory bufferFactory, ResolvableType valueType, MimeType mimeType, Map<String, Object> hints)

Encode an Object of type T to a data buffer. This is useful for scenarios, that distinct messages (or events) are encoded and handled individually, in fully aggregated form.

By default this method raises UnsupportedOperationException and it is expected that some encoders cannot produce a single buffer or cannot do so synchronously (e.g. encoding a Resource).

Parameters
value:T

the value to be encoded

bufferFactory:DataBufferFactory

for creating the output DataBuffer

valueType:ResolvableType

the type for the value being encoded

mimeType:MimeType

the MIME type for the output content (optional)

hints:Map<String, Object>

additional information about how to encode

Returns:DataBuffer

the encoded content

Since
5.2
getEncodableMimeTypesback to summary
public List<MimeType> getEncodableMimeTypes()

Return the list of MIME types supported by this Encoder. The list may not apply to every possible target element type and calls to this method should typically be guarded via canEncode(elementType, null). The list may also exclude MIME types supported only for a specific element type. Alternatively, use getEncodableMimeTypes(ResolvableType) for a more precise list.

Returns:List<MimeType>

the list of supported MIME types

getEncodableMimeTypesback to summary
public default List<MimeType> getEncodableMimeTypes(ResolvableType elementType)

Return the list of MIME types supported by this Encoder for the given type of element. This list may differ from the getEncodableMimeTypes() if the Encoder doesn't support the element type or if it supports it only for a subset of MIME types.

Parameters
elementType:ResolvableType

the type of element to check for encoding

Returns:List<MimeType>

the list of MIME types supported for the given element type

Since
5.3.4