package org.openecomp.sdc.be.components.impl;
import static org.openecomp.sdc.be.components.impl.ImportUtils.Constants.QUOTE;
+import static org.openecomp.sdc.be.utils.PropertyFilterConstraintDataDefinitionHelper.createToscaFunctionFromLegacyConstraintValue;
import static org.openecomp.sdc.be.utils.TypeUtils.ToscaTagNamesEnum.ACTIVITIES;
import static org.openecomp.sdc.be.utils.TypeUtils.ToscaTagNamesEnum.DEFAULT;
import static org.openecomp.sdc.be.utils.TypeUtils.ToscaTagNamesEnum.DESCRIPTION;
+import static org.openecomp.sdc.be.utils.TypeUtils.ToscaTagNamesEnum.FILTERS;
import static org.openecomp.sdc.be.utils.TypeUtils.ToscaTagNamesEnum.IMPLEMENTATION;
import static org.openecomp.sdc.be.utils.TypeUtils.ToscaTagNamesEnum.INPUTS;
import static org.openecomp.sdc.be.utils.TypeUtils.ToscaTagNamesEnum.MILESTONES;
import org.openecomp.sdc.be.dao.api.ActionStatus;
import org.openecomp.sdc.be.datatypes.elements.ActivityDataDefinition;
import org.openecomp.sdc.be.datatypes.elements.ArtifactDataDefinition;
+import org.openecomp.sdc.be.datatypes.elements.FilterDataDefinition;
import org.openecomp.sdc.be.datatypes.elements.InputDataDefinition;
import org.openecomp.sdc.be.datatypes.elements.ListDataDefinition;
import org.openecomp.sdc.be.datatypes.elements.MilestoneDataDefinition;
import org.openecomp.sdc.be.datatypes.elements.OperationInputDefinition;
import org.openecomp.sdc.be.datatypes.elements.PropertyDataDefinition;
import org.openecomp.sdc.be.datatypes.elements.SchemaDefinition;
+import org.openecomp.sdc.be.datatypes.elements.ToscaFunction;
+import org.openecomp.sdc.be.datatypes.elements.ToscaFunctionType;
+import org.openecomp.sdc.be.datatypes.enums.ConstraintType;
import org.openecomp.sdc.be.model.InputDefinition;
import org.openecomp.sdc.be.model.InterfaceDefinition;
import org.openecomp.sdc.be.model.operations.impl.UniqueIdBuilder;
if (activities.isEmpty()) {
throw new ByActionStatusComponentException(ActionStatus.INVALID_OPERATION_MILESTONE, interfaceInput.getKey());
}
+ ListDataDefinition<FilterDataDefinition> filters = handleMilestoneFilters(interfaceInput.getValue());
+ if (!filters.isEmpty()) {
+ operationMilestone.setFilters(filters);
+ }
operationMilestone.setActivities(activities);
milestones.put(interfaceInput.getKey(), operationMilestone);
}
return milestones;
}
+ private ListDataDefinition<FilterDataDefinition> handleMilestoneFilters(Object milestone) {
+ ListDataDefinition<FilterDataDefinition> filters = new ListDataDefinition<>();
+ if (milestone instanceof Map) {
+ final LinkedHashMap<String, Object> milestoneValue = (LinkedHashMap<String, Object>) milestone;
+ if (milestoneValue.containsKey(FILTERS.getElementName())) {
+ final List<Object> milestoneFilters = (List<Object>) milestoneValue.get(FILTERS.getElementName());
+ for (Object filtersValues : milestoneFilters) {
+ if (filtersValues instanceof Map) {
+ FilterDataDefinition filter = new FilterDataDefinition();
+ Map<String, Object> filterMap = (Map<String, Object>) filtersValues;
+
+ Optional<Entry<String, Object>> filterOptional =
+ filterMap.entrySet().stream().filter(entrySet -> entrySet.getValue() instanceof Map).findAny();
+ if (filterOptional.isEmpty()) {
+ continue;
+ }
+ Entry<String, Object> filterValue = filterOptional.get();
+ if (!(filterValue.getValue() instanceof Map)) {
+ continue;
+ }
+ Map<String, Object> valueMap = (Map<String, Object>) filterValue.getValue();
+ Optional<String> constraintTypeOptional =
+ valueMap.keySet().stream().filter(key -> ConstraintType.findByType(key).isPresent()).findAny();
+ if (constraintTypeOptional.isEmpty()) {
+ continue;
+ }
+ String constraintType = constraintTypeOptional.get();
+ filter.setName(filterValue.getKey());
+ filter.setConstraint(constraintType);
+ Object value = valueMap.get(constraintType);
+ if (value instanceof Map) {
+ Map<String, Object> valueAsMap = (Map<String, Object>) value;
+ Optional<String> toscaFunctionTypeOptional =
+ valueAsMap.keySet().stream().filter(key -> ToscaFunctionType.findType(key).isPresent()).findAny();
+ if (toscaFunctionTypeOptional.isPresent()) {
+ Optional<ToscaFunction> toscaValue = createToscaFunctionFromLegacyConstraintValue(valueAsMap);
+ if (toscaValue.isPresent()) {
+ filter.setToscaFunction(toscaValue.get());
+ }
+ }
+ }
+ filter.setFilterValue(value);
+ filters.add(filter);
+ } else {
+ return new ListDataDefinition<>();
+ }
+ }
+ } else {
+ return new ListDataDefinition<>();
+ }
+ }
+ return filters;
+ }
+
private ListDataDefinition<ActivityDataDefinition> handleMilestoneActivities(final Object value) {
ListDataDefinition<ActivityDataDefinition> activities = new ListDataDefinition<>();
if (value instanceof Map) {
import java.util.Map;
import java.util.Map.Entry;
import java.util.Objects;
+import java.util.Optional;
import java.util.Set;
import java.util.stream.Collectors;
import org.apache.commons.collections.MapUtils;
import org.apache.commons.lang3.math.NumberUtils;
import org.openecomp.sdc.be.datatypes.elements.ActivityDataDefinition;
import org.openecomp.sdc.be.datatypes.elements.ArtifactDataDefinition;
+import org.openecomp.sdc.be.datatypes.elements.FilterDataDefinition;
import org.openecomp.sdc.be.datatypes.elements.InputDataDefinition;
import org.openecomp.sdc.be.datatypes.elements.ListDataDefinition;
import org.openecomp.sdc.be.datatypes.elements.MilestoneDataDefinition;
import org.openecomp.sdc.be.datatypes.elements.OperationInputDefinition;
import org.openecomp.sdc.be.datatypes.elements.PropertyDataDefinition;
import org.openecomp.sdc.be.datatypes.enums.ActivityTypeEnum;
+import org.openecomp.sdc.be.datatypes.enums.ConstraintType;
import org.openecomp.sdc.be.datatypes.enums.MilestoneTypeEnum;
import org.openecomp.sdc.be.model.Component;
import org.openecomp.sdc.be.model.ComponentInstance;
import org.openecomp.sdc.be.model.InterfaceDefinition;
import org.openecomp.sdc.be.model.Product;
import org.openecomp.sdc.be.model.PropertyDefinition;
+import org.openecomp.sdc.be.model.tosca.constraints.EqualConstraint;
+import org.openecomp.sdc.be.model.tosca.constraints.GreaterOrEqualConstraint;
+import org.openecomp.sdc.be.model.tosca.constraints.GreaterThanConstraint;
+import org.openecomp.sdc.be.model.tosca.constraints.InRangeConstraint;
+import org.openecomp.sdc.be.model.tosca.constraints.LengthConstraint;
+import org.openecomp.sdc.be.model.tosca.constraints.LessOrEqualConstraint;
+import org.openecomp.sdc.be.model.tosca.constraints.LessThanConstraint;
+import org.openecomp.sdc.be.model.tosca.constraints.MaxLengthConstraint;
+import org.openecomp.sdc.be.model.tosca.constraints.MinLengthConstraint;
+import org.openecomp.sdc.be.model.tosca.constraints.PatternConstraint;
+import org.openecomp.sdc.be.model.tosca.constraints.ValidValuesConstraint;
import org.openecomp.sdc.be.tosca.PropertyConvertor.PropertyType;
import org.openecomp.sdc.be.tosca.model.ToscaActivity;
import org.openecomp.sdc.be.tosca.model.ToscaArtifactDefinition;
import org.openecomp.sdc.be.tosca.model.ToscaProperty;
import org.openecomp.sdc.be.tosca.model.ToscaPropertyAssignment;
import org.openecomp.sdc.be.tosca.model.ToscaPropertyAssignmentJsonSerializer;
+import org.openecomp.sdc.be.tosca.model.ToscaPropertyConstraint;
+import org.openecomp.sdc.be.tosca.model.ToscaPropertyConstraintEqual;
+import org.openecomp.sdc.be.tosca.model.ToscaPropertyConstraintGreaterOrEqual;
+import org.openecomp.sdc.be.tosca.model.ToscaPropertyConstraintGreaterThan;
+import org.openecomp.sdc.be.tosca.model.ToscaPropertyConstraintInRange;
+import org.openecomp.sdc.be.tosca.model.ToscaPropertyConstraintLength;
+import org.openecomp.sdc.be.tosca.model.ToscaPropertyConstraintLessOrEqual;
+import org.openecomp.sdc.be.tosca.model.ToscaPropertyConstraintLessThan;
+import org.openecomp.sdc.be.tosca.model.ToscaPropertyConstraintMaxLength;
+import org.openecomp.sdc.be.tosca.model.ToscaPropertyConstraintMinLength;
+import org.openecomp.sdc.be.tosca.model.ToscaPropertyConstraintPattern;
+import org.openecomp.sdc.be.tosca.model.ToscaPropertyConstraintValidValues;
import org.openecomp.sdc.be.tosca.utils.OperationArtifactUtil;
import org.openecomp.sdc.be.utils.TypeUtils.ToscaTagNamesEnum;
import org.openecomp.sdc.tosca.datatypes.ToscaFunctions;
}
ToscaMilestone toscaMilestone = new ToscaMilestone();
toscaMilestone.setActivities(toscaActivities);
+ toscaMilestone.setFilters(getToscaFilters(milestone.getValue().getFilters()));
toscaMilestones.put(milestone.getKey(), toscaMilestone);
}
toscaOperation.setMilestones(toscaMilestones);
}
+ private List<Map<String, ToscaPropertyConstraint>> getToscaFilters(ListDataDefinition<FilterDataDefinition> filters) {
+ if (filters != null && !filters.isEmpty()) {
+ List<Map<String, ToscaPropertyConstraint>> toscaFilters = new ArrayList<>();
+ for (FilterDataDefinition filter : filters.getListToscaDataDefinition()) {
+ Optional<ConstraintType> typeOptional = ConstraintType.findByType(filter.getConstraint());
+ if (typeOptional.isEmpty()) {
+ continue;
+ }
+ ConstraintType type = typeOptional.get();
+ Object value = filter.isToscaFunction() ? filter.getToscaFunction().getJsonObjectValue() : filter.getFilterValue();
+ if (ConstraintType.EQUAL.equals(type)) {
+ EqualConstraint equalConstraint = new EqualConstraint(value);
+ ToscaPropertyConstraint prop = new ToscaPropertyConstraintEqual(equalConstraint.getEqual());
+ toscaFilters.add(Map.of(filter.getName(), prop));
+ }
+ if (ConstraintType.GREATER_THAN.equals(type)) {
+ GreaterThanConstraint greaterThanConstraint = new GreaterThanConstraint(value);
+ ToscaPropertyConstraintGreaterThan prop = new ToscaPropertyConstraintGreaterThan(greaterThanConstraint.getGreaterThan());
+ toscaFilters.add(Map.of(filter.getName(), prop));
+ }
+ if (ConstraintType.GREATER_OR_EQUAL.equals(type)) {
+ GreaterOrEqualConstraint greaterOrEqualConstraint = new GreaterOrEqualConstraint<>(value);
+ ToscaPropertyConstraintGreaterOrEqual prop =
+ new ToscaPropertyConstraintGreaterOrEqual(greaterOrEqualConstraint.getGreaterOrEqual());
+ toscaFilters.add(Map.of(filter.getName(), prop));
+ }
+ if (ConstraintType.LESS_THAN.equals(type)) {
+ LessThanConstraint lessThanConstraint = new LessThanConstraint(value);
+ ToscaPropertyConstraintLessThan prop = new ToscaPropertyConstraintLessThan(lessThanConstraint.getLessThan());
+ toscaFilters.add(Map.of(filter.getName(), prop));
+ }
+ if (ConstraintType.LESS_OR_EQUAL.equals(type)) {
+ LessOrEqualConstraint lessOrEqualConstraint = new LessOrEqualConstraint<>(value);
+ ToscaPropertyConstraintLessOrEqual prop = new ToscaPropertyConstraintLessOrEqual(lessOrEqualConstraint.getLessOrEqual());
+ toscaFilters.add(Map.of(filter.getName(), prop));
+ }
+ if (ConstraintType.IN_RANGE.equals(type)) {
+ InRangeConstraint inRangeConstraint = new InRangeConstraint((List<Object>) value);
+ toscaFilters.add(Map.of(filter.getName(), new ToscaPropertyConstraintInRange(inRangeConstraint.getInRange())));
+ }
+ if (ConstraintType.VALID_VALUES.equals(type)) {
+ ValidValuesConstraint validValues = new ValidValuesConstraint((List<Object>) value);
+ List prop = validValues.getValidValues();
+ toscaFilters.add(Map.of(filter.getName(), (new ToscaPropertyConstraintValidValues(prop))));
+ }
+ if (ConstraintType.LENGTH.equals(type)) {
+ LengthConstraint lengthConstraint = new LengthConstraint((Integer) value);
+ toscaFilters.add(Map.of(filter.getName(), (new ToscaPropertyConstraintLength(lengthConstraint.getLength()))));
+ }
+ if (ConstraintType.MIN_LENGTH.equals(type)) {
+ MinLengthConstraint minLengthConstraint = new MinLengthConstraint((Integer) value);
+ toscaFilters.add(Map.of(filter.getName(), new ToscaPropertyConstraintMinLength(minLengthConstraint.getMinLength())));
+ }
+ if (ConstraintType.MAX_LENGTH.equals(type)) {
+ MaxLengthConstraint maxLengthConstraint = new MaxLengthConstraint((Integer) value);
+ toscaFilters.add(Map.of(filter.getName(), new ToscaPropertyConstraintMaxLength(maxLengthConstraint.getMaxLength())));
+ }
+ }
+ return toscaFilters;
+ }
+ return null;
+ }
+
private Map<String, Object> getToscaActivityInputs(ListDataDefinition<OperationInputDefinition> inputs,
Map<String, DataTypeDefinition> dataTypes) {
if (Objects.isNull(inputs) || inputs.isEmpty()) {
--- /dev/null
+/*
+ *
+ * ============LICENSE_START=======================================================
+ * Copyright (C) 2023 Nordix Foundation.
+ * ================================================================================
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ * SPDX-License-Identifier: Apache-2.0
+ * ============LICENSE_END=========================================================
+ */
+
+package org.openecomp.sdc.be.tosca.model;
+
+import lombok.Data;
+
+@Data
+public class ToscaFilter {
+
+ private String name;
+ private String constraint;
+ private Object value; //ToscaFunction or String or float, etc I guess
+}
public class ToscaMilestone {
private List<Map<String, ToscaActivity>> activities;
+ private List<Map<String, ToscaPropertyConstraint>> filters;
}
*/
package org.openecomp.sdc.be.tosca.model;
+import com.fasterxml.jackson.annotation.JsonIgnore;
import lombok.AllArgsConstructor;
import lombok.Getter;
import lombok.Setter;
}
@Override
+ @JsonIgnore
public ConstraintType getConstraintType() {
return CONSTRAINT_TYPE;
}
*/
package org.openecomp.sdc.be.tosca.model;
+import com.fasterxml.jackson.annotation.JsonIgnore;
import lombok.AllArgsConstructor;
import lombok.Getter;
import lombok.Setter;
}
@Override
+ @JsonIgnore
public ConstraintType getConstraintType() {
return CONSTRAINT_TYPE;
}
*/
package org.openecomp.sdc.be.tosca.model;
+import com.fasterxml.jackson.annotation.JsonIgnore;
import lombok.AllArgsConstructor;
import lombok.Getter;
import lombok.Setter;
}
@Override
+ @JsonIgnore
public ConstraintType getConstraintType() {
return CONSTRAINT_TYPE;
}
*/
package org.openecomp.sdc.be.tosca.model;
+import com.fasterxml.jackson.annotation.JsonIgnore;
import java.util.LinkedList;
import java.util.List;
import lombok.AllArgsConstructor;
}
@Override
+ @JsonIgnore
public ConstraintType getConstraintType() {
return CONSTRAINT_TYPE;
}
*/
package org.openecomp.sdc.be.tosca.model;
+import com.fasterxml.jackson.annotation.JsonIgnore;
import lombok.AllArgsConstructor;
import lombok.Getter;
import lombok.Setter;
}
@Override
+ @JsonIgnore
public ConstraintType getConstraintType() {
return CONSTRAINT_TYPE;
}
*/
package org.openecomp.sdc.be.tosca.model;
+import com.fasterxml.jackson.annotation.JsonIgnore;
import lombok.AllArgsConstructor;
import lombok.Getter;
import lombok.Setter;
}
@Override
+ @JsonIgnore
public ConstraintType getConstraintType() {
return CONSTRAINT_TYPE;
}
*/
package org.openecomp.sdc.be.tosca.model;
+import com.fasterxml.jackson.annotation.JsonIgnore;
import lombok.AllArgsConstructor;
import lombok.Getter;
import lombok.Setter;
}
@Override
+ @JsonIgnore
public ConstraintType getConstraintType() {
return CONSTRAINT_TYPE;
}
*/
package org.openecomp.sdc.be.tosca.model;
+import com.fasterxml.jackson.annotation.JsonIgnore;
import lombok.AllArgsConstructor;
import lombok.Getter;
import lombok.Setter;
}
@Override
+ @JsonIgnore
public ConstraintType getConstraintType() {
return CONSTRAINT_TYPE;
}
*/
package org.openecomp.sdc.be.tosca.model;
+import com.fasterxml.jackson.annotation.JsonIgnore;
import lombok.AllArgsConstructor;
import lombok.Getter;
import lombok.Setter;
}
@Override
+ @JsonIgnore
public ConstraintType getConstraintType() {
return ConstraintType.MIN_LENGTH;
}
*/
package org.openecomp.sdc.be.tosca.model;
+import com.fasterxml.jackson.annotation.JsonIgnore;
import java.util.List;
import lombok.AllArgsConstructor;
import lombok.Getter;
}
@Override
+ @JsonIgnore
public ConstraintType getConstraintType() {
return ConstraintType.VALID_VALUES;
}
import org.openecomp.sdc.be.DummyConfigurationManager;
import org.openecomp.sdc.be.datatypes.elements.ActivityDataDefinition;
import org.openecomp.sdc.be.datatypes.elements.ArtifactDataDefinition;
+import org.openecomp.sdc.be.datatypes.elements.FilterDataDefinition;
import org.openecomp.sdc.be.datatypes.elements.InputDataDefinition;
import org.openecomp.sdc.be.datatypes.elements.ListDataDefinition;
import org.openecomp.sdc.be.datatypes.elements.MilestoneDataDefinition;
import org.openecomp.sdc.be.datatypes.elements.PropertyDataDefinition;
import org.openecomp.sdc.be.datatypes.elements.SchemaDefinition;
import org.openecomp.sdc.be.datatypes.elements.ToscaFunctionType;
+import org.openecomp.sdc.be.datatypes.elements.ToscaGetFunctionDataDefinition;
import org.openecomp.sdc.be.datatypes.enums.ActivityTypeEnum;
+import org.openecomp.sdc.be.datatypes.enums.ConstraintType;
import org.openecomp.sdc.be.datatypes.enums.JsonPresentationFields;
import org.openecomp.sdc.be.datatypes.enums.MilestoneTypeEnum;
+import org.openecomp.sdc.be.datatypes.enums.PropertySource;
+import org.openecomp.sdc.be.datatypes.tosca.ToscaGetFunctionType;
import org.openecomp.sdc.be.model.Component;
import org.openecomp.sdc.be.model.DataTypeDefinition;
import org.openecomp.sdc.be.model.InputDefinition;
activities.add(activity);
MilestoneDataDefinition milestone = new MilestoneDataDefinition();
milestone.setActivities(activities);
+ FilterDataDefinition filter1 = new FilterDataDefinition();
+ filter1.setName("my_attribute");
+ filter1.setConstraint("equal");
+ filter1.setFilterValue("my_value");
+ FilterDataDefinition filter2 = new FilterDataDefinition();
+ ToscaGetFunctionDataDefinition toscaFunction = new ToscaGetFunctionDataDefinition();
+ toscaFunction.setFunctionType(ToscaGetFunctionType.GET_ATTRIBUTE);
+ toscaFunction.setPropertyName("role");
+ toscaFunction.setPropertySource(PropertySource.SELF);
+ toscaFunction.setSourceName("myVfc");
+ toscaFunction.setPropertyPathFromSource(Arrays.asList("role"));
+ filter2.setToscaFunction(toscaFunction);
+ filter2.setName("my_other_attribute");
+ filter2.setConstraint("equal");
+ filter2.setFilterValue("{'get_attribute':['SELF','role']}");
+ ListDataDefinition<FilterDataDefinition> filters = new ListDataDefinition<>();
+ filters.add(filter1);
+ filters.add(filter2);
+ milestone.setFilters(filters);
toscaMilestones.put(MilestoneTypeEnum.ON_ENTRY.getValue(), milestone);
return toscaMilestones;
}
assertTrue(complexInputStringProp.containsKey("propertySource"));
assertEquals("SELF", complexInputStringProp.get("propertySource"));
+ assertTrue(milestone.containsKey("filters"));
+ List<Map<String, Object>> filters = (List<Map<String, Object>>) milestone.get("filters");
+ assertEquals(2, filters.size());
+ Map<String, Object> filter1 = filters.get(0);
+ assertTrue(filter1.containsKey("my_attribute"));
+ Map<String, Object> filter1Constraint = (Map<String, Object>) filter1.get("my_attribute");
+ assertTrue(filter1Constraint.containsKey(ConstraintType.EQUAL.getType()));
+ String filter1Value = (String) filter1Constraint.get(ConstraintType.EQUAL.getType());
+ assertEquals("my_value", filter1Value);
+ Map<String, Object> filter2 = filters.get(1);
+ assertTrue(filter2.containsKey("my_other_attribute"));
+ Map<String, Object> filter2Constraint = (Map<String, Object>) filter2.get("my_other_attribute");
+ assertTrue(filter2Constraint.containsKey(ConstraintType.EQUAL.getType()));
+ Map<String, Object> filter2Value = (Map<String, Object>) filter2Constraint.get(ConstraintType.EQUAL.getType());
+ assertTrue(filter2Value.containsKey(ToscaGetFunctionType.GET_ATTRIBUTE.getFunctionName()));
+ List<String> filter2ValueToscaFunction = (List<String>) filter2Value.get(ToscaGetFunctionType.GET_ATTRIBUTE.getFunctionName());
+ assertEquals(2, filter2ValueToscaFunction.size());
+ assertEquals("SELF", filter2ValueToscaFunction.get(0));
+ assertEquals("role", filter2ValueToscaFunction.get(1));
}
private void addComplexTypeToDataTypes() {
virtual_cpu_pinning_rule:
- 1
- 2
+ filters:
+ - my_attribute:
+ equal:
+ get_attribute:
+ - SELF
+ - role
+ - my_attribute1:
+ greaterThan: my_other_value
+ - my_attribute2:
+ inRange:
+ - test1
+ - test99
+ - my_attribute3:
+ validValues:
+ - test1
+ - test2
+ - test3
+ - my_attribute4:
+ length: 12
+ - my_attribute5:
+ minLength: 4
on_timeout:
activities:
- type: delegate
--- /dev/null
+/*
+ *
+ * ============LICENSE_START=======================================================
+ * Copyright (C) 2023 Nordix Foundation.
+ * ================================================================================
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ * SPDX-License-Identifier: Apache-2.0
+ * ============LICENSE_END=========================================================
+ */
+
+package org.openecomp.sdc.be.datatypes.elements;
+
+import java.io.Serializable;
+import lombok.Getter;
+import lombok.NoArgsConstructor;
+import lombok.Setter;
+
+@NoArgsConstructor
+public class FilterDataDefinition extends PropertyDataDefinition implements Serializable {
+
+ @Getter
+ @Setter
+ private Object filterValue;
+
+ @Getter
+ @Setter
+ private String constraint;
+
+ public FilterDataDefinition(FilterDataDefinition activity) {
+ setName(activity.getName());
+ setConstraint(activity.getConstraint());
+ setValue(activity.getValue());
+ setToscaFunction(activity.getToscaFunction());
+ }
+
+}
setToscaPresentationValue(JsonPresentationFields.OPERATION_ACTIVITIES, activities);
}
+ public ListDataDefinition<FilterDataDefinition> getFilters() {
+ return (ListDataDefinition<FilterDataDefinition>) getToscaPresentationValue(JsonPresentationFields.OPERATION_FILTERS);
+ }
+
+ public void setFilters(ListDataDefinition<FilterDataDefinition> activities) {
+ setToscaPresentationValue(JsonPresentationFields.OPERATION_FILTERS, activities);
+ }
+
}
OPERATION_INPUTS("inputs", null),
OPERATION_OUTPUTS("outputs", null),
OPERATION_MILESTONES("milestones", null),
+ OPERATION_FILTERS("filters", null),
OPERATION_ACTIVITIES("activities", null),
OPERATION_ACTIVITIES_WORKFLOW("workflow", null),
INPUTS("inputs", null),
IMPLEMENTATION("implementation"),
MILESTONES("milestones"),
ACTIVITIES("activities"),
+ FILTERS("filters"),
WORKFLOW("workflow"),
SUBSTITUTION_FILTERS("substitution_filter"),
DERIVED_FROM_NAME("derivedFromName"),