Sync Integ to Master
[sdc.git] / catalog-be / src / main / java / org / openecomp / sdc / be / datamodel / utils / UiComponentDataConverter.java
1 /*-
2  * ============LICENSE_START=======================================================
3  * SDC
4  * ================================================================================
5  * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved.
6  * ================================================================================
7  * Licensed under the Apache License, Version 2.0 (the "License");
8  * you may not use this file except in compliance with the License.
9  * You may obtain a copy of the License at
10  * 
11  *      http://www.apache.org/licenses/LICENSE-2.0
12  * 
13  * Unless required by applicable law or agreed to in writing, software
14  * distributed under the License is distributed on an "AS IS" BASIS,
15  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
16  * See the License for the specific language governing permissions and
17  * limitations under the License.
18  * ============LICENSE_END=========================================================
19  */
20
21 package org.openecomp.sdc.be.datamodel.utils;
22
23 import org.openecomp.sdc.be.datatypes.components.ResourceMetadataDataDefinition;
24 import org.openecomp.sdc.be.datatypes.components.ServiceMetadataDataDefinition;
25 import org.openecomp.sdc.be.datatypes.enums.ComponentFieldsEnum;
26 import org.openecomp.sdc.be.model.Component;
27 import org.openecomp.sdc.be.model.Resource;
28 import org.openecomp.sdc.be.model.Service;
29 import org.openecomp.sdc.be.ui.model.*;
30
31 import java.util.ArrayList;
32 import java.util.HashMap;
33 import java.util.List;
34
35 public class UiComponentDataConverter {
36
37     private static void setUiTranferDataByFieldName(UiComponentDataTransfer dataTransfer, Component component, String fieldName) {
38
39             switch (ComponentFieldsEnum.findByValue(fieldName)) {
40
41                 case INPUTS:
42                     if(component.getInputs() == null){
43                         dataTransfer.setInputs(new ArrayList<>());
44                     } else {
45                         dataTransfer.setInputs(component.getInputs());
46                     }
47                     break;
48
49                 case COMPONENT_INSTANCE_RELATION:
50                     if(component.getComponentInstancesRelations() == null){
51                         dataTransfer.setComponentInstancesRelations(new ArrayList<>());
52                     } else {
53                         dataTransfer.setComponentInstancesRelations(component.getComponentInstancesRelations());
54                     }
55
56                     break;
57
58                 case GROUPS:
59                     if(component.getGroups() == null){
60                         dataTransfer.setGroups(new ArrayList<>());
61                     } else {
62                         dataTransfer.setGroups(component.getGroups());
63                     }
64                     break;
65
66                 case COMPONENT_INSTANCES:
67                     if(component.getComponentInstances() == null) {
68                         dataTransfer.setComponentInstances(new ArrayList<>());
69                     } else {
70                         dataTransfer.setComponentInstances(component.getComponentInstances());
71                     }
72                     break;
73
74                 case COMPONENT_INSTANCES_PROPERTIES:
75                     if(component.getComponentInstancesProperties() == null) {
76                         dataTransfer.setComponentInstancesProperties(new HashMap<>());
77                     } else {
78                         dataTransfer.setComponentInstancesProperties(component.getComponentInstancesProperties());
79                     }
80                     break;
81
82                 case CAPABILITIES:
83                     if(component.getCapabilities() == null) {
84                         dataTransfer.setCapabilities(new HashMap<>());
85                     } else {
86                         dataTransfer.setCapabilities(component.getCapabilities());
87                     }
88                     break;
89
90                 case POLICIES:
91                     dataTransfer.setPolicies(component.resolvePoliciesList());
92                     break;
93
94                 case REQUIREMENTS:
95                     if(component.getRequirements() == null) {
96                         dataTransfer.setRequirements(new HashMap<>());
97                     } else {
98                         dataTransfer.setRequirements(component.getRequirements());
99                     }
100                     break;
101
102                 case DEPLOYMENT_ARTIFACTS:
103                     if(component.getDeploymentArtifacts() == null) {
104                         dataTransfer.setDeploymentArtifacts(new HashMap<>());
105                     } else {
106                         dataTransfer.setDeploymentArtifacts(component.getDeploymentArtifacts());
107                     }
108                     break;
109
110                 case TOSCA_ARTIFACTS:
111                     if(component.getToscaArtifacts() == null) {
112                         dataTransfer.setToscaArtifacts(new HashMap<>());
113                     } else {
114                         dataTransfer.setToscaArtifacts(component.getToscaArtifacts());
115                     }
116                     break;
117
118                 case ARTIFACTS:
119                     if(component.getArtifacts() == null) {
120                         dataTransfer.setArtifacts(new HashMap<>());
121                     } else {
122                         dataTransfer.setArtifacts(component.getArtifacts());
123                     }
124                     break;
125
126                 case COMPONENT_INSTANCES_ATTRIBUTES:
127                     if(component.getComponentInstancesAttributes() == null) {
128                         dataTransfer.setComponentInstancesAttributes(new HashMap<>());
129                     } else {
130                         dataTransfer.setComponentInstancesAttributes(component.getComponentInstancesAttributes());
131                     }
132                     break;
133
134                 case COMPONENT_INSTANCE_INPUTS:
135                     if(component.getComponentInstancesInputs() == null) {
136                         dataTransfer.setComponentInstancesInputs(new HashMap<>());
137                     } else {
138                         dataTransfer.setComponentInstancesInputs(component.getComponentInstancesInputs());
139                     }
140
141                     break;
142
143
144                 default:
145                     break;
146             }
147
148     }
149
150
151     public static UiComponentDataTransfer getUiDataTransferFromResourceByParams(Resource resource, List<String> paramsToReturn) {
152         UiResourceDataTransfer dataTransfer = new UiResourceDataTransfer();
153
154         for(String fieldName: paramsToReturn){
155
156             switch (ComponentFieldsEnum.findByValue(fieldName)) {
157
158                 case PROPERTIES:
159                     if(resource.getProperties() == null) {
160                         dataTransfer.setProperties(new ArrayList<>());
161                     } else {
162                         dataTransfer.setProperties(resource.getProperties());
163                     }
164                     break;
165
166                 case INTERFACES:
167                     if(resource.getInterfaces() == null) {
168                         dataTransfer.setInterfaces(new HashMap<>());
169                     } else {
170                         dataTransfer.setInterfaces(resource.getInterfaces());
171                     }
172                     break;
173
174                 case DERIVED_FROM:
175                     if(resource.getDerivedFrom() == null) {
176                         dataTransfer.setDerivedFrom(new ArrayList<>());
177                     } else {
178                         dataTransfer.setDerivedFrom(resource.getDerivedFrom());
179                     }
180                     break;
181
182                 case ATTRIBUTES:
183                     if(resource.getAttributes() == null) {
184                         dataTransfer.setAttributes(new ArrayList<>());
185                     } else {
186                         dataTransfer.setAttributes(resource.getAttributes());
187                     }
188                     break;
189
190                 case ADDITIONAL_INFORMATION:
191                     if(resource.getAdditionalInformation() == null) {
192                         dataTransfer.setAdditionalInformation(new ArrayList<>());
193                     } else {
194                         dataTransfer.setAdditionalInformation(resource.getAdditionalInformation());
195                     }
196                     break;
197                 case METADATA:
198                     UiResourceMetadata metadata = new UiResourceMetadata(resource.getCategories(),  resource.getDerivedFrom(), (ResourceMetadataDataDefinition) resource.getComponentMetadataDefinition().getMetadataDataDefinition());
199                     dataTransfer.setMetadata(metadata);
200                     break;
201
202                 default:
203                     setUiTranferDataByFieldName(dataTransfer, resource, fieldName);
204             }
205         }
206
207         return dataTransfer;
208     }
209
210     public static UiComponentDataTransfer getUiDataTransferFromServiceByParams(Service service, List<String> paramsToReturn) {
211         UiServiceDataTransfer dataTransfer = new UiServiceDataTransfer();
212
213         for(String fieldName: paramsToReturn){
214
215             switch (ComponentFieldsEnum.findByValue(fieldName)) {
216
217                 case SERVICE_API_ARTIFACTS:
218                     if(service.getServiceApiArtifacts() == null) {
219                         dataTransfer.setServiceApiArtifacts(new org.openecomp.sdc.be.ui.model.SerializedHashMap<>());
220                     } else {
221                         dataTransfer.setServiceApiArtifacts(service.getServiceApiArtifacts());
222                     }
223
224                     break;
225                 case FORWARDING_PATHS:
226                     if(service.getForwardingPaths() == null) {
227                         dataTransfer.setForwardingPaths(new org.openecomp.sdc.be.ui.model.SerializedHashMap<>());
228                     } else {
229                         dataTransfer.setForwardingPaths(service.getForwardingPaths());
230                     }
231
232                     break;
233                 case METADATA:
234                     UiServiceMetadata metadata = new UiServiceMetadata(service.getCategories(),  (ServiceMetadataDataDefinition) service.getComponentMetadataDefinition().getMetadataDataDefinition());
235                     dataTransfer.setMetadata(metadata);
236                     break;
237                 default:
238                     setUiTranferDataByFieldName(dataTransfer, service, fieldName);
239                 }
240         }
241
242         return dataTransfer;
243     }
244
245
246     public static UiComponentMetadata convertToUiComponentMetadata(Component component) {
247
248         UiComponentMetadata uiComponentMetadata = null;
249         switch (component.getComponentType()) {
250             case RESOURCE:
251                 Resource resource = (Resource)component;
252                 uiComponentMetadata = new UiResourceMetadata(component.getCategories(),  resource.getDerivedFrom(), (ResourceMetadataDataDefinition) resource.getComponentMetadataDefinition().getMetadataDataDefinition());
253                 break;
254             case SERVICE:
255                 uiComponentMetadata = new UiServiceMetadata(component.getCategories(),  (ServiceMetadataDataDefinition) component.getComponentMetadataDefinition().getMetadataDataDefinition());
256                 break;
257             default:
258                 break;
259         }
260         return uiComponentMetadata;
261     }
262 }