Class AbstractKotlinSerializationHttpMessageConverter<T extends kotlinx.serialization.SerialFormat>
java.lang.Object
org.springframework.http.converter.AbstractHttpMessageConverter<T>
org.springframework.http.converter.AbstractSmartHttpMessageConverter<Object>
org.springframework.http.converter.AbstractKotlinSerializationHttpMessageConverter<T>
- Type Parameters:
T
- the type ofSerialFormat
- All Implemented Interfaces:
HttpMessageConverter<Object>
,SmartHttpMessageConverter<Object>
- Direct Known Subclasses:
KotlinSerializationBinaryHttpMessageConverter
,KotlinSerializationStringHttpMessageConverter
public abstract class AbstractKotlinSerializationHttpMessageConverter<T extends kotlinx.serialization.SerialFormat>
extends AbstractSmartHttpMessageConverter<Object>
Abstract base class for
HttpMessageConverter
implementations that
use Kotlin serialization.- Since:
- 6.0
- Author:
- Andreas Ahlenstorf, Sebastien Deleuze, Juergen Hoeller, Iain Henderson, Arjen Poutsma
-
Field Summary
Fields inherited from class org.springframework.http.converter.AbstractHttpMessageConverter
logger
-
Constructor Summary
ModifierConstructorDescriptionprotected
AbstractKotlinSerializationHttpMessageConverter
(T format, MediaType... supportedMediaTypes) Construct anAbstractKotlinSerializationHttpMessageConverter
with multiple supported media type and format. -
Method Summary
Modifier and TypeMethodDescriptionboolean
canRead
(ResolvableType type, MediaType mediaType) Indicates whether the given type can be read by this converter.boolean
canWrite
(ResolvableType type, Class<?> clazz, MediaType mediaType) Indicates whether the given class can be written by this converter.final Object
read
(ResolvableType type, HttpInputMessage inputMessage, Map<String, Object> hints) Read an object of the given type from the given input message, and returns it.protected abstract Object
readInternal
(kotlinx.serialization.KSerializer<Object> serializer, T format, HttpInputMessage inputMessage) Reads the given input message with the given serializer and format.protected boolean
Indicates whether the given class is supported by this converter.protected boolean
supportsRepeatableWrites
(Object object) Indicates whether this message converter can write the given object multiple times.protected abstract void
writeInternal
(Object object, kotlinx.serialization.KSerializer<Object> serializer, T format, HttpOutputMessage outputMessage) Write the given object to the output message with the given serializer and format.protected final void
writeInternal
(Object object, ResolvableType type, HttpOutputMessage outputMessage, Map<String, Object> hints) Abstract template method that writes the actual body.Methods inherited from class org.springframework.http.converter.AbstractSmartHttpMessageConverter
readInternal, write, writeInternal
Methods inherited from class org.springframework.http.converter.AbstractHttpMessageConverter
addDefaultHeaders, canRead, canRead, canWrite, canWrite, getContentLength, getDefaultCharset, getDefaultContentType, getSupportedMediaTypes, read, setDefaultCharset, setSupportedMediaTypes, write
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
Methods inherited from interface org.springframework.http.converter.HttpMessageConverter
getSupportedMediaTypes, getSupportedMediaTypes
Methods inherited from interface org.springframework.http.converter.SmartHttpMessageConverter
canRead, canWrite, read, write
-
Constructor Details
-
AbstractKotlinSerializationHttpMessageConverter
protected AbstractKotlinSerializationHttpMessageConverter(T format, MediaType... supportedMediaTypes) Construct anAbstractKotlinSerializationHttpMessageConverter
with multiple supported media type and format.- Parameters:
format
- the formatsupportedMediaTypes
- the supported media types
-
-
Method Details
-
supports
Description copied from class:AbstractHttpMessageConverter
Indicates whether the given class is supported by this converter.- Overrides:
supports
in classAbstractSmartHttpMessageConverter<Object>
- Parameters:
clazz
- the class to test for support- Returns:
true
if supported;false
otherwise
-
canRead
Description copied from interface:SmartHttpMessageConverter
Indicates whether the given type can be read by this converter. This method should perform the same checks asHttpMessageConverter.canRead(Class, MediaType)
with additional ones related to the generic type.- Specified by:
canRead
in interfaceSmartHttpMessageConverter<T extends kotlinx.serialization.SerialFormat>
- Overrides:
canRead
in classAbstractSmartHttpMessageConverter<Object>
- Parameters:
type
- the (potentially generic) type to test for readability. The type source may be used for retrieving additional information (the related method signature for example) when relevant.mediaType
- the media type to read, can benull
if not specified. Typically, the value of aContent-Type
header.- Returns:
true
if readable;false
otherwise
-
canWrite
Description copied from interface:SmartHttpMessageConverter
Indicates whether the given class can be written by this converter.This method should perform the same checks as
HttpMessageConverter.canWrite(Class, MediaType)
with additional ones related to the generic type.- Specified by:
canWrite
in interfaceSmartHttpMessageConverter<T extends kotlinx.serialization.SerialFormat>
- Overrides:
canWrite
in classAbstractSmartHttpMessageConverter<Object>
- Parameters:
type
- the (potentially generic) target type to test for writability (can beResolvableType.NONE
if not specified). The type source may be used for retrieving additional information (the related method signature for example) when relevant.clazz
- the source object class to test for writabilitymediaType
- the media type to write (can benull
if not specified); typically the value of anAccept
header.- Returns:
true
if writable;false
otherwise
-
read
public final Object read(ResolvableType type, HttpInputMessage inputMessage, @Nullable Map<String, Object> hints) throws IOException, HttpMessageNotReadableExceptionDescription copied from interface:SmartHttpMessageConverter
Read an object of the given type from the given input message, and returns it.- Parameters:
type
- the (potentially generic) type of object to return. This type must have previously been passed to thecanRead
method of this interface, which must have returnedtrue
. The type source may be used for retrieving additional information (the related method signature for example) when relevant.inputMessage
- the HTTP input message to read fromhints
- additional information about how to encode- Returns:
- the converted object
- Throws:
IOException
- in case of I/O errorsHttpMessageNotReadableException
- in case of conversion errors
-
readInternal
protected abstract Object readInternal(kotlinx.serialization.KSerializer<Object> serializer, T format, HttpInputMessage inputMessage) throws IOException, HttpMessageNotReadableException Reads the given input message with the given serializer and format. -
writeInternal
protected final void writeInternal(Object object, ResolvableType type, HttpOutputMessage outputMessage, @Nullable Map<String, Object> hints) throws IOException, HttpMessageNotWritableExceptionDescription copied from class:AbstractSmartHttpMessageConverter
Abstract template method that writes the actual body. Invoked fromAbstractSmartHttpMessageConverter.write(Object, ResolvableType, MediaType, HttpOutputMessage, Map)
.- Specified by:
writeInternal
in classAbstractSmartHttpMessageConverter<Object>
- Parameters:
object
- the object to write to the output messagetype
- the type of object to writeoutputMessage
- the HTTP output message to write tohints
- additional information about how to encode- Throws:
IOException
- in case of I/O errorsHttpMessageNotWritableException
- in case of conversion errors
-
writeInternal
protected abstract void writeInternal(Object object, kotlinx.serialization.KSerializer<Object> serializer, T format, HttpOutputMessage outputMessage) throws IOException, HttpMessageNotWritableException Write the given object to the output message with the given serializer and format. -
supportsRepeatableWrites
Description copied from class:AbstractHttpMessageConverter
Indicates whether this message converter can write the given object multiple times.The default implementation returns
false
.- Overrides:
supportsRepeatableWrites
in classAbstractHttpMessageConverter<Object>
- Parameters:
object
- the object t- Returns:
true
ift
can be written repeatedly;false
otherwise
-