a7dd5afc10a4391e7b05ad08ae819d827216a77f
[sdc.git] / catalog-be / src / main / java / org / openecomp / sdc / be / components / impl / utils / CINodeFilterUtils.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 package org.openecomp.sdc.be.components.impl.utils;
17
18 import java.util.List;
19 import java.util.Map;
20 import java.util.stream.Collectors;
21 import org.openecomp.sdc.be.datatypes.elements.CINodeFilterDataDefinition;
22 import org.openecomp.sdc.be.datatypes.elements.ListDataDefinition;
23 import org.openecomp.sdc.be.datatypes.elements.RequirementNodeFilterCapabilityDataDefinition;
24 import org.openecomp.sdc.be.datatypes.elements.RequirementNodeFilterPropertyDataDefinition;
25 import org.openecomp.sdc.be.model.UploadNodeFilterCapabilitiesInfo;
26 import org.openecomp.sdc.be.model.UploadNodeFilterInfo;
27 import org.openecomp.sdc.be.model.UploadNodeFilterPropertyInfo;
28 import org.openecomp.sdc.common.log.wrappers.Logger;
29
30 public class CINodeFilterUtils {
31
32     Logger log = Logger.getLogger(CINodeFilterUtils.class);
33
34     public CINodeFilterDataDefinition getNodeFilterDataDefinition(UploadNodeFilterInfo uploadNodeFilterInfo, String uniqueId) {
35         CINodeFilterDataDefinition nodeFilterDataDefinition = new CINodeFilterDataDefinition();
36         nodeFilterDataDefinition.setName(uploadNodeFilterInfo.getName());
37         List<RequirementNodeFilterPropertyDataDefinition> collect = uploadNodeFilterInfo.getProperties().stream().map(this::buildProperty)
38             .collect(Collectors.toList());
39         ListDataDefinition<RequirementNodeFilterPropertyDataDefinition> listDataDefinition = new ListDataDefinition<>();
40         listDataDefinition.getListToscaDataDefinition().addAll(collect);
41         nodeFilterDataDefinition.setProperties(listDataDefinition);
42         nodeFilterDataDefinition.setCapabilities(converCapabilties(uploadNodeFilterInfo.getCapabilities()));
43         nodeFilterDataDefinition.setID(uniqueId);
44         nodeFilterDataDefinition.setTosca_id(uploadNodeFilterInfo.getTosca_id());
45         return nodeFilterDataDefinition;
46     }
47
48     private ListDataDefinition<RequirementNodeFilterCapabilityDataDefinition> converCapabilties(
49         Map<String, UploadNodeFilterCapabilitiesInfo> capabilities) {
50         ListDataDefinition<RequirementNodeFilterCapabilityDataDefinition> listDataDefinition = new ListDataDefinition<>();
51         for (UploadNodeFilterCapabilitiesInfo capability : capabilities.values()) {
52             RequirementNodeFilterCapabilityDataDefinition requirementNodeFilterCapabilityDataDefinition = convertCapability(capability);
53             listDataDefinition.add(requirementNodeFilterCapabilityDataDefinition);
54         }
55         return listDataDefinition;
56     }
57
58     private RequirementNodeFilterCapabilityDataDefinition convertCapability(UploadNodeFilterCapabilitiesInfo capability) {
59         RequirementNodeFilterCapabilityDataDefinition retVal = new RequirementNodeFilterCapabilityDataDefinition();
60         retVal.setName(capability.getName());
61         List<RequirementNodeFilterPropertyDataDefinition> props = capability.getProperties().stream().map(this::buildProperty)
62             .collect(Collectors.toList());
63         ListDataDefinition<RequirementNodeFilterPropertyDataDefinition> propsList = new ListDataDefinition<>();
64         propsList.getListToscaDataDefinition().addAll(props);
65         retVal.setProperties(propsList);
66         return retVal;
67     }
68
69     private RequirementNodeFilterPropertyDataDefinition buildProperty(UploadNodeFilterPropertyInfo uploadNodeFilterPropertyInfo) {
70         RequirementNodeFilterPropertyDataDefinition retVal = new RequirementNodeFilterPropertyDataDefinition();
71         retVal.setName(uploadNodeFilterPropertyInfo.getName());
72         List<String> propertyConstraints = uploadNodeFilterPropertyInfo.getValues();
73         retVal.setConstraints(propertyConstraints);
74         return retVal;
75     }
76 }