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

public final Class CharSequenceEncoder

extends AbstractEncoder<CharSequence>
Class Inheritance
Imports
java.nio.charset.Charset, .CoderMalfunctionError, .StandardCharsets, java.util.Map, java.util.concurrent.ConcurrentHashMap, .ConcurrentMap, org.reactivestreams.Publisher, reactor.core.publisher.Flux, org.springframework.core.ResolvableType, org.springframework.core.io.buffer.DataBuffer, .DataBufferFactory, .DataBufferUtils, org.springframework.core.log.LogFormatUtils, org.springframework.lang.Nullable, org.springframework.util.MimeType, .MimeTypeUtils

Encode from a CharSequence stream to a bytes stream.
Authors
Sebastien Deleuze, Arjen Poutsma, Rossen Stoyanchev
Since
5.0
See Also
StringDecoder

Field Summary

Modifier and TypeField and Description
private final ConcurrentMap<Charset, Float>
public static final Charset
DEFAULT_CHARSET

The default charset used by the encoder.

Inherited from org.springframework.core.codec.AbstractEncoder:
logger

Constructor Summary

AccessConstructor and Description
private

Method Summary

Modifier and TypeMethod and Description
public static CharSequenceEncoder
allMimeTypes()

Create a CharSequenceEncoder that supports all MIME types.

pack-priv int
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
)

Overrides org.springframework.core.codec.AbstractEncoder.canEncode.

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<? extends CharSequence>
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(CharSequence
the value to be encoded
charSequence
,
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.
private Charset
getCharset(MimeType mimeType)

public static CharSequenceEncoder
textPlainOnly()

Create a CharSequenceEncoder that supports only "text/plain".

Inherited from org.springframework.core.codec.AbstractEncoder:
getEncodableMimeTypesgetLoggersetLogger

Field Detail

charsetToMaxBytesPerCharback to summary
private final ConcurrentMap<Charset, Float> charsetToMaxBytesPerChar
DEFAULT_CHARSETback to summary
public static final Charset DEFAULT_CHARSET

The default charset used by the encoder.

Constructor Detail

CharSequenceEncoderback to summary
private CharSequenceEncoder(MimeType... mimeTypes)

Method Detail

allMimeTypesback to summary
public static CharSequenceEncoder allMimeTypes()

Create a CharSequenceEncoder that supports all MIME types.

calculateCapacityback to summary
pack-priv int calculateCapacity(CharSequence sequence, Charset charset)
canEncodeback to summary
public boolean canEncode(ResolvableType elementType, MimeType mimeType)

Overrides org.springframework.core.codec.AbstractEncoder.canEncode.

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<? extends CharSequence> 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<? extends CharSequence>

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(CharSequence charSequence, 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
charSequence:CharSequence

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
getCharsetback to summary
private Charset getCharset(MimeType mimeType)
textPlainOnlyback to summary
public static CharSequenceEncoder textPlainOnly()

Create a CharSequenceEncoder that supports only "text/plain".