1 package org.openecomp.sdc.translator.services.heattotosca;
 
   3 import org.apache.commons.collections.CollectionUtils;
 
   5 import java.util.HashMap;
 
   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;
 
  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());
 
  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());
 
  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());
 
  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());
 
  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());
 
  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);