8b9e546280e5a5e151ebd1b929d6dcdbb188e334
[sdc.git] /
1 /*
2  * Copyright © 2016-2018 European Support Limited
3  *
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
7  *
8  *      http://www.apache.org/licenses/LICENSE-2.0
9  *
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.
15  */
16
17 package org.openecomp.sdc.translator.datatypes.heattotosca.unifiedmodel.consolidation;
18
19 import org.onap.sdc.tosca.datatypes.model.RequirementAssignment;
20 import org.onap.sdc.tosca.datatypes.model.ServiceTemplate;
21 import org.openecomp.sdc.heat.datatypes.model.HeatOrchestrationTemplate;
22 import org.openecomp.sdc.heat.datatypes.model.Resource;
23 import org.openecomp.sdc.tosca.services.ToscaUtil;
24 import org.openecomp.sdc.translator.datatypes.heattotosca.to.TranslateTo;
25
26 public class PortConsolidationDataHandler implements ConsolidationDataHandler {
27
28     private final PortConsolidationData portConsolidationData;
29
30     public PortConsolidationDataHandler(PortConsolidationData portConsolidationData) {
31         this.portConsolidationData = portConsolidationData;
32     }
33
34     @Override
35     public void addNodesConnectedOut(TranslateTo translateTo, String nodeTemplateId, String requirementId,
36                                             RequirementAssignment requirementAssignment) {
37
38         EntityConsolidationData entityConsolidationData =
39                 getPortTemplateConsolidationData(translateTo, translateTo.getResourceId(),
40                         translateTo.getResource().getType(), translateTo.getTranslatedId());
41
42         entityConsolidationData.addNodesConnectedOut(nodeTemplateId, requirementId, requirementAssignment);
43
44     }
45
46     @Override
47     public void addNodesConnectedIn(TranslateTo translateTo, String sourceNodeTemplateId,
48                String dependentNodeTemplateId, String targetResourceId, String requirementId,
49                RequirementAssignment requirementAssignment) {
50
51         EntityConsolidationData entityConsolidationData =
52                 getPortTemplateConsolidationData(translateTo, translateTo.getResourceId(),
53                         translateTo.getResource().getType(), dependentNodeTemplateId);
54
55         entityConsolidationData.addNodesConnectedIn(sourceNodeTemplateId, requirementId, requirementAssignment);
56
57     }
58
59     @Override
60     public void removeParamNameFromAttrFuncList(ServiceTemplate serviceTemplate,
61                 HeatOrchestrationTemplate heatOrchestrationTemplate, String paramName,
62                 String contrailSharedResourceId, String sharedTranslatedResourceId) {
63
64         Resource resource = heatOrchestrationTemplate.getResources().get(contrailSharedResourceId);
65         String serviceTemplateFileName = ToscaUtil.getServiceTemplateFileName(serviceTemplate);
66         EntityConsolidationData entityConsolidationData = getPortTemplateConsolidationData(serviceTemplateFileName,
67                 contrailSharedResourceId, resource.getType(), sharedTranslatedResourceId);
68         entityConsolidationData.removeParamNameFromAttrFuncList(paramName);
69
70     }
71
72     /**
73      * Add port in consolidation data base on given parameters.
74      *
75      */
76     public void addConsolidationData(String serviceTemplateFileName,
77                 String portResourceId, String portResourceType, String portNodeTemplateId) {
78         getPortTemplateConsolidationData(
79                 serviceTemplateFileName, portResourceId, portResourceType, portNodeTemplateId);
80     }
81
82     private PortTemplateConsolidationData getPortTemplateConsolidationData(TranslateTo translateTo,
83             String portResourceId, String portResourceType, String portNodeTemplateId) {
84         ServiceTemplate serviceTemplate = translateTo.getServiceTemplate();
85         String serviceTemplateFileName = ToscaUtil.getServiceTemplateFileName(serviceTemplate);
86         return getPortTemplateConsolidationData(serviceTemplateFileName,
87                 portResourceId, portResourceType, portNodeTemplateId);
88     }
89
90     private PortTemplateConsolidationData getPortTemplateConsolidationData(String serviceTemplateFileName,
91             String portResourceId, String portResourceType, String portNodeTemplateId) {
92
93         return portConsolidationData.addPortTemplateConsolidationData(serviceTemplateFileName,
94                         portNodeTemplateId, portResourceId, portResourceType);
95
96     }
97 }