re base code
[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(interfaceOperationParamDataDefinition.getParamName(),
41                       interfaceOperationParamDataDefinition.getParamId())).collect(Collectors.toList());
42       inputList.forEach(inputs::add);
43     }
44     ListDataDefinition<InterfaceOperationParamDataDefinition> outputParams = interfaceOperation.getOutputParams();
45     ListDataDefinition<OperationOutputDefinition> outputs = new ListDataDefinition<>();
46     if(outputParams != null) {
47       List<OperationOutputDefinition> outputList = outputParams.getListToscaDataDefinition().stream()
48               .map(interfaceOperationParamDataDefinition -> new OperationOutputDefinition(interfaceOperationParamDataDefinition.getParamName(),
49                       interfaceOperationParamDataDefinition.getParamId())).collect(Collectors.toList());
50       outputList.forEach(outputs::add);
51     }
52
53     Operation operationData = new Operation();
54     operationData.setDescription(interfaceOperation.getDescription());
55     operationData.setName(interfaceOperation.getOperationType());
56     operationData.setUniqueId(interfaceOperation.getUniqueId());
57     operationData.setInputs(inputs);
58     operationData.setOutputs(outputs);
59
60     return operationData;
61   }
62
63   public static InterfaceOperationDataDefinition convertOperationDataToInterfaceData(Operation operationData){
64
65     ListDataDefinition<OperationInputDefinition> inputs = operationData.getInputs();
66     List<InterfaceOperationParamDataDefinition> inputParamList = inputs.getListToscaDataDefinition().stream()
67             .map(operationInputDefinition -> new InterfaceOperationParamDataDefinition(operationInputDefinition.getName(),
68                     operationInputDefinition.getInputId())).collect(
69             Collectors.toList());
70     ListDataDefinition<InterfaceOperationParamDataDefinition> inputParams = new ListDataDefinition<>();
71     inputParamList.forEach(inputParams::add);
72
73     ListDataDefinition<OperationOutputDefinition> outputs = operationData.getOutputs();
74     List<InterfaceOperationParamDataDefinition> outputParamList = outputs.getListToscaDataDefinition()
75             .stream().map(operationOutputDefinition -> new InterfaceOperationParamDataDefinition(operationOutputDefinition.getName(),
76                     operationOutputDefinition.getInputId())).collect(Collectors.toList());
77     ListDataDefinition<InterfaceOperationParamDataDefinition> outputParams = new ListDataDefinition<>();
78     outputParamList.forEach(outputParams::add);
79
80     InterfaceOperationDataDefinition interfaceOperationDataDefinition = new InterfaceOperationDataDefinition();
81     interfaceOperationDataDefinition.setUniqueId(operationData.getUniqueId());
82     interfaceOperationDataDefinition.setOperationType(operationData.getName());
83     interfaceOperationDataDefinition.setDescription(operationData.getDescription());
84     interfaceOperationDataDefinition.setInputParams(inputParams);
85     interfaceOperationDataDefinition.setOutputParams(outputParams);
86     interfaceOperationDataDefinition.setArtifactUUID(operationData.getImplementation().getArtifactUUID());
87
88     return interfaceOperationDataDefinition;
89   }
90
91 }