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
ConstructorsModifierConstructorDescriptionprotectedAbstractKotlinSerializationHttpMessageConverter(T format, MediaType... supportedMediaTypes) Construct anAbstractKotlinSerializationHttpMessageConverterwith multiple supported media type and format. -
Method Summary
Modifier and TypeMethodDescriptionbooleancanRead(ResolvableType type, MediaType mediaType) Indicates whether the given type can be read by this converter.booleancanWrite(ResolvableType type, Class<?> clazz, MediaType mediaType) Indicates whether the given class can be written by this converter.final Objectread(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 ObjectreadInternal(kotlinx.serialization.KSerializer<Object> serializer, T format, HttpInputMessage inputMessage) Reads the given input message with the given serializer and format.protected booleanIndicates whether the given class is supported by this converter.protected booleansupportsRepeatableWrites(Object object) Indicates whether this message converter can write the given object multiple times.protected abstract voidwriteInternal(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 voidwriteInternal(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, writeInternalMethods inherited from class org.springframework.http.converter.AbstractHttpMessageConverter
addDefaultHeaders, canRead, canRead, canWrite, canWrite, getContentLength, getDefaultCharset, getDefaultContentType, getSupportedMediaTypes, read, setDefaultCharset, setSupportedMediaTypes, writeMethods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitMethods inherited from interface org.springframework.http.converter.HttpMessageConverter
getSupportedMediaTypes, getSupportedMediaTypesMethods inherited from interface org.springframework.http.converter.SmartHttpMessageConverter
canRead, canWrite, read, write
-
Constructor Details
-
AbstractKotlinSerializationHttpMessageConverter
protected AbstractKotlinSerializationHttpMessageConverter(T format, MediaType... supportedMediaTypes) Construct anAbstractKotlinSerializationHttpMessageConverterwith multiple supported media type and format.- Parameters:
format- the formatsupportedMediaTypes- the supported media types
-
-
Method Details
-
supports
Description copied from class:AbstractHttpMessageConverterIndicates whether the given class is supported by this converter.- Overrides:
supportsin classAbstractSmartHttpMessageConverter<Object>- Parameters:
clazz- the class to test for support- Returns:
trueif supported;falseotherwise
-
canRead
Description copied from interface:SmartHttpMessageConverterIndicates 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:
canReadin interfaceSmartHttpMessageConverter<T extends kotlinx.serialization.SerialFormat>- Overrides:
canReadin 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 benullif not specified. Typically, the value of aContent-Typeheader.- Returns:
trueif readable;falseotherwise
-
canWrite
Description copied from interface:SmartHttpMessageConverterIndicates 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:
canWritein interfaceSmartHttpMessageConverter<T extends kotlinx.serialization.SerialFormat>- Overrides:
canWritein classAbstractSmartHttpMessageConverter<Object>- Parameters:
type- the (potentially generic) target type to test for writability (can beResolvableType.NONEif 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 benullif not specified); typically the value of anAcceptheader.- Returns:
trueif writable;falseotherwise
-
read
public final Object read(ResolvableType type, HttpInputMessage inputMessage, @Nullable Map<String, Object> hints) throws IOException, HttpMessageNotReadableExceptionDescription copied from interface:SmartHttpMessageConverterRead 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 thecanReadmethod 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:AbstractSmartHttpMessageConverterAbstract template method that writes the actual body. Invoked fromAbstractSmartHttpMessageConverter.write(Object, ResolvableType, MediaType, HttpOutputMessage, Map).- Specified by:
writeInternalin 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:AbstractHttpMessageConverterIndicates whether this message converter can write the given object multiple times.The default implementation returns
false.- Overrides:
supportsRepeatableWritesin classAbstractHttpMessageConverter<Object>- Parameters:
object- the object t- Returns:
trueiftcan be written repeatedly;falseotherwise
-