package wf.servitor.common.utils import com.fasterxml.jackson.core.JsonGenerator import com.fasterxml.jackson.core.JsonParser import com.fasterxml.jackson.core.type.TypeReference import com.fasterxml.jackson.databind.DeserializationContext import com.fasterxml.jackson.databind.JsonDeserializer import com.fasterxml.jackson.databind.JsonSerializer import com.fasterxml.jackson.databind.SerializerProvider import com.fasterxml.jackson.databind.module.SimpleModule import org.joda.time.DateTime import wf.servitor.common.workflow.Flow import wf.servitor.common.workflow.Step object JacksonModule : SimpleModule() { val listStepType = object : TypeReference>() {} init { addDeserializer(Flow::class.java, object : JsonDeserializer() { override fun deserialize(p: JsonParser, ctxt: DeserializationContext): Flow { return Flow(p.readValueAs>(listStepType).toMutableList()) } }) addSerializer(DateTime::class.java, object : JsonSerializer() { override fun serialize(value: DateTime, gen: JsonGenerator, serializers: SerializerProvider) { gen.writeString(value.toString()) } }) } }