X-Git-Url: https://gerrit.onap.org/r/gitweb?a=blobdiff_plain;f=catalog-model%2Fsrc%2Fmain%2Fjava%2Forg%2Fopenecomp%2Fsdc%2Fbe%2Fui%2Fmapper%2FFilterConstraintMapper.java;h=59d7ef074fa86b667b0196526707fc83520d6418;hb=8183ade590e367f28e13484201d2c9526be221dc;hp=9c1b6c9f48a571081283de3cbacc7e4b4c43dcfe;hpb=5768f2e5a056df6b23f7f8a87529d5ca00063c68;p=sdc.git diff --git a/catalog-model/src/main/java/org/openecomp/sdc/be/ui/mapper/FilterConstraintMapper.java b/catalog-model/src/main/java/org/openecomp/sdc/be/ui/mapper/FilterConstraintMapper.java index 9c1b6c9f48..59d7ef074f 100644 --- a/catalog-model/src/main/java/org/openecomp/sdc/be/ui/mapper/FilterConstraintMapper.java +++ b/catalog-model/src/main/java/org/openecomp/sdc/be/ui/mapper/FilterConstraintMapper.java @@ -23,6 +23,7 @@ package org.openecomp.sdc.be.ui.mapper; import com.fasterxml.jackson.databind.ObjectMapper; import com.google.gson.Gson; +import java.util.ArrayList; import java.util.List; import java.util.Map; import java.util.Optional; @@ -49,6 +50,7 @@ public class FilterConstraintMapper { filterConstraint.setTargetType(StringUtils.isEmpty(uiConstraint.getCapabilityName()) ? PropertyFilterTargetType.PROPERTY : PropertyFilterTargetType.CAPABILITY); FilterValueType.findByName(uiConstraint.getSourceType()).ifPresent(filterConstraint::setValueType); filterConstraint.setValue(mapValueFrom(uiConstraint)); + filterConstraint.setOriginalType(uiConstraint.getOriginalType()); return filterConstraint; } @@ -95,6 +97,7 @@ public class FilterConstraintMapper { propertyFilterConstraint.setOperator(filterConstraintDto.getOperator()); propertyFilterConstraint.setValueType(filterConstraintDto.getValueType()); propertyFilterConstraint.setValue(filterConstraintDto.getValue()); + propertyFilterConstraint.setOriginalType(filterConstraintDto.getOriginalType()); return propertyFilterConstraint; } @@ -106,13 +109,32 @@ public class FilterConstraintMapper { uiConstraint.setServicePropertyName(filterConstraintDto.getPropertyName()); uiConstraint.setSourceType(filterConstraintDto.getValueType().getName()); uiConstraint.setSourceName(uiConstraint.getSourceType()); + uiConstraint.setOriginalType(uiConstraint.getOriginalType()); return uiConstraint; } private Object parseValueFromUiConstraint(final Object value) { - if (!(value instanceof Map || value instanceof String)) { + if (!(value instanceof Map || value instanceof List || value instanceof String)) { return value; } + if (value instanceof List) { + List listValue = new ArrayList<>(); + ToscaFunction valueObject; + for (Object obj: (List)value) { + try { + valueObject = (ToscaFunction) getValueObject(obj); + } + catch (Exception e) { + return value; + } + listValue.add(valueObject); + } + return listValue; + } + return getValueObject(value); + } + + private Object getValueObject(Object value) { final Map valueAsMap; if (value instanceof String) { try {