1 package org.onap.vid.asdc.parser
3 import org.onap.vid.model.*
4 import org.springframework.stereotype.Component
7 class ServiceModelInflator {
9 data class Names (val modelCustomizationName: String?, val modelKey: String?)
11 fun toNamesByVersionId(model: ServiceModel): Map<String, Names> {
12 return emptyMap<String, Names>()
13 .plus(inflate(model.networks))
14 .plus(inflate(model.vnfs))
15 .plus(inflate(model.vnfGroups))
18 private fun inflate(instances: Map<String, *>): Map<String, Names> {
19 return instances.entries.map { inflate(it.key, it.value) }.fold(emptyMap()) { acc, it -> acc.plus(it) }
22 private fun inflate(modelKey: String, vnf: VNF): Map<String, Names> {
23 return mapOf(vnf.uuid to Names(vnf.modelCustomizationName, modelKey))
24 .plus(inflate(vnf.vfModules))
25 .plus(inflate(vnf.volumeGroups))
28 private fun inflate(modelKey: String, instance: Any?): Map<String, Names> {
29 return when (instance) {
30 is Network -> mapOf(instance.uuid to Names(instance.modelCustomizationName, modelKey))
31 is VfModule -> mapOf(instance.uuid to Names(instance.modelCustomizationName, modelKey))
32 is VolumeGroup -> mapOf(instance.uuid to Names(instance.modelCustomizationName, modelKey))
33 is ResourceGroup -> mapOf(instance.uuid to Names(instance.modelCustomizationName, modelKey))
34 is VNF -> inflate(modelKey, instance)