From abe0a3794cfdb28d2af70ce37a2b35c8a195aea4 Mon Sep 17 00:00:00 2001 From: siddharth0905 Date: Wed, 9 May 2018 16:42:59 +0530 Subject: Nested Dependency issues Remove nested depends On connectivity Change-Id: I65bd9473f879fa72b453c2793f2b2406adde4513 Issue-ID: SDC-1315 Signed-off-by: siddharth0905 --- .../heattotosca/ConsolidationEntityType.java | 123 +++++++++------------ .../ConsolidationTypesConnectivity.java | 106 ++++++------------ 2 files changed, 88 insertions(+), 141 deletions(-) (limited to 'openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/main') diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/main/java/org/openecomp/sdc/translator/services/heattotosca/ConsolidationEntityType.java b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/main/java/org/openecomp/sdc/translator/services/heattotosca/ConsolidationEntityType.java index dd7825b9a5..d4b85605d2 100644 --- a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/main/java/org/openecomp/sdc/translator/services/heattotosca/ConsolidationEntityType.java +++ b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/main/java/org/openecomp/sdc/translator/services/heattotosca/ConsolidationEntityType.java @@ -20,88 +20,75 @@ import static org.openecomp.sdc.translator.services.heattotosca.ConsolidationDat import static org.openecomp.sdc.translator.services.heattotosca.ConsolidationDataUtil.isPortResource; import static org.openecomp.sdc.translator.services.heattotosca.ConsolidationDataUtil.isVolumeResource; +import java.util.*; +import java.util.stream.Collectors; + import org.openecomp.sdc.heat.datatypes.model.Resource; import org.openecomp.sdc.translator.datatypes.heattotosca.TranslationContext; -import java.util.Arrays; -import java.util.Collections; -import java.util.HashSet; -import java.util.Set; -import java.util.stream.Collectors; - /** * The enum Entity type. */ public enum ConsolidationEntityType { - COMPUTE, - PORT, - VOLUME, - NESTED, - //Simple nested VFC (nested file with one compute) or a complex VFC (nested ST with more than - //one compute) - VFC_NESTED, - SUB_INTERFACE, - OTHER; + COMPUTE, PORT, VOLUME, NESTED, + //Simple nested VFC (nested file with one compute) or a complex VFC (nested ST with more than + //one compute) + VFC_NESTED, SUB_INTERFACE, OTHER; + + private ConsolidationEntityType sourceEntityType; + private ConsolidationEntityType targetEntityType; + + public ConsolidationEntityType getSourceEntityType() { + return sourceEntityType; + } - private ConsolidationEntityType sourceEntityType; - private ConsolidationEntityType targetEntityType; + public ConsolidationEntityType getTargetEntityType() { + return targetEntityType; + } - public ConsolidationEntityType getSourceEntityType() { - return sourceEntityType; - } - public ConsolidationEntityType getTargetEntityType() { - return targetEntityType; - } + /** + * Sets entity type. + * + * @param sourceResource the source resource + * @param targetResource the target resource + */ + public void setEntityType(Resource sourceResource, Resource targetResource, TranslationContext context) { + targetEntityType = getEntityType(targetResource, context); + sourceEntityType = getEntityType(sourceResource, context); + } + private static final Set consolidationEntityTypes = initConsolidationEntities(); - /** - * Sets entity type. - * - * @param sourceResource the source resource - * @param targetResource the target resource - */ - public void setEntityType(Resource sourceResource, - Resource targetResource, - TranslationContext context) { - targetEntityType = - getEntityType(targetResource, context); - sourceEntityType = - getEntityType(sourceResource, context); - } + private static Set initConsolidationEntities() { + return Collections.unmodifiableSet(EnumSet.allOf(ConsolidationEntityType.class).stream().filter( + consolidationEntityType -> consolidationEntityType != ConsolidationEntityType.OTHER + && consolidationEntityType != ConsolidationEntityType.VOLUME).collect(Collectors.toSet())); + } - private static final Set consolidationEntityTypes = initConsolidationEntities(); - - private static Set initConsolidationEntities() { - Set consolidationEntityTypes = new HashSet<>(Arrays.asList(ConsolidationEntityType - .values())); - return Collections.unmodifiableSet(consolidationEntityTypes.stream() - .filter(entity -> entity != ConsolidationEntityType.OTHER - && entity != ConsolidationEntityType.VOLUME) - .collect(Collectors.toSet())); - } + public static Set getSupportedConsolidationEntities() { + return consolidationEntityTypes; + } - public static Set getSupportedConsolidationEntities() { - return consolidationEntityTypes; - } + private ConsolidationEntityType getEntityType(Resource resource, TranslationContext context) { + ConsolidationEntityType consolidationEntityType = ConsolidationEntityType.OTHER; + if (isComputeResource(resource)) { + consolidationEntityType = ConsolidationEntityType.COMPUTE; + } else if (isPortResource(resource)) { + consolidationEntityType = ConsolidationEntityType.PORT; + } else if (isVolumeResource(resource)) { + consolidationEntityType = ConsolidationEntityType.VOLUME; + } else if (HeatToToscaUtil.isNestedResource(resource)) { + if (HeatToToscaUtil.isNestedVfcResource(resource, context)) { + consolidationEntityType = ConsolidationEntityType.VFC_NESTED; + } else { + consolidationEntityType = ConsolidationEntityType.NESTED; + } + } + return consolidationEntityType; + } - private ConsolidationEntityType getEntityType(Resource resource, TranslationContext context) { - ConsolidationEntityType consolidationEntityType = ConsolidationEntityType.OTHER; - if (isComputeResource(resource)) { - consolidationEntityType = ConsolidationEntityType.COMPUTE; - } else if (isPortResource(resource)) { - consolidationEntityType = ConsolidationEntityType.PORT; - } else if (HeatToToscaUtil.isSubInterfaceResource(resource, context)) { - consolidationEntityType = ConsolidationEntityType.SUB_INTERFACE; - } else if (isVolumeResource(resource)) { - consolidationEntityType = ConsolidationEntityType.VOLUME; - } else if (HeatToToscaUtil.isNestedResource(resource)) { - if (HeatToToscaUtil.isNestedVfcResource(resource, context)) { - consolidationEntityType = ConsolidationEntityType.VFC_NESTED; - } else { - consolidationEntityType = ConsolidationEntityType.NESTED; - } + public static boolean isEntityTypeNested(ConsolidationEntityType entityType) { + return NESTED == entityType || VFC_NESTED == entityType; } - return consolidationEntityType; - } } \ No newline at end of file diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/main/java/org/openecomp/sdc/translator/services/heattotosca/ConsolidationTypesConnectivity.java b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/main/java/org/openecomp/sdc/translator/services/heattotosca/ConsolidationTypesConnectivity.java index 2edb4fb8f2..7b258d651f 100644 --- a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/main/java/org/openecomp/sdc/translator/services/heattotosca/ConsolidationTypesConnectivity.java +++ b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/main/java/org/openecomp/sdc/translator/services/heattotosca/ConsolidationTypesConnectivity.java @@ -1,79 +1,39 @@ package org.openecomp.sdc.translator.services.heattotosca; -import org.apache.commons.collections.CollectionUtils; - -import java.util.EnumMap; -import java.util.Map; -import java.util.Set; -import java.util.stream.Collectors; -import java.util.stream.Stream; +import com.google.common.collect.ImmutableSet; +import com.google.common.collect.ImmutableSetMultimap; +import com.google.common.collect.Multimap; public class ConsolidationTypesConnectivity { - private static Map> - entityToEntitiesWithoutRelationship = new EnumMap<>(ConsolidationEntityType.class); - - static { - entityToEntitiesWithoutRelationship - .put(ConsolidationEntityType.COMPUTE, getIgnoredComputeRelationships()); - entityToEntitiesWithoutRelationship - .put(ConsolidationEntityType.PORT,getIgnoredPortRelationships()); - entityToEntitiesWithoutRelationship - .put(ConsolidationEntityType.VOLUME, getIgnoredVolumeRelationships()); - entityToEntitiesWithoutRelationship - .put(ConsolidationEntityType.VFC_NESTED, getIgnoredVfcNestedRelationships()); - entityToEntitiesWithoutRelationship - .put(ConsolidationEntityType.NESTED, getIgnoredNestedRelationships()); - } - - private ConsolidationTypesConnectivity() { - } - - private static Set getIgnoredComputeRelationships(){ - return Stream.of(ConsolidationEntityType.COMPUTE, - ConsolidationEntityType.VOLUME, - ConsolidationEntityType.PORT, - ConsolidationEntityType.NESTED, - ConsolidationEntityType.VFC_NESTED).collect(Collectors.toSet()); - } - - private static Set getIgnoredPortRelationships(){ - return Stream.of(ConsolidationEntityType.COMPUTE, - ConsolidationEntityType.VOLUME, - ConsolidationEntityType.PORT, - ConsolidationEntityType.NESTED, - ConsolidationEntityType.VFC_NESTED).collect(Collectors.toSet()); - } - - private static Set getIgnoredVolumeRelationships(){ - return Stream.of(ConsolidationEntityType.COMPUTE, - ConsolidationEntityType.VOLUME, - ConsolidationEntityType.PORT, - ConsolidationEntityType.NESTED, - ConsolidationEntityType.VFC_NESTED).collect(Collectors.toSet()); - } - - private static Set getIgnoredVfcNestedRelationships(){ - return Stream.of(ConsolidationEntityType.COMPUTE, - ConsolidationEntityType.VOLUME, - ConsolidationEntityType.PORT, - ConsolidationEntityType.NESTED, - ConsolidationEntityType.VFC_NESTED).collect(Collectors.toSet()); - } - - private static Set getIgnoredNestedRelationships(){ - return Stream.of(ConsolidationEntityType.COMPUTE, - ConsolidationEntityType.PORT, - ConsolidationEntityType.NESTED, - ConsolidationEntityType.VFC_NESTED).collect(Collectors.toSet()); - } - - public static boolean isDependsOnRelationshipValid(ConsolidationEntityType source, - ConsolidationEntityType target) { - Set consolidationEntityTypes = - entityToEntitiesWithoutRelationship.get(source); - return CollectionUtils.isEmpty(consolidationEntityTypes) || - !consolidationEntityTypes.contains(target); - - } + private static Multimap entityToEntitiesWithoutRelationship; + private static ImmutableSet consolidationEntityRelationNodes = ImmutableSet.of( + ConsolidationEntityType.COMPUTE, ConsolidationEntityType.VOLUME, + ConsolidationEntityType.PORT, ConsolidationEntityType.NESTED, + ConsolidationEntityType.VFC_NESTED); + + static { + entityToEntitiesWithoutRelationship = + ImmutableSetMultimap.builder() + .putAll(ConsolidationEntityType.COMPUTE, consolidationEntityRelationNodes) + .putAll(ConsolidationEntityType.PORT, consolidationEntityRelationNodes) + .putAll(ConsolidationEntityType.VOLUME, consolidationEntityRelationNodes) + .putAll(ConsolidationEntityType.VFC_NESTED, consolidationEntityRelationNodes) + .putAll(ConsolidationEntityType.NESTED, consolidationEntityRelationNodes) + .build(); + } + + private ConsolidationTypesConnectivity() { + } + + static boolean isDependsOnRelationshipValid(ConsolidationEntityType source, ConsolidationEntityType target) { + return !eitherSourceOrTargetIsNested(source, target) + && (!entityToEntitiesWithoutRelationship.containsKey(source) + || !entityToEntitiesWithoutRelationship.containsEntry(source, target)); + } + + private static boolean eitherSourceOrTargetIsNested(ConsolidationEntityType source, + ConsolidationEntityType target) { + return ConsolidationEntityType.isEntityTypeNested(source) || ConsolidationEntityType.isEntityTypeNested(target); + } } -- cgit 1.2.3-korg