2 * Copyright © 2016-2018 European Support Limited
4 * Licensed under the Apache License, Version 2.0 (the "License");
5 * you may not use this file except in compliance with the License.
6 * You may obtain a copy of the License at
8 * http://www.apache.org/licenses/LICENSE-2.0
10 * Unless required by applicable law or agreed to in writing, software
11 * distributed under the License is distributed on an "AS IS" BASIS,
12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 * See the License for the specific language governing permissions and
14 * limitations under the License.
17 package org.openecomp.sdc.translator.datatypes.heattotosca.unifiedmodel.consolidation;
19 import java.util.Collection;
20 import java.util.HashMap;
22 import java.util.Optional;
24 import org.openecomp.sdc.heat.datatypes.model.Resource;
25 import org.openecomp.sdc.heat.services.HeatResourceUtil;
27 public class FilePortConsolidationData {
29 //key - port node template id
30 private final Map<String, PortTemplateConsolidationData> portTemplateConsolidationData;
32 public FilePortConsolidationData() {
33 this.portTemplateConsolidationData = new HashMap<>();
36 public Set<String> getAllPortNodeTemplateIds() {
37 return portTemplateConsolidationData.keySet();
40 public Collection<PortTemplateConsolidationData> getAllPortConsolidationData() {
41 return portTemplateConsolidationData.values();
44 public PortTemplateConsolidationData getPortTemplateConsolidationData(String portNodeTemplateId) {
45 return portTemplateConsolidationData.get(portNodeTemplateId);
48 public void setPortTemplateConsolidationData(String portNodeTemplateId,
49 PortTemplateConsolidationData
50 portTemplateConsolidationData) {
51 this.portTemplateConsolidationData.put(portNodeTemplateId, portTemplateConsolidationData);
55 * If entity doesn't exist yet - create subInterface template consolidation data entity
56 * base on given parameters.
58 * @return subInterface template consolidation data entity
60 SubInterfaceTemplateConsolidationData addSubInterfaceTemplateConsolidationData(
61 Resource resource, String subInterfaceNodeTemplateId, String parentPortNodeTemplateId) {
62 PortTemplateConsolidationData consolidationData =
63 addPortTemplateConsolidationData(parentPortNodeTemplateId);
64 return consolidationData.addSubInterfaceTemplateConsolidationData(resource,
65 subInterfaceNodeTemplateId, parentPortNodeTemplateId);
69 * If entity doesn't exist yet - create subInterface template consolidation data entity
70 * base on given parameters.
72 * @return subInterface template consolidation data entity
74 SubInterfaceTemplateConsolidationData addSubInterfaceTemplateConsolidationData(
75 Resource resource, String subInterfaceNodeTemplateId, String parentPortNodeTemplateId,
76 String parentPortResourceId, String parentPortResourceType) {
78 PortTemplateConsolidationData consolidationData =
79 addPortTemplateConsolidationData(parentPortNodeTemplateId, parentPortResourceId,
80 parentPortResourceType);
82 return consolidationData.addSubInterfaceTemplateConsolidationData(resource,
83 subInterfaceNodeTemplateId, parentPortNodeTemplateId);
87 * If entity doesn't exist yet - create port template consolidation data and
88 * update it's network role according to given resource parameters.
90 * @return port template consolidation data entity by given keys
92 PortTemplateConsolidationData addPortTemplateConsolidationData(
93 String portNodeTemplateId, String portResourceId, String portResourceType) {
94 PortTemplateConsolidationData consolidationData = getPortTemplateConsolidationData(portNodeTemplateId);
95 if (consolidationData == null) {
96 consolidationData = createPortTemplateConsolidationData(portNodeTemplateId,
97 portResourceId, portResourceType);
98 setPortTemplateConsolidationData(portNodeTemplateId, consolidationData);
100 return consolidationData;
104 * If entity doesn't exist yet - create port template consolidation data and.
106 * @return port template consolidation data entity by given keys
108 private PortTemplateConsolidationData addPortTemplateConsolidationData(String portNodeTemplateId) {
109 PortTemplateConsolidationData consolidationData = getPortTemplateConsolidationData(portNodeTemplateId);
110 if (consolidationData == null) {
111 consolidationData = new PortTemplateConsolidationData();
112 consolidationData.setNodeTemplateId(portNodeTemplateId);
113 setPortTemplateConsolidationData(portNodeTemplateId, consolidationData);
115 return consolidationData;
118 private PortTemplateConsolidationData createPortTemplateConsolidationData(String portNodeTemplateId,
119 String portResourceId, String portResourceType) {
120 PortTemplateConsolidationData consolidationData = new PortTemplateConsolidationData();
121 consolidationData.setNodeTemplateId(portNodeTemplateId);
122 Optional<String> portNetworkRole = HeatResourceUtil.evaluateNetworkRoleFromResourceId(portResourceId,
124 portNetworkRole.ifPresent(consolidationData::setNetworkRole);
125 return consolidationData;