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.tosca.utils;
18 import java.util.ArrayList;
19 import java.util.List;
21 import java.util.stream.Collectors;
22 import org.openecomp.sdc.be.datamodel.utils.ConstraintConvertor;
23 import org.openecomp.sdc.be.datatypes.elements.CINodeFilterDataDefinition;
24 import org.openecomp.sdc.be.datatypes.elements.ListDataDefinition;
25 import org.openecomp.sdc.be.datatypes.elements.RequirementNodeFilterCapabilityDataDefinition;
26 import org.openecomp.sdc.be.datatypes.elements.RequirementNodeFilterPropertyDataDefinition;
27 import org.openecomp.sdc.be.ui.model.UIConstraint;
28 import org.openecomp.sdc.be.ui.model.UINodeFilter;
30 public class NodeFilterConverter {
32 public Map<String, UINodeFilter> convertDataMapToUI(Map<String, CINodeFilterDataDefinition> inMap) {
33 return inMap.entrySet().stream().collect(Collectors.toMap(Map.Entry::getKey, o -> convertToUi(o.getValue())));
36 public UINodeFilter convertToUi(final CINodeFilterDataDefinition inNodeFilter) {
37 final UINodeFilter uiNodeFilter = new UINodeFilter();
38 final ConstraintConvertor constraintConvertor = new ConstraintConvertor();
39 final ListDataDefinition<RequirementNodeFilterPropertyDataDefinition> nodeFilterProperties = inNodeFilter.getProperties();
40 if (nodeFilterProperties != null && !nodeFilterProperties.isEmpty()) {
41 final List<UIConstraint> propertiesConstraint = nodeFilterProperties.getListToscaDataDefinition().stream().map(property -> {
42 if(property.getType() != null) {
43 return constraintConvertor.convert(property.getConstraints().iterator().next(), property.getType());
45 return constraintConvertor.convert(property.getConstraints().iterator().next());
46 }}).collect(Collectors.toList());
47 uiNodeFilter.setProperties(propertiesConstraint);
49 final ListDataDefinition<RequirementNodeFilterCapabilityDataDefinition> nodeFilterCapabilities = inNodeFilter.getCapabilities();
50 if (nodeFilterCapabilities != null && !nodeFilterCapabilities.isEmpty()) {
51 final List<UIConstraint> capabilitiesConstraint = new ArrayList<>();
52 nodeFilterCapabilities.getListToscaDataDefinition().forEach(
53 requirementNodeFilterCapabilityDataDefinition -> convertCapabilityConstraint(requirementNodeFilterCapabilityDataDefinition,
54 capabilitiesConstraint));
55 uiNodeFilter.setCapabilities(capabilitiesConstraint);
60 private void convertCapabilityConstraint(final RequirementNodeFilterCapabilityDataDefinition requirementNodeFilterCapabilityDataDefinition,
61 final List<UIConstraint> capabilitiesConstraint) {
62 final UIConstraint uiConstraint = new UIConstraint();
63 final ConstraintConvertor constraintConvertor = new ConstraintConvertor();
64 uiConstraint.setCapabilityName(requirementNodeFilterCapabilityDataDefinition.getName());
65 requirementNodeFilterCapabilityDataDefinition.getProperties().getListToscaDataDefinition().forEach(
66 property -> capabilitiesConstraint.add(constraintConvertor.getUiConstraint(property.getConstraints().iterator().next(), uiConstraint)));