Interface operation support for service - BE
[sdc.git] / catalog-be / src / main / java / org / openecomp / sdc / be / datamodel / utils / InterfaceUIDataConverter.java
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.be.datamodel.utils;
18
19 import org.openecomp.sdc.be.datatypes.elements.InterfaceOperationDataDefinition;
20 import org.openecomp.sdc.be.datatypes.elements.InterfaceOperationParamDataDefinition;
21 import org.openecomp.sdc.be.datatypes.elements.ListDataDefinition;
22 import org.openecomp.sdc.be.datatypes.elements.OperationInputDefinition;
23 import org.openecomp.sdc.be.datatypes.elements.OperationOutputDefinition;
24 import org.openecomp.sdc.be.model.Operation;
25
26 import java.util.List;
27 import java.util.stream.Collectors;
28
29 public class InterfaceUIDataConverter {
30
31   private InterfaceUIDataConverter () {
32
33   }
34   public static Operation convertInterfaceDataToOperationData(InterfaceOperationDataDefinition interfaceOperation){
35
36     ListDataDefinition<InterfaceOperationParamDataDefinition> inputParams = interfaceOperation.getInputParams();
37     ListDataDefinition<OperationInputDefinition> inputs = new ListDataDefinition<>();
38     if (inputParams != null) {
39       List<OperationInputDefinition> inputList = inputParams.getListToscaDataDefinition().stream()
40               .map(interfaceOperationParamDataDefinition -> new OperationInputDefinition(
41                       interfaceOperationParamDataDefinition.getName(),
42                       interfaceOperationParamDataDefinition.getProperty(),
43                       interfaceOperationParamDataDefinition.getMandatory() == null ? false : interfaceOperationParamDataDefinition.getMandatory(),
44                       interfaceOperationParamDataDefinition.getType()
45                       )).collect(Collectors.toList());
46       inputList.forEach(inputs::add);
47     }
48     ListDataDefinition<InterfaceOperationParamDataDefinition> outputParams = interfaceOperation.getOutputParams();
49     ListDataDefinition<OperationOutputDefinition> outputs = new ListDataDefinition<>();
50     if(outputParams != null) {
51       List<OperationOutputDefinition> outputList = outputParams.getListToscaDataDefinition().stream()
52               .map(interfaceOperationParamDataDefinition -> new OperationOutputDefinition(
53                       interfaceOperationParamDataDefinition.getName(),
54                       interfaceOperationParamDataDefinition.getMandatory(),
55                       interfaceOperationParamDataDefinition.getType()
56                       )).collect(Collectors.toList());
57       outputList.forEach(outputs::add);
58     }
59
60     Operation operationData = new Operation();
61     operationData.setDescription(interfaceOperation.getDescription());
62     operationData.setName(interfaceOperation.getOperationType());
63     operationData.setUniqueId(interfaceOperation.getUniqueId());
64     operationData.setInputs(inputs);
65     operationData.setOutputs(outputs);
66     operationData.setWorkflowId(interfaceOperation.getWorkflowId());
67     operationData.setWorkflowVersionId(interfaceOperation.getWorkflowVersionId());
68
69     return operationData;
70   }
71
72   public static InterfaceOperationDataDefinition convertOperationDataToInterfaceData(Operation operationData){
73     ListDataDefinition<OperationInputDefinition> inputs = operationData.getInputs();
74     List<InterfaceOperationParamDataDefinition> inputParamList = inputs.getListToscaDataDefinition().stream()
75             .map(operationInputDefinition -> new InterfaceOperationParamDataDefinition(operationInputDefinition.getName(),
76                     operationInputDefinition.getInputId(),
77                     operationInputDefinition.isRequired(),
78                     operationInputDefinition.getType())).collect(
79             Collectors.toList());
80     ListDataDefinition<InterfaceOperationParamDataDefinition> inputParams = new ListDataDefinition<>();
81     inputParamList.forEach(inputParams::add);
82
83     ListDataDefinition<OperationOutputDefinition> outputs = operationData.getOutputs();
84     List<InterfaceOperationParamDataDefinition> outputParamList = outputs.getListToscaDataDefinition()
85             .stream().map(operationOutputDefinition -> new InterfaceOperationParamDataDefinition(operationOutputDefinition.getName(),
86                     operationOutputDefinition.isRequired(),
87                     operationOutputDefinition.getType())).collect(Collectors.toList());
88     ListDataDefinition<InterfaceOperationParamDataDefinition> outputParams = new ListDataDefinition<>();
89     outputParamList.forEach(outputParams::add);
90
91     InterfaceOperationDataDefinition interfaceOperationDataDefinition = new InterfaceOperationDataDefinition();
92     interfaceOperationDataDefinition.setUniqueId(operationData.getUniqueId());
93     interfaceOperationDataDefinition.setOperationType(operationData.getName());
94     interfaceOperationDataDefinition.setDescription(operationData.getDescription());
95     interfaceOperationDataDefinition.setInputParams(inputParams);
96     interfaceOperationDataDefinition.setOutputParams(outputParams);
97     interfaceOperationDataDefinition.setArtifactUUID(operationData.getImplementation().getArtifactUUID());
98     interfaceOperationDataDefinition.setWorkflowId(operationData.getWorkflowId());
99     interfaceOperationDataDefinition.setWorkflowVersionId(operationData.getWorkflowVersionId());
100
101     return interfaceOperationDataDefinition;
102   }
103
104 }