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/FilePortConsolidationData.java')
1 files changed, 96 insertions, 42 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/FilePortConsolidationData.java b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/main/java/org/openecomp/sdc/translator/datatypes/heattotosca/unifiedmodel/consolidation/FilePortConsolidationData.java index fd02edb818..9335dd4a97 100644 --- a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/main/java/org/openecomp/sdc/translator/datatypes/heattotosca/unifiedmodel/consolidation/FilePortConsolidationData.java +++ b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/main/java/org/openecomp/sdc/translator/datatypes/heattotosca/unifiedmodel/consolidation/FilePortConsolidationData.java @@ -1,54 +1,108 @@ +/* + * Copyright © 2016-2018 European Support Limited + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + package org.openecomp.sdc.translator.datatypes.heattotosca.unifiedmodel.consolidation; import java.util.Collection; import java.util.HashMap; import java.util.Map; +import java.util.Optional; import java.util.Set; -/** - * The type File port consolidation data. - */ +import org.openecomp.sdc.heat.datatypes.model.Resource; +import org.openecomp.sdc.translator.services.heattotosca.HeatToToscaUtil; + + public class FilePortConsolidationData { - //key - port node template id - private Map<String, PortTemplateConsolidationData> portTemplateConsolidationData; - - public FilePortConsolidationData() { - this.portTemplateConsolidationData = new HashMap<>(); - } - - /** - * Gets all port node template ids. - * - * @return the all port node template ids - */ - public Set<String> getAllPortNodeTemplateIds() { - return portTemplateConsolidationData.keySet(); - } - - public Collection<PortTemplateConsolidationData> getAllPortConsolidationData() { - return portTemplateConsolidationData.values(); - } - - /** - * Gets port template consolidation data. - * - * @param portNodeTemplateId the port node template id - * @return the port template consolidation data - */ - public PortTemplateConsolidationData getPortTemplateConsolidationData(String portNodeTemplateId) { - return portTemplateConsolidationData.get(portNodeTemplateId); - } - - /** - * Sets port template consolidation data. - * - * @param portNodeTemplateId the port node template id - * @param portTemplateConsolidationData the port template consolidation data - */ - public void setPortTemplateConsolidationData(String portNodeTemplateId, + //key - port node template id + private final Map<String, PortTemplateConsolidationData> portTemplateConsolidationData; + + public FilePortConsolidationData() { + this.portTemplateConsolidationData = new HashMap<>(); + } + + public Set<String> getAllPortNodeTemplateIds() { + return portTemplateConsolidationData.keySet(); + } + + public Collection<PortTemplateConsolidationData> getAllPortConsolidationData() { + return portTemplateConsolidationData.values(); + } + + public PortTemplateConsolidationData getPortTemplateConsolidationData(String portNodeTemplateId) { + return portTemplateConsolidationData.get(portNodeTemplateId); + } + + public void setPortTemplateConsolidationData(String portNodeTemplateId, PortTemplateConsolidationData portTemplateConsolidationData) { - this.portTemplateConsolidationData.put(portNodeTemplateId, portTemplateConsolidationData); - } + this.portTemplateConsolidationData.put(portNodeTemplateId, portTemplateConsolidationData); + } + + /** + * If entity doesn't exist yet - create subInterface template consolidation data entity + * base on given parameters. + * + * @return subInterface template consolidation data entity + */ + SubInterfaceTemplateConsolidationData addSubInterfaceTemplateConsolidationData( + Resource resource, String subInterfaceNodeTemplateId, String parentPortNodeTemplateId) { + PortTemplateConsolidationData consolidationData = + addPortTemplateConsolidationData(parentPortNodeTemplateId); + return consolidationData.addSubInterfaceTemplateConsolidationData(resource, + subInterfaceNodeTemplateId, parentPortNodeTemplateId); + } + + /** + * If entity doesn't exist yet - create port template consolidation data and + * update it's network role according to given resource parameters. + * + * @return port template consolidation data entity by given keys + */ + PortTemplateConsolidationData addPortTemplateConsolidationData( + String portNodeTemplateId, String portResourceId, String portResourceType) { + PortTemplateConsolidationData consolidationData = getPortTemplateConsolidationData(portNodeTemplateId); + if (consolidationData == null) { + consolidationData = createPortTemplateConsolidationData(portNodeTemplateId, + portResourceId, portResourceType); + setPortTemplateConsolidationData(portNodeTemplateId, consolidationData); + } + return consolidationData; + } + + private PortTemplateConsolidationData addPortTemplateConsolidationData(String portNodeTemplateId) { + PortTemplateConsolidationData consolidationData = getPortTemplateConsolidationData(portNodeTemplateId); + if (consolidationData == null) { + consolidationData = new PortTemplateConsolidationData(); + setPortTemplateConsolidationData(portNodeTemplateId, consolidationData); + } + return consolidationData; + } + + private PortTemplateConsolidationData createPortTemplateConsolidationData( + String portNodeTemplateId, String portResourceId, String portResourceType) { + PortTemplateConsolidationData consolidationData = new PortTemplateConsolidationData(); + consolidationData.setNodeTemplateId(portNodeTemplateId); + Optional<String> portNetworkRole = HeatToToscaUtil.evaluateNetworkRoleFromResourceId(portResourceId, + portResourceType); + portNetworkRole.ifPresent(consolidationData::setNetworkRole); + return consolidationData; + } + + + } |