withContext(Dispatchers.Default) {
IOUtils.toString(
JacksonUtils::class.java.classLoader
- .getResourceAsStream(fileName), Charset.defaultCharset()
+ .getResourceAsStream(fileName),
+ Charset.defaultCharset()
)
}
}
return getJson(wrapperMap, pretty)
}
- fun getJson(any: kotlin.Any, pretty: Boolean = false): String {
+ fun getJson(any: kotlin.Any, pretty: Boolean = false, includeNull: Boolean = false): String {
val objectMapper = jacksonObjectMapper()
- objectMapper.setSerializationInclusion(JsonInclude.Include.NON_NULL)
+ if (includeNull) {
+ objectMapper.setSerializationInclusion(JsonInclude.Include.ALWAYS)
+ } else {
+ objectMapper.setSerializationInclusion(JsonInclude.Include.NON_NULL)
+ }
if (pretty) {
objectMapper.enable(SerializationFeature.INDENT_OUTPUT)
}
fun checkJsonNodeValueOfCollectionType(type: String, jsonNode: JsonNode): Boolean {
return when (type.toLowerCase()) {
BluePrintConstants.DATA_TYPE_LIST -> jsonNode.isArray
- BluePrintConstants.DATA_TYPE_MAP -> jsonNode.isContainerNode
else -> false
}
}
fun populatePrimitiveDefaultValues(key: String, primitiveType: String, objectNode: ObjectNode) {
val defaultValue = getDefaultValueOfPrimitiveAsJsonNode(primitiveType)
?: throw BluePrintException("populatePrimitiveDefaultValues expected only primitive values! Received type ($primitiveType)")
- objectNode.set(key, defaultValue)
+ objectNode.set<JsonNode>(key, defaultValue)
}
fun populatePrimitiveDefaultValuesForArrayNode(primitiveType: String, arrayNode: ArrayNode) {
fun populateJsonNodeValues(key: String, nodeValue: JsonNode?, type: String, objectNode: ObjectNode) {
if (nodeValue == null || nodeValue is NullNode) {
- objectNode.set(key, nodeValue)
+ objectNode.set<JsonNode>(key, nodeValue)
} else if (BluePrintTypes.validPrimitiveTypes().contains(type)) {
populatePrimitiveValues(key, nodeValue, type, objectNode)
} else {
- objectNode.set(key, nodeValue)
+ objectNode.set<JsonNode>(key, nodeValue)
}
}