fab91142523ba8aa6aedd49145a8e4658adf41bb
[sdc.git] /
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     entityToEntitiesWithoutRelationship.
27         put(ConsolidationEntityType.NESTED, getIgnoredNestedRelationships());
28   }
29
30   private static Set<ConsolidationEntityType> getIgnoredComputeRelationships(){
31     return Stream.of(ConsolidationEntityType.COMPUTE,
32         ConsolidationEntityType.VOLUME,
33         ConsolidationEntityType.PORT,
34         ConsolidationEntityType.NESTED,
35         ConsolidationEntityType.VFC_NESTED).collect(Collectors.toSet());
36   }
37
38   private static Set<ConsolidationEntityType> getIgnoredPortRelationships(){
39     return Stream.of(ConsolidationEntityType.COMPUTE,
40         ConsolidationEntityType.VOLUME,
41         ConsolidationEntityType.PORT,
42         ConsolidationEntityType.NESTED,
43         ConsolidationEntityType.VFC_NESTED).collect(Collectors.toSet());
44   }
45
46   private static Set<ConsolidationEntityType> getIgnoredVolumeRelationships(){
47     return Stream.of(ConsolidationEntityType.COMPUTE,
48         ConsolidationEntityType.VOLUME,
49         ConsolidationEntityType.PORT,
50         ConsolidationEntityType.NESTED,
51         ConsolidationEntityType.VFC_NESTED).collect(Collectors.toSet());
52   }
53
54   private static Set<ConsolidationEntityType> getIgnoredVfcNestedRelationships(){
55     return Stream.of(ConsolidationEntityType.COMPUTE,
56         ConsolidationEntityType.VOLUME,
57         ConsolidationEntityType.PORT,
58         ConsolidationEntityType.NESTED,
59         ConsolidationEntityType.VFC_NESTED).collect(Collectors.toSet());
60   }
61
62   private static Set<ConsolidationEntityType> getIgnoredNestedRelationships(){
63     return Stream.of(ConsolidationEntityType.COMPUTE,
64         ConsolidationEntityType.PORT,
65         ConsolidationEntityType.NESTED,
66         ConsolidationEntityType.VFC_NESTED).collect(Collectors.toSet());
67   }
68
69   public static boolean isDependsOnRelationshipValid(ConsolidationEntityType source,
70                                                      ConsolidationEntityType target) {
71     Set<ConsolidationEntityType> consolidationEntityTypes =
72         entityToEntitiesWithoutRelationship.get(source);
73     return CollectionUtils.isEmpty(consolidationEntityTypes) ||
74         !consolidationEntityTypes.contains(target);
75
76   }
77 }