package org.onap.vid.services import org.onap.vid.mso.model.ServiceInstantiationRequestDetails.UserParamNameAndValue import org.onap.vid.mso.model.UserParamTypes class UserParamsContainer(instanceParams: Map?, supplementaryParams: List?) { val params:Map init { params = aggregateAllInstanceParams(instanceParams, supplementaryParams) } private fun aggregateAllInstanceParams( instanceParams: Map?, supplementaryParams: List?) : Map { val instanceParamsSafe: Map = instanceParams ?: emptyMap() val supplementaryParamsSafe: Map = supplementaryParams?.associate{ it.name to it.value } ?: emptyMap() return instanceParamsSafe.plus(supplementaryParamsSafe) } fun toALaCarte(): List = toUserParamNameAndValue() fun toMacroPre1806() : List = toUserParamNameAndValue() fun toMacroPost1806() : List> = toListOfMap() private fun toUserParamNameAndValue(): List { return params.map{UserParamNameAndValue(it.key, it.value)}.toList() } private fun toListOfMap() : List> { return listOf(params) } }