All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.hexagonkt.serialization.jackson.yaml.YamlFormat.kt Maven / Gradle / Ivy

There is a newer version: 3.7.4
Show newest version
package com.hexagonkt.serialization.jackson.yaml

import com.fasterxml.jackson.core.JsonFactory
import com.fasterxml.jackson.dataformat.yaml.YAMLFactory
import com.fasterxml.jackson.dataformat.yaml.YAMLGenerator.Feature.*
import com.hexagonkt.core.media.APPLICATION_YAML
import com.hexagonkt.core.media.MediaType
import com.hexagonkt.serialization.jackson.JacksonTextFormat

open class YamlFormat(
    prettyPrint: Boolean = true
) : JacksonTextFormat({ createYamlFactory(prettyPrint) }, prettyPrint) {

    private companion object {
        fun createYamlFactory(prettyPrint: Boolean): JsonFactory =
            with(YAMLFactory()) {
                configure(WRITE_DOC_START_MARKER, false)
                configure(ALWAYS_QUOTE_NUMBERS_AS_STRINGS, true)
                configure(MINIMIZE_QUOTES, prettyPrint)
                configure(INDENT_ARRAYS_WITH_INDICATOR, prettyPrint)
            }
    }

    override val mediaType: MediaType = APPLICATION_YAML
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy