Merge "Added SDC SDKs section to Read the Docs"
[sdc.git] / openecomp-be / lib / openecomp-sdc-translator-lib / openecomp-sdc-translator-core / src / main / java / org / openecomp / sdc / translator / services / heattotosca / ConsolidationTypesConnectivity.java
1 package org.openecomp.sdc.translator.services.heattotosca;
2
3 import org.apache.commons.collections.CollectionUtils;
4
5 import java.util.HashMap;
6 import java.util.Map;
7 import java.util.Set;
8 import java.util.stream.Collectors;
9 import java.util.stream.Stream;
10
11 public class ConsolidationTypesConnectivity {
12
13   private static Map<ConsolidationEntityType, Set<ConsolidationEntityType>>
14       entityToEntitiesWithoutRelationship;
15
16   static {
17     entityToEntitiesWithoutRelationship = new HashMap<>();
18     entityToEntitiesWithoutRelationship
19         .put(ConsolidationEntityType.COMPUTE, getIgnoredComputeRelationships());
20     entityToEntitiesWithoutRelationship
21         .put(ConsolidationEntityType.PORT,getIgnoredPortRelationships());
22     entityToEntitiesWithoutRelationship
23         .put(ConsolidationEntityType.VOLUME, getIgnoredVolumeRelationships());
24     entityToEntitiesWithoutRelationship
25         .put(ConsolidationEntityType.VFC_NESTED, getIgnoredVfcNestedRelationships());
26   }
27
28   private static Set<ConsolidationEntityType> getIgnoredComputeRelationships(){
29         return Stream.of(ConsolidationEntityType.COMPUTE,
30             ConsolidationEntityType.VOLUME,
31             ConsolidationEntityType.PORT,
32             ConsolidationEntityType.VFC_NESTED).collect(Collectors.toSet());
33   }
34
35   private static Set<ConsolidationEntityType> getIgnoredPortRelationships(){
36         return Stream.of(ConsolidationEntityType.COMPUTE,
37             ConsolidationEntityType.VOLUME,
38             ConsolidationEntityType.PORT,
39             ConsolidationEntityType.VFC_NESTED).collect(Collectors.toSet());
40   }
41
42   private static Set<ConsolidationEntityType> getIgnoredVolumeRelationships(){
43         return Stream.of(ConsolidationEntityType.COMPUTE,
44             ConsolidationEntityType.VOLUME,
45             ConsolidationEntityType.PORT,
46             ConsolidationEntityType.VFC_NESTED).collect(Collectors.toSet());
47   }
48
49   private static Set<ConsolidationEntityType> getIgnoredVfcNestedRelationships(){
50         return Stream.of(ConsolidationEntityType.COMPUTE,
51             ConsolidationEntityType.VOLUME,
52             ConsolidationEntityType.PORT,
53             ConsolidationEntityType.VFC_NESTED).collect(Collectors.toSet());
54   }
55
56   public static boolean isDependsOnRelationshipValid(ConsolidationEntityType source,
57                                                      ConsolidationEntityType target) {
58     Set<ConsolidationEntityType> consolidationEntityTypes =
59         entityToEntitiesWithoutRelationship.get(source);
60     return CollectionUtils.isEmpty(consolidationEntityTypes) ||
61         !consolidationEntityTypes.contains(target);
62
63   }
64 }