/*\r
* Copyright © 2017-2018 AT&T Intellectual Property.\r
+ * Modifications Copyright © 2018 IBM.\r
*\r
* Licensed under the Apache License, Version 2.0 (the "License");\r
* you may not use this file except in compliance with the License.\r
import com.fasterxml.jackson.module.kotlin.jacksonObjectMapper\r
import org.apache.commons.io.FileUtils\r
import org.apache.commons.io.IOUtils\r
+import org.onap.ccsdk.apps.controllerblueprints.core.BluePrintConstants\r
import org.onap.ccsdk.apps.controllerblueprints.core.BluePrintException\r
import org.onap.ccsdk.apps.controllerblueprints.core.BluePrintTypes\r
import org.onap.ccsdk.apps.controllerblueprints.core.format\r
return jacksonObjectMapper().readValue(content, valueType)\r
}\r
\r
+ @JvmStatic\r
+ fun <T> readValueFromFile(fileName: String, valueType: Class<T>): T? {\r
+ val content: String = FileUtils.readFileToString(File(fileName), Charset.defaultCharset())\r
+ ?: throw BluePrintException(format("Failed to read json file : {}", fileName))\r
+ return readValue(content, valueType)\r
+ }\r
+\r
+ @JvmStatic\r
+ fun <T> readValueFromClassPathFile(fileName: String, valueType: Class<T>): T? {\r
+ val content: String = IOUtils.toString(JacksonUtils::class.java.classLoader.getResourceAsStream(fileName), Charset.defaultCharset())\r
+ ?: throw BluePrintException(String.format("Failed to read json file : %s", fileName))\r
+ return readValue(content, valueType)\r
+ }\r
+\r
@JvmStatic\r
fun jsonNodeFromObject(from: kotlin.Any): JsonNode = jacksonObjectMapper().convertValue(from, JsonNode::class.java)\r
\r
return objectMapper.readValue<List<T>>(content, javaType)\r
}\r
\r
+ @JvmStatic\r
+ fun <T> getListFromFile(fileName: String, valueType: Class<T>): List<T>? {\r
+ val content: String = FileUtils.readFileToString(File(fileName), Charset.defaultCharset())\r
+ ?: throw BluePrintException(format("Failed to read json file : {}", fileName))\r
+ return getListFromJson(content, valueType)\r
+ }\r
+\r
+ @JvmStatic\r
+ fun <T> getListFromClassPathFile(fileName: String, valueType: Class<T>): List<T>? {\r
+ val content: String = IOUtils.toString(JacksonUtils::class.java.classLoader.getResourceAsStream(fileName), Charset.defaultCharset())\r
+ ?: throw BluePrintException(String.format("Failed to read json file : %s", fileName))\r
+ return getListFromJson(content, valueType)\r
+ }\r
+\r
@JvmStatic\r
fun <T> getMapFromJson(content: String, valueType: Class<T>): MutableMap<String, T>? {\r
val objectMapper = jacksonObjectMapper()\r
return objectMapper.readValue(content, typeRef)\r
}\r
\r
+ @JvmStatic\r
+ fun checkJsonNodeValueOfType(type: String, jsonNode: JsonNode): Boolean {\r
+ if (BluePrintTypes.validPrimitiveTypes().contains(type)) {\r
+ return checkJsonNodeValueOfPrimitiveType(type, jsonNode)\r
+ } else if (BluePrintTypes.validCollectionTypes().contains(type)) {\r
+ return checkJsonNodeValueOfCollectionType(type, jsonNode)\r
+ }\r
+ return false\r
+ }\r
+\r
+ @JvmStatic\r
+ fun checkJsonNodeValueOfPrimitiveType(primitiveType: String, jsonNode: JsonNode): Boolean {\r
+ when (primitiveType) {\r
+ BluePrintConstants.DATA_TYPE_STRING -> {\r
+ return jsonNode.isTextual\r
+ }\r
+ BluePrintConstants.DATA_TYPE_BOOLEAN -> {\r
+ return jsonNode.isBoolean\r
+ }\r
+ BluePrintConstants.DATA_TYPE_INTEGER -> {\r
+ return jsonNode.isInt\r
+ }\r
+ BluePrintConstants.DATA_TYPE_FLOAT -> {\r
+ return jsonNode.isDouble\r
+ }\r
+ BluePrintConstants.DATA_TYPE_TIMESTAMP -> {\r
+ return jsonNode.isTextual\r
+ }\r
+ else ->\r
+ return false\r
+ }\r
+ }\r
+\r
+ @JvmStatic\r
+ fun checkJsonNodeValueOfCollectionType(type: String, jsonNode: JsonNode): Boolean {\r
+ when (type) {\r
+ BluePrintConstants.DATA_TYPE_LIST ->\r
+ return jsonNode.isArray\r
+ BluePrintConstants.DATA_TYPE_MAP ->\r
+ return jsonNode.isContainerNode\r
+ else ->\r
+ return false\r
+ }\r
+\r
+ }\r
+\r
@JvmStatic\r
fun populatePrimitiveValues(key: String, value: Any, primitiveType: String, objectNode: ObjectNode) {\r
- if (org.onap.ccsdk.apps.controllerblueprints.core.BluePrintConstants.DATA_TYPE_BOOLEAN == primitiveType) {\r
+ if (BluePrintConstants.DATA_TYPE_BOOLEAN == primitiveType) {\r
objectNode.put(key, value as Boolean)\r
- } else if (org.onap.ccsdk.apps.controllerblueprints.core.BluePrintConstants.DATA_TYPE_INTEGER == primitiveType) {\r
+ } else if (BluePrintConstants.DATA_TYPE_INTEGER == primitiveType) {\r
objectNode.put(key, value as Int)\r
- } else if (org.onap.ccsdk.apps.controllerblueprints.core.BluePrintConstants.DATA_TYPE_FLOAT == primitiveType) {\r
+ } else if (BluePrintConstants.DATA_TYPE_FLOAT == primitiveType) {\r
objectNode.put(key, value as Float)\r
- } else if (org.onap.ccsdk.apps.controllerblueprints.core.BluePrintConstants.DATA_TYPE_TIMESTAMP == primitiveType) {\r
+ } else if (BluePrintConstants.DATA_TYPE_TIMESTAMP == primitiveType) {\r
objectNode.put(key, value as String)\r
} else {\r
objectNode.put(key, value as String)\r
\r
@JvmStatic\r
fun populatePrimitiveValues(value: Any, primitiveType: String, objectNode: ArrayNode) {\r
- if (org.onap.ccsdk.apps.controllerblueprints.core.BluePrintConstants.DATA_TYPE_BOOLEAN == primitiveType) {\r
+ if (BluePrintConstants.DATA_TYPE_BOOLEAN == primitiveType) {\r
objectNode.add(value as Boolean)\r
- } else if (org.onap.ccsdk.apps.controllerblueprints.core.BluePrintConstants.DATA_TYPE_INTEGER == primitiveType) {\r
+ } else if (BluePrintConstants.DATA_TYPE_INTEGER == primitiveType) {\r
objectNode.add(value as Int)\r
- } else if (org.onap.ccsdk.apps.controllerblueprints.core.BluePrintConstants.DATA_TYPE_FLOAT == primitiveType) {\r
+ } else if (BluePrintConstants.DATA_TYPE_FLOAT == primitiveType) {\r
objectNode.add(value as Float)\r
- } else if (org.onap.ccsdk.apps.controllerblueprints.core.BluePrintConstants.DATA_TYPE_TIMESTAMP == primitiveType) {\r
+ } else if (BluePrintConstants.DATA_TYPE_TIMESTAMP == primitiveType) {\r
objectNode.add(value as String)\r
} else {\r
objectNode.add(value as String)\r
\r
@JvmStatic\r
fun populatePrimitiveDefaultValues(key: String, primitiveType: String, objectNode: ObjectNode) {\r
- if (org.onap.ccsdk.apps.controllerblueprints.core.BluePrintConstants.DATA_TYPE_BOOLEAN == primitiveType) {\r
+ if (BluePrintConstants.DATA_TYPE_BOOLEAN == primitiveType) {\r
objectNode.put(key, false)\r
- } else if (org.onap.ccsdk.apps.controllerblueprints.core.BluePrintConstants.DATA_TYPE_INTEGER == primitiveType) {\r
+ } else if (BluePrintConstants.DATA_TYPE_INTEGER == primitiveType) {\r
objectNode.put(key, 0)\r
- } else if (org.onap.ccsdk.apps.controllerblueprints.core.BluePrintConstants.DATA_TYPE_FLOAT == primitiveType) {\r
+ } else if (BluePrintConstants.DATA_TYPE_FLOAT == primitiveType) {\r
objectNode.put(key, 0.0)\r
} else {\r
objectNode.put(key, "")\r
\r
@JvmStatic\r
fun populatePrimitiveDefaultValuesForArrayNode(primitiveType: String, arrayNode: ArrayNode) {\r
- if (org.onap.ccsdk.apps.controllerblueprints.core.BluePrintConstants.DATA_TYPE_BOOLEAN == primitiveType) {\r
+ if (BluePrintConstants.DATA_TYPE_BOOLEAN == primitiveType) {\r
arrayNode.add(false)\r
- } else if (org.onap.ccsdk.apps.controllerblueprints.core.BluePrintConstants.DATA_TYPE_INTEGER == primitiveType) {\r
+ } else if (BluePrintConstants.DATA_TYPE_INTEGER == primitiveType) {\r
arrayNode.add(0)\r
- } else if (org.onap.ccsdk.apps.controllerblueprints.core.BluePrintConstants.DATA_TYPE_FLOAT == primitiveType) {\r
+ } else if (BluePrintConstants.DATA_TYPE_FLOAT == primitiveType) {\r
arrayNode.add(0.0)\r
} else {\r
arrayNode.add("")\r
if (nodeValue == null || nodeValue is NullNode) {\r
objectNode.set(key, nodeValue)\r
} else if (BluePrintTypes.validPrimitiveTypes().contains(type)) {\r
- if (org.onap.ccsdk.apps.controllerblueprints.core.BluePrintConstants.DATA_TYPE_BOOLEAN == type) {\r
+ if (BluePrintConstants.DATA_TYPE_BOOLEAN == type) {\r
objectNode.put(key, nodeValue.asBoolean())\r
- } else if (org.onap.ccsdk.apps.controllerblueprints.core.BluePrintConstants.DATA_TYPE_INTEGER == type) {\r
+ } else if (BluePrintConstants.DATA_TYPE_INTEGER == type) {\r
objectNode.put(key, nodeValue.asInt())\r
- } else if (org.onap.ccsdk.apps.controllerblueprints.core.BluePrintConstants.DATA_TYPE_FLOAT == type) {\r
+ } else if (BluePrintConstants.DATA_TYPE_FLOAT == type) {\r
objectNode.put(key, nodeValue.floatValue())\r
- } else if (org.onap.ccsdk.apps.controllerblueprints.core.BluePrintConstants.DATA_TYPE_TIMESTAMP == type) {\r
+ } else if (BluePrintConstants.DATA_TYPE_TIMESTAMP == type) {\r
objectNode.put(key, nodeValue.asText())\r
} else {\r
objectNode.put(key, nodeValue.asText())\r