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.
16 package org.openecomp.sdc.be.components.impl.utils;
18 import java.util.List;
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;
30 public class CINodeFilterUtils {
32 Logger log = Logger.getLogger(CINodeFilterUtils.class);
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;
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);
55 return listDataDefinition;
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);
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);