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