You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
31 lines
1.2 KiB
Kotlin
31 lines
1.2 KiB
Kotlin
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<List<Step>>() {}
|
|
|
|
init {
|
|
addDeserializer(Flow::class.java, object : JsonDeserializer<Flow>() {
|
|
override fun deserialize(p: JsonParser, ctxt: DeserializationContext): Flow {
|
|
return Flow(p.readValueAs<List<Step>>(listStepType).toMutableList())
|
|
}
|
|
})
|
|
|
|
addSerializer(DateTime::class.java, object : JsonSerializer<DateTime>() {
|
|
override fun serialize(value: DateTime, gen: JsonGenerator, serializers: SerializerProvider) {
|
|
gen.writeString(value.toString())
|
|
}
|
|
})
|
|
}
|
|
} |