diff options
Diffstat (limited to 'openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/main/java/org/openecomp/sdc/translator/datatypes/heattotosca/unifiedmodel/consolidation/PortTemplateConsolidationData.java')
1 files changed, 48 insertions, 7 deletions
diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/main/java/org/openecomp/sdc/translator/datatypes/heattotosca/unifiedmodel/consolidation/PortTemplateConsolidationData.java b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/main/java/org/openecomp/sdc/translator/datatypes/heattotosca/unifiedmodel/consolidation/PortTemplateConsolidationData.java index 5d372370e3..487771b12d 100644 --- a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/main/java/org/openecomp/sdc/translator/datatypes/heattotosca/unifiedmodel/consolidation/PortTemplateConsolidationData.java +++ b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/main/java/org/openecomp/sdc/translator/datatypes/heattotosca/unifiedmodel/consolidation/PortTemplateConsolidationData.java @@ -19,9 +19,15 @@ package org.openecomp.sdc.translator.datatypes.heattotosca.unifiedmodel.consolid import com.google.common.collect.ArrayListMultimap; import com.google.common.collect.ListMultimap; import com.google.common.collect.Multimaps; +import org.apache.commons.collections4.CollectionUtils; +import org.openecomp.core.utilities.file.FileUtils; +import org.openecomp.sdc.heat.datatypes.model.Resource; +import org.openecomp.sdc.tosca.datatypes.ToscaNodeType; +import org.openecomp.sdc.translator.services.heattotosca.HeatToToscaUtil; import java.util.List; -import java.util.Set; +import java.util.Objects; +import java.util.Optional; /** @@ -32,7 +38,7 @@ public class PortTemplateConsolidationData extends EntityConsolidationData { // key - sub-interface type - for ResourceGroup it is the nested file name // value - List of sub-interfaces of that type in the port private final ListMultimap<String, SubInterfaceTemplateConsolidationData> subInterfaceConsolidationData = - Multimaps.synchronizedListMultimap(ArrayListMultimap.create()); + Multimaps.synchronizedListMultimap(ArrayListMultimap.create()); private String networkRole; @@ -44,13 +50,41 @@ public class PortTemplateConsolidationData extends EntityConsolidationData { this.networkRole = networkRole; } - public List<SubInterfaceTemplateConsolidationData> getSubInterfaceConsolidationData( - String subInterfaceType) { - return this.subInterfaceConsolidationData.get(subInterfaceType); + public SubInterfaceTemplateConsolidationData getSubInterfaceResourceTemplateConsolidationData(Resource resource, + String subInterfaceNodeTemplateId, + String parentPortNodeTemplateId) { + String subInterfaceType = createSubInterfaceType(resource); + List<SubInterfaceTemplateConsolidationData> subInterfaceTemplateConsolidationDataList = + subInterfaceConsolidationData.get(subInterfaceType); + SubInterfaceTemplateConsolidationData consolidationData = null; + if (CollectionUtils.isNotEmpty(subInterfaceTemplateConsolidationDataList)) { + Optional<SubInterfaceTemplateConsolidationData> optionalConsolidationData = + subInterfaceTemplateConsolidationDataList.stream() + .filter(s -> s.getNodeTemplateId().equals(subInterfaceNodeTemplateId)) + .findFirst(); + if (optionalConsolidationData.isPresent()) { + consolidationData = optionalConsolidationData.get(); + } + } + + if (Objects.isNull(consolidationData)) { + consolidationData = createSubInterfaceConsolidationData(subInterfaceNodeTemplateId, parentPortNodeTemplateId); + addSubInterfaceConsolidationData(subInterfaceType, consolidationData); + } + return consolidationData; } - public Set<String> getAllSubInterfaceNodeTypes() { - return this.subInterfaceConsolidationData.keySet(); + private String createSubInterfaceType(Resource resource) { + + return ToscaNodeType.VLAN_SUB_INTERFACE_RESOURCE_TYPE_PREFIX + + FileUtils.getFileWithoutExtention(HeatToToscaUtil.getSubInterfaceResourceType(resource)); + } + + private SubInterfaceTemplateConsolidationData createSubInterfaceConsolidationData(String subInterfaceNodeTemplateId, String parentPortNodeTemplateId) { + SubInterfaceTemplateConsolidationData data = new SubInterfaceTemplateConsolidationData(); + data.setNodeTemplateId(subInterfaceNodeTemplateId); + data.setParentPortNodeTemplateId(parentPortNodeTemplateId); + return data; } public void addSubInterfaceConsolidationData(String subPortType, @@ -81,6 +115,13 @@ public class PortTemplateConsolidationData extends EntityConsolidationData { } + public boolean isSubInterfaceNodeTemplateIdParameter(String nodeTemplateType) { + List<SubInterfaceTemplateConsolidationData> subInterfaceTemplateConsolidationDataList = + this.subInterfaceConsolidationData.get(nodeTemplateType); + return (Objects.nonNull(subInterfaceTemplateConsolidationDataList) + && subInterfaceTemplateConsolidationDataList.size() > 1) ; + } + private int calculateSize(List<SubInterfaceTemplateConsolidationData> subInterfaces) { return subInterfaces == null ? 0 : subInterfaces.size(); } |