Top Description Fields Constructors Methods
org.springframework.http.codec

public abstract Class KotlinSerializationStringEncoder<T extends kotlinx.serialization.StringFormat>

extends KotlinSerializationSupport<T extends kotlinx.serialization.StringFormat>
implements Encoder<Object>
Class Inheritance
All Implemented Interfaces
org.springframework.core.codec.Encoder
Known Direct Subclasses
org.springframework.http.codec.json.KotlinSerializationJsonEncoder
Type Parameters
<T>
the type of StringFormat
Imports
java.util.Collection, .HashSet, .List, .Map, .Set, kotlin.text.Charsets, kotlinx.serialization.KSerializer, kotlinx.serialization.StringFormat, org.reactivestreams.Publisher, reactor.core.publisher.Flux, .Mono, org.springframework.core.ResolvableType, org.springframework.core.codec.CharSequenceEncoder, .Encoder, .EncodingException, org.springframework.core.io.buffer.DataBuffer, .DataBufferFactory, org.springframework.http.MediaType, org.springframework.lang.Nullable, org.springframework.util.MimeType

Abstract base class for Encoder implementations that defer to Kotlin string serializers.
Authors
Sebastien Deleuze, Iain Henderson, Arjen Poutsma
Since
6.0

Field Summary

Modifier and TypeField and Description
private final CharSequenceEncoder
private final Set<MimeType>

Constructor Summary

AccessConstructor and Description
protected
KotlinSerializationStringEncoder(T format, MimeType... supportedMimeTypes)

Method Summary

Modifier and TypeMethod and Description
public boolean
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
)

Implements org.springframework.core.codec.Encoder.canEncode.

Whether the encoder supports the given source element type and the MIME type for the output stream.
public Flux<DataBuffer>
encode(Publisher<?>
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
)

Implements org.springframework.core.codec.Encoder.encode.

Encode a stream of Objects of type T into a DataBuffer output stream.
public DataBuffer
encodeValue(Object
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
)

Overrides default org.springframework.core.codec.Encoder.encodeValue.

Encode an Object of type T to a data buffer.
public List<MimeType>
getEncodableMimeTypes()

Implements org.springframework.core.codec.Encoder.getEncodableMimeTypes.

Return the list of MIME types supported by this Encoder.
public List<MimeType>
getEncodableMimeTypes(ResolvableType
the type of element to check for encoding
elementType
)

Overrides default org.springframework.core.codec.Encoder.getEncodableMimeTypes.

Return the list of MIME types supported by this Encoder for the given type of element.
public void
Inherited from org.springframework.http.codec.KotlinSerializationSupport:
canSerializeformatserializersupportedMimeTypes

Field Detail

charSequenceEncoderback to summary
private final CharSequenceEncoder charSequenceEncoder
streamingMediaTypesback to summary
private final Set<MimeType> streamingMediaTypes

Constructor Detail

KotlinSerializationStringEncoderback to summary
protected KotlinSerializationStringEncoder(T format, MimeType... supportedMimeTypes)

Method Detail

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

Implements org.springframework.core.codec.Encoder.canEncode.

Doc from org.springframework.core.codec.Encoder.canEncode.

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

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

Implements org.springframework.core.codec.Encoder.encode.

Doc from org.springframework.core.codec.Encoder.encode.

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

Parameters
inputStream:Publisher<?>

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

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

Overrides default org.springframework.core.codec.Encoder.encodeValue.

Doc from org.springframework.core.codec.Encoder.encodeValue.

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:Object

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

Annotations
@Override
getEncodableMimeTypesback to summary
public List<MimeType> getEncodableMimeTypes()

Implements org.springframework.core.codec.Encoder.getEncodableMimeTypes.

Doc from org.springframework.core.codec.Encoder.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

Annotations
@Override
getEncodableMimeTypesback to summary
public List<MimeType> getEncodableMimeTypes(ResolvableType elementType)

Overrides default org.springframework.core.codec.Encoder.getEncodableMimeTypes.

Doc from org.springframework.core.codec.Encoder.getEncodableMimeTypes.

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

Annotations
@Override
setStreamingMediaTypesback to summary
public void setStreamingMediaTypes(Collection<MediaType> streamingMediaTypes)