1 package org.onap.ccsdk.cds.blueprintsprocessor.functions.resource.resolution
3 import com.fasterxml.jackson.databind.JsonNode
4 import org.onap.ccsdk.cds.controllerblueprints.core.BluePrintProcessorException
5 import org.onap.ccsdk.cds.controllerblueprints.core.service.BluePrintContext
6 import org.onap.ccsdk.cds.controllerblueprints.core.service.DefaultBluePrintRuntimeService
7 import java.util.concurrent.ConcurrentHashMap
9 class ResourceAssignmentRuntimeService(private var id: String, private var bluePrintContext: BluePrintContext) :
10 DefaultBluePrintRuntimeService(id, bluePrintContext) {
12 private lateinit var resolutionId: String
13 private var resourceStore: MutableMap<String, JsonNode> = ConcurrentHashMap()
15 fun createUniqueId(key: String) {
16 resolutionId = "$id-$key"
19 fun cleanResourceStore() {
23 fun putResolutionStore(key: String, value: JsonNode) {
24 resourceStore[key] = value
27 fun getResolutionStore(): MutableMap<String, JsonNode> {
28 return resourceStore.mapValues { e -> e.value.deepCopy() as JsonNode }.toMutableMap()
31 fun getResolutionStore(key: String): JsonNode {
32 return resourceStore[key]
33 ?: throw BluePrintProcessorException("failed to get execution property ($key)")
36 fun checkResolutionStore(key: String): Boolean {
37 return resourceStore.containsKey(key)
40 fun getJsonNodeFromResolutionStore(key: String): JsonNode {
41 return getResolutionStore(key)
44 fun getStringFromResolutionStore(key: String): String? {
45 return getResolutionStore(key).asText()
48 fun getBooleanFromResolutionStore(key: String): Boolean? {
49 return getResolutionStore(key).asBoolean()
52 fun getIntFromResolutionStore(key: String): Int? {
53 return getResolutionStore(key).asInt()
56 fun getDoubleFromResolutionStore(key: String): Double? {
57 return getResolutionStore(key).asDouble()
60 fun putDictionaryStore(key: String, value: JsonNode) {
61 resourceStore["dictionary-$key"] = value
64 fun getDictionaryStore(key: String): JsonNode {
65 return resourceStore["dictionary-$key"]
66 ?: throw BluePrintProcessorException("failed to get execution property (dictionary-$key)")
69 fun checkDictionaryStore(key: String): Boolean {
70 return resourceStore.containsKey("dictionary-$key")
73 fun getJsonNodeFromDictionaryStore(key: String): JsonNode {
74 return getResolutionStore("dictionary-$key")
77 fun getStringFromDictionaryStore(key: String): String? {
78 return getResolutionStore("dictionary-$key").asText()
81 fun getBooleanFromDictionaryStore(key: String): Boolean? {
82 return getResolutionStore("dictionary-$key").asBoolean()
85 fun getIntFromDictionaryStore(key: String): Int? {
86 return getResolutionStore("dictionary-$key").asInt()
89 fun getDoubleFromDictionaryStore(key: String): Double? {
90 return getResolutionStore("dictionary-$key").asDouble()