package io.apibuilder.spec.v0.models import com.fasterxml.jackson.core.JsonGenerator import com.fasterxml.jackson.core.JsonParser import com.fasterxml.jackson.core.Version import com.fasterxml.jackson.databind.DeserializationContext import com.fasterxml.jackson.databind.JsonDeserializer import com.fasterxml.jackson.databind.JsonSerializer import com.fasterxml.jackson.databind.ObjectMapper import com.fasterxml.jackson.databind.SerializerProvider import com.fasterxml.jackson.databind.module.SimpleModule import org.threeten.bp.Instant import org.threeten.bp.LocalDate /** * This code was generated by [models.generator.kotlin.KotlinGenerator] */ object JacksonObjectMapperFactory { val module: SimpleModule = SimpleModule(Version(1, 0, 0, null, null, null)) fun create(): ObjectMapper { val mapper = com.fasterxml.jackson.databind.ObjectMapper() mapper.registerModule(com.fasterxml.jackson.module.kotlin.KotlinModule()) mapper.registerModule(com.fasterxml.jackson.datatype.joda.JodaModule()) mapper.configure(com.fasterxml.jackson.databind.DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false) mapper.configure(com.fasterxml.jackson.databind.DeserializationFeature.READ_UNKNOWN_ENUM_VALUES_USING_DEFAULT_VALUE, true) module.addDeserializer(Instant::class.java, InstantDeserializer) module.addSerializer(Instant::class.java, InstantSerializer) module.addDeserializer(LocalDate::class.java, LocalDateDeserializer) module.addSerializer(LocalDate::class.java, LocalDateSerializer) mapper.registerModule(module) return mapper } object InstantDeserializer : JsonDeserializer() { override fun deserialize(jsonParser: JsonParser, deserializationContext: DeserializationContext): Instant { val value = jsonParser.valueAsString return Instant.parse(value) } } object InstantSerializer : JsonSerializer() { override fun serialize( value: Instant, jsonGenerator: JsonGenerator, serializerProvider: SerializerProvider ) { jsonGenerator.writeString(value.toString()) } } object LocalDateDeserializer : JsonDeserializer() { override fun deserialize(jsonParser: JsonParser, deserializationContext: DeserializationContext): LocalDate { val value = jsonParser.valueAsString return LocalDate.parse(value) } } object LocalDateSerializer : JsonSerializer() { override fun serialize( value: LocalDate, jsonGenerator: JsonGenerator, serializerProvider: SerializerProvider ) { jsonGenerator.writeString(value.toString()) } } }