1 package org.openecomp.sdc.translator.services.heattotosca;
 
   3 import org.apache.commons.collections.CollectionUtils;
 
   5 import java.util.EnumMap;
 
   8 import java.util.stream.Collectors;
 
   9 import java.util.stream.Stream;
 
  11 public class ConsolidationTypesConnectivity {
 
  13   private static Map<ConsolidationEntityType, Set<ConsolidationEntityType>>
 
  14       entityToEntitiesWithoutRelationship = new EnumMap<>(ConsolidationEntityType.class);
 
  17     entityToEntitiesWithoutRelationship
 
  18         .put(ConsolidationEntityType.COMPUTE, getIgnoredComputeRelationships());
 
  19     entityToEntitiesWithoutRelationship
 
  20         .put(ConsolidationEntityType.PORT,getIgnoredPortRelationships());
 
  21     entityToEntitiesWithoutRelationship
 
  22         .put(ConsolidationEntityType.VOLUME, getIgnoredVolumeRelationships());
 
  23     entityToEntitiesWithoutRelationship
 
  24         .put(ConsolidationEntityType.VFC_NESTED, getIgnoredVfcNestedRelationships());
 
  25     entityToEntitiesWithoutRelationship
 
  26         .put(ConsolidationEntityType.NESTED, getIgnoredNestedRelationships());
 
  29   private ConsolidationTypesConnectivity() {
 
  32   private static Set<ConsolidationEntityType> getIgnoredComputeRelationships(){
 
  33     return Stream.of(ConsolidationEntityType.COMPUTE,
 
  34         ConsolidationEntityType.VOLUME,
 
  35         ConsolidationEntityType.PORT,
 
  36         ConsolidationEntityType.NESTED,
 
  37         ConsolidationEntityType.VFC_NESTED).collect(Collectors.toSet());
 
  40   private static Set<ConsolidationEntityType> getIgnoredPortRelationships(){
 
  41     return Stream.of(ConsolidationEntityType.COMPUTE,
 
  42         ConsolidationEntityType.VOLUME,
 
  43         ConsolidationEntityType.PORT,
 
  44         ConsolidationEntityType.NESTED,
 
  45         ConsolidationEntityType.VFC_NESTED).collect(Collectors.toSet());
 
  48   private static Set<ConsolidationEntityType> getIgnoredVolumeRelationships(){
 
  49     return Stream.of(ConsolidationEntityType.COMPUTE,
 
  50         ConsolidationEntityType.VOLUME,
 
  51         ConsolidationEntityType.PORT,
 
  52         ConsolidationEntityType.NESTED,
 
  53         ConsolidationEntityType.VFC_NESTED).collect(Collectors.toSet());
 
  56   private static Set<ConsolidationEntityType> getIgnoredVfcNestedRelationships(){
 
  57     return Stream.of(ConsolidationEntityType.COMPUTE,
 
  58         ConsolidationEntityType.VOLUME,
 
  59         ConsolidationEntityType.PORT,
 
  60         ConsolidationEntityType.NESTED,
 
  61         ConsolidationEntityType.VFC_NESTED).collect(Collectors.toSet());
 
  64   private static Set<ConsolidationEntityType> getIgnoredNestedRelationships(){
 
  65     return Stream.of(ConsolidationEntityType.COMPUTE,
 
  66         ConsolidationEntityType.PORT,
 
  67         ConsolidationEntityType.NESTED,
 
  68         ConsolidationEntityType.VFC_NESTED).collect(Collectors.toSet());
 
  71   public static boolean isDependsOnRelationshipValid(ConsolidationEntityType source,
 
  72                                                      ConsolidationEntityType target) {
 
  73     Set<ConsolidationEntityType> consolidationEntityTypes =
 
  74         entityToEntitiesWithoutRelationship.get(source);
 
  75     return CollectionUtils.isEmpty(consolidationEntityTypes) ||
 
  76         !consolidationEntityTypes.contains(target);