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.Objects;
20 import org.onap.sdc.tosca.datatypes.model.RequirementAssignment;
21 import org.onap.sdc.tosca.datatypes.model.ServiceTemplate;
22 import org.openecomp.sdc.heat.datatypes.model.HeatOrchestrationTemplate;
23 import org.openecomp.sdc.heat.datatypes.model.Resource;
24 import org.openecomp.sdc.tosca.services.ToscaUtil;
25 import org.openecomp.sdc.translator.datatypes.heattotosca.to.TranslateTo;
26 import org.openecomp.sdc.translator.services.heattotosca.impl.functiontranslation.FunctionTranslator;
28 public class PortConsolidationDataHandler implements ConsolidationDataHandler {
30 private final PortConsolidationData portConsolidationData;
32 public PortConsolidationDataHandler(PortConsolidationData portConsolidationData) {
33 this.portConsolidationData = portConsolidationData;
37 public void addNodesConnectedOut(TranslateTo translateTo, String nodeTemplateId, String requirementId,
38 RequirementAssignment requirementAssignment) {
40 EntityConsolidationData entityConsolidationData =
41 getPortTemplateConsolidationData(translateTo, translateTo.getResourceId(),
42 translateTo.getResource().getType(), translateTo.getTranslatedId());
44 entityConsolidationData.addNodesConnectedOut(nodeTemplateId, requirementId, requirementAssignment);
49 public void addNodesConnectedIn(TranslateTo translateTo, String sourceNodeTemplateId,
50 String dependentNodeTemplateId, String targetResourceId, String requirementId,
51 RequirementAssignment requirementAssignment) {
53 EntityConsolidationData entityConsolidationData =
54 getPortTemplateConsolidationData(translateTo, translateTo.getResourceId(),
55 translateTo.getResource().getType(), dependentNodeTemplateId);
57 entityConsolidationData.addNodesConnectedIn(sourceNodeTemplateId, requirementId, requirementAssignment);
62 public void removeParamNameFromAttrFuncList(ServiceTemplate serviceTemplate,
63 HeatOrchestrationTemplate heatOrchestrationTemplate, String paramName,
64 String contrailSharedResourceId, String sharedTranslatedResourceId) {
66 Resource resource = heatOrchestrationTemplate.getResources().get(contrailSharedResourceId);
67 String serviceTemplateFileName = ToscaUtil.getServiceTemplateFileName(serviceTemplate);
68 EntityConsolidationData entityConsolidationData = getPortTemplateConsolidationData(serviceTemplateFileName,
69 contrailSharedResourceId, resource.getType(), sharedTranslatedResourceId);
70 entityConsolidationData.removeParamNameFromAttrFuncList(paramName);
75 * Add port in consolidation data base on given parameters.
78 public void addConsolidationData(String serviceTemplateFileName,
79 String portResourceId, String portResourceType, String portNodeTemplateId) {
80 getPortTemplateConsolidationData(
81 serviceTemplateFileName, portResourceId, portResourceType, portNodeTemplateId);
85 public void addNodesGetAttrOut(FunctionTranslator functionTranslator, String nodeTemplateId,
86 String resourceTranslatedId, String propertyName, String attributeName) {
88 String resourceId = functionTranslator.getResourceId();
89 EntityConsolidationData entityConsolidationData =
90 getPortTemplateConsolidationData(functionTranslator, resourceId, resourceTranslatedId);
92 if (Objects.nonNull(entityConsolidationData)) {
93 GetAttrFuncData getAttrFuncData = createGetAttrFuncData(propertyName, attributeName);
94 entityConsolidationData.addNodesGetAttrOut(nodeTemplateId, getAttrFuncData);
99 public void addNodesGetAttrIn(FunctionTranslator functionTranslator,String nodeTemplateId,
100 String targetResourceId, String targetResourceTranslatedId, String propertyName, String attributeName) {
101 EntityConsolidationData entityConsolidationData =
102 getPortTemplateConsolidationData(functionTranslator, targetResourceId, targetResourceTranslatedId);
104 if (Objects.nonNull(entityConsolidationData)) {
105 GetAttrFuncData getAttrFuncData = createGetAttrFuncData(propertyName, attributeName);
106 entityConsolidationData.addNodesGetAttrIn(nodeTemplateId, getAttrFuncData);
111 public void addOutputParamGetAttrIn(FunctionTranslator functionTranslator, String targetResourceId,
112 String targetResourceTranslatedId, String propertyName, String attributeName) {
114 EntityConsolidationData entityConsolidationData =
115 getPortTemplateConsolidationData(functionTranslator, targetResourceId, targetResourceTranslatedId);
117 if (Objects.nonNull(entityConsolidationData)) {
118 GetAttrFuncData getAttrFuncData = createGetAttrFuncData(propertyName, attributeName);
119 entityConsolidationData.addOutputParamGetAttrIn(getAttrFuncData);
123 private GetAttrFuncData createGetAttrFuncData(String propertyName, String attributeName) {
124 GetAttrFuncData getAttrFuncData = new GetAttrFuncData();
125 getAttrFuncData.setFieldName(propertyName);
126 getAttrFuncData.setAttributeName(attributeName);
127 return getAttrFuncData;
130 private EntityConsolidationData getPortTemplateConsolidationData(FunctionTranslator functionTranslator,
131 String targetResourceId, String targetResourceTranslatedId) {
132 HeatOrchestrationTemplate heatOrchestrationTemplate = functionTranslator.getHeatOrchestrationTemplate();
133 Resource resource = heatOrchestrationTemplate.getResources().get(targetResourceId);
134 ServiceTemplate serviceTemplate = functionTranslator.getServiceTemplate();
135 return getPortTemplateConsolidationData(ToscaUtil.getServiceTemplateFileName(serviceTemplate),
136 targetResourceId, resource.getType(), targetResourceTranslatedId);
139 private PortTemplateConsolidationData getPortTemplateConsolidationData(TranslateTo translateTo,
140 String portResourceId, String portResourceType, String portNodeTemplateId) {
141 ServiceTemplate serviceTemplate = translateTo.getServiceTemplate();
142 String serviceTemplateFileName = ToscaUtil.getServiceTemplateFileName(serviceTemplate);
143 return getPortTemplateConsolidationData(serviceTemplateFileName,
144 portResourceId, portResourceType, portNodeTemplateId);
147 private PortTemplateConsolidationData getPortTemplateConsolidationData(String serviceTemplateFileName,
148 String portResourceId, String portResourceType, String portNodeTemplateId) {
150 return portConsolidationData.addPortTemplateConsolidationData(serviceTemplateFileName,
151 portNodeTemplateId, portResourceId, portResourceType);