diff options
Diffstat (limited to 'vid-app-common/src/main/java/org/onap/vid/services/UserParamsContainer.kt')
-rw-r--r-- | vid-app-common/src/main/java/org/onap/vid/services/UserParamsContainer.kt | 40 |
1 files changed, 40 insertions, 0 deletions
diff --git a/vid-app-common/src/main/java/org/onap/vid/services/UserParamsContainer.kt b/vid-app-common/src/main/java/org/onap/vid/services/UserParamsContainer.kt new file mode 100644 index 000000000..17cf88e3f --- /dev/null +++ b/vid-app-common/src/main/java/org/onap/vid/services/UserParamsContainer.kt @@ -0,0 +1,40 @@ +package org.onap.vid.services + +import org.onap.vid.mso.model.ServiceInstantiationRequestDetails.UserParamNameAndValue +import org.onap.vid.mso.model.UserParamTypes + +class UserParamsContainer(instanceParams: Map<String, String>?, supplementaryParams: List<UserParamNameAndValue>?) { + + val params:Map<String, String> + + init { + params = aggregateAllInstanceParams(instanceParams, supplementaryParams) + } + + private fun aggregateAllInstanceParams( + instanceParams: Map<String, String>?, + supplementaryParams: List<UserParamNameAndValue>?) + : Map<String, String> { + val instanceParamsSafe: Map<String, String> = instanceParams ?: emptyMap() + val supplementaryParamsSafe: Map<String, String> = + supplementaryParams?.associate{ it.name to it.value } ?: emptyMap() + + return instanceParamsSafe.plus(supplementaryParamsSafe) + } + + fun toALaCarte(): List<UserParamTypes> = toUserParamNameAndValue() + + fun toMacroPre1806() : List<UserParamTypes> = toUserParamNameAndValue() + + fun toMacroPost1806() : List<Map<String, String>> = toListOfMap() + + private fun toUserParamNameAndValue(): List<UserParamNameAndValue> { + return params.map{UserParamNameAndValue(it.key, it.value)}.toList() + } + + private fun toListOfMap() : List<Map<String, String>> { + return listOf(params) + } +} + + |