[SDC] Onboarding 1710 rebase.
[sdc.git] / openecomp-be / lib / openecomp-sdc-translator-lib / openecomp-sdc-translator-core / src / main / java / org / openecomp / sdc / translator / services / heattotosca / UnifiedCompositionUtil.java
1 package org.openecomp.sdc.translator.services.heattotosca;
2
3 import org.apache.commons.collections4.MapUtils;
4 import org.openecomp.sdc.logging.api.Logger;
5 import org.openecomp.sdc.logging.api.LoggerFactory;
6 import org.openecomp.sdc.translator.datatypes.heattotosca.unifiedmodel.consolidation.ComputeTemplateConsolidationData;
7
8 import java.util.Collection;
9 import java.util.HashMap;
10 import java.util.HashSet;
11 import java.util.List;
12 import java.util.Map;
13 import java.util.Set;
14
15 /**
16  * Utility class for consolidation data collection helper methods.
17  */
18 public class UnifiedCompositionUtil {
19
20   protected static Logger logger = (Logger) LoggerFactory.getLogger(UnifiedCompositionUtil.class);
21
22   /**
23    * Gets all ports per port type, which are connected to the computes from the input
24    * computeTemplateConsolidationDataCollection.
25    *
26    * @param computeTemplateConsolidationDataCollection collection of compute template
27    *                                                   consolidation data
28    * @return set of port ids, per port type
29    */
30   public static Map<String, Set<String>> collectAllPortsFromEachTypesFromComputes(
31       Collection<ComputeTemplateConsolidationData> computeTemplateConsolidationDataCollection) {
32     Map<String, Set<String>> portTypeToIds = new HashMap<>();
33
34     for (ComputeTemplateConsolidationData compute : computeTemplateConsolidationDataCollection) {
35       Map<String, List<String>> ports = compute.getPorts();
36       if (!MapUtils.isEmpty(ports)) {
37         addPortsToMap(portTypeToIds, ports);
38       }
39     }
40
41     return portTypeToIds;
42   }
43
44   private static void addPortsToMap(Map<String, Set<String>> portTypeToIds,
45                                     Map<String, List<String>> ports) {
46     for (Map.Entry<String, List<String>> portTypeToIdEntry : ports.entrySet()) {
47       portTypeToIds.putIfAbsent(portTypeToIdEntry.getKey(), new HashSet<>());
48       portTypeToIds.get(portTypeToIdEntry.getKey()).addAll(portTypeToIdEntry.getValue());
49     }
50   }
51
52
53 }