2 * ============LICENSE_START=======================================================
3 * Copyright (C) 2020 Nordix Foundation
4 * ================================================================================
5 * Licensed under the Apache License, Version 2.0 (the "License");
6 * you may not use this file except in compliance with the License.
7 * You may obtain a copy of the License at
9 * 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 * SPDX-License-Identifier: Apache-2.0
17 * ============LICENSE_END=========================================================
19 package org.openecomp.sdc.be.tosca.utils;
21 import java.util.Collections;
22 import java.util.List;
23 import java.util.stream.Collectors;
24 import org.apache.commons.collections.CollectionUtils;
25 import org.openecomp.sdc.be.datamodel.utils.ConstraintConvertor;
26 import org.openecomp.sdc.be.datatypes.elements.ListDataDefinition;
27 import org.openecomp.sdc.be.datatypes.elements.RequirementSubstitutionFilterCapabilityDataDefinition;
28 import org.openecomp.sdc.be.datatypes.elements.RequirementSubstitutionFilterPropertyDataDefinition;
29 import org.openecomp.sdc.be.datatypes.elements.SubstitutionFilterDataDefinition;
30 import org.openecomp.sdc.be.ui.model.UIConstraint;
31 import org.openecomp.sdc.be.ui.model.UINodeFilter;
33 public class SubstitutionFilterConverter {
35 public UINodeFilter convertToUi(final SubstitutionFilterDataDefinition inSubstitutionFilter) {
36 final UINodeFilter uiNodeFilter = new UINodeFilter();
37 final ConstraintConvertor constraintConvertor = new ConstraintConvertor();
38 final List<UIConstraint> uiPropertyFilters = extractPropertyFilter(inSubstitutionFilter, constraintConvertor);
39 if (!uiPropertyFilters.isEmpty()) {
40 uiNodeFilter.setProperties(uiPropertyFilters);
42 final List<UIConstraint> uiCapabilityFilters = extractCapabilitiesFilter(inSubstitutionFilter, constraintConvertor);
43 if (!uiCapabilityFilters.isEmpty()) {
44 uiNodeFilter.setCapabilities(uiCapabilityFilters);
49 private List<UIConstraint> extractPropertyFilter(final SubstitutionFilterDataDefinition substitutionFilter,
50 final ConstraintConvertor constraintConvertor) {
51 final ListDataDefinition<RequirementSubstitutionFilterPropertyDataDefinition> substitutionFilterProperties = substitutionFilter
53 if (substitutionFilterProperties != null && !substitutionFilterProperties.isEmpty() && CollectionUtils
54 .isNotEmpty(substitutionFilterProperties.getListToscaDataDefinition())) {
55 return substitutionFilterProperties.getListToscaDataDefinition().stream().map(property -> property.getConstraints().iterator().next())
56 .map(constraintConvertor::convert).collect(Collectors.toList());
58 return Collections.emptyList();
61 private List<UIConstraint> extractCapabilitiesFilter(final SubstitutionFilterDataDefinition substitutionFilter,
62 final ConstraintConvertor constraintConvertor) {
63 final ListDataDefinition<RequirementSubstitutionFilterCapabilityDataDefinition> substitutionFilterCapabilities = substitutionFilter
65 if (substitutionFilterCapabilities != null && !substitutionFilterCapabilities.isEmpty() && CollectionUtils
66 .isNotEmpty(substitutionFilterCapabilities.getListToscaDataDefinition())) {
67 return substitutionFilterCapabilities.getListToscaDataDefinition().stream()
68 .map(capabilities -> capabilities.getProperties().getListToscaDataDefinition().iterator().next())
69 .map(property -> property.getConstraints().iterator().next()).map(constraintConvertor::convert).collect(Collectors.toList());
71 return Collections.emptyList();