summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--catalog-be/src/main/java/org/openecomp/sdc/be/tosca/PropertyConvertor.java26
1 files changed, 16 insertions, 10 deletions
diff --git a/catalog-be/src/main/java/org/openecomp/sdc/be/tosca/PropertyConvertor.java b/catalog-be/src/main/java/org/openecomp/sdc/be/tosca/PropertyConvertor.java
index d603e795c8..d1cd495222 100644
--- a/catalog-be/src/main/java/org/openecomp/sdc/be/tosca/PropertyConvertor.java
+++ b/catalog-be/src/main/java/org/openecomp/sdc/be/tosca/PropertyConvertor.java
@@ -133,7 +133,7 @@ public class PropertyConvertor {
if (CollectionUtils.isNotEmpty(property.getConstraints())) {
try {
- prop.setConstraints(convertConstraints(property.getConstraints(), property.getType()));
+ prop.setConstraints(convertConstraints(property.getConstraints(), property.getType(), property.getSchemaType()));
} catch (ConstraintValueDoNotMatchPropertyTypeException e) {
log.error(e.getMessage());
}
@@ -141,14 +141,14 @@ public class PropertyConvertor {
return prop;
}
- private List<ToscaPropertyConstraint> convertConstraints(List<PropertyConstraint> constraints, String propertyType)
+ private List<ToscaPropertyConstraint> convertConstraints(List<PropertyConstraint> constraints, String propertyType, String schemaType)
throws ConstraintValueDoNotMatchPropertyTypeException {
List<ToscaPropertyConstraint> convertedConstraints = new ArrayList<>();
for (PropertyConstraint constraint : constraints) {
if (constraint instanceof EqualConstraint) {
EqualConstraint equalConstraint = ((EqualConstraint) constraint);
- if (doesPropertyTypeNeedConverted(propertyType)) {
+ if (doesTypeNeedConvertingToIntOrFloat(propertyType)) {
equalConstraint.changeConstraintValueTypeTo(propertyType);
}
@@ -158,7 +158,7 @@ public class PropertyConvertor {
if (constraint instanceof GreaterThanConstraint) {
GreaterThanConstraint greaterThanConstraint = ((GreaterThanConstraint) constraint);
- if (doesPropertyTypeNeedConverted(propertyType)) {
+ if (doesTypeNeedConvertingToIntOrFloat(propertyType)) {
greaterThanConstraint.changeConstraintValueTypeTo(propertyType);
}
@@ -168,7 +168,7 @@ public class PropertyConvertor {
if (constraint instanceof GreaterOrEqualConstraint) {
GreaterOrEqualConstraint greaterOrEqualConstraint = ((GreaterOrEqualConstraint) constraint);
- if (doesPropertyTypeNeedConverted(propertyType)) {
+ if (doesTypeNeedConvertingToIntOrFloat(propertyType)) {
greaterOrEqualConstraint.changeConstraintValueTypeTo(propertyType);
}
@@ -178,7 +178,7 @@ public class PropertyConvertor {
if (constraint instanceof LessThanConstraint) {
LessThanConstraint lessThanConstraint = ((LessThanConstraint) constraint);
- if (doesPropertyTypeNeedConverted(propertyType)) {
+ if (doesTypeNeedConvertingToIntOrFloat(propertyType)) {
lessThanConstraint.changeConstraintValueTypeTo(propertyType);
}
@@ -188,7 +188,7 @@ public class PropertyConvertor {
if (constraint instanceof LessOrEqualConstraint) {
LessOrEqualConstraint lessOrEqualConstraint = ((LessOrEqualConstraint) constraint);
- if (doesPropertyTypeNeedConverted(propertyType)) {
+ if (doesTypeNeedConvertingToIntOrFloat(propertyType)) {
lessOrEqualConstraint.changeConstraintValueTypeTo(propertyType);
}
@@ -198,7 +198,7 @@ public class PropertyConvertor {
if (constraint instanceof InRangeConstraint) {
InRangeConstraint inRangeConstraint = (InRangeConstraint) constraint;
- if (doesPropertyTypeNeedConverted(propertyType)) {
+ if (doesTypeNeedConvertingToIntOrFloat(propertyType)) {
inRangeConstraint.changeConstraintValueTypeTo(propertyType);
}
@@ -207,7 +207,9 @@ public class PropertyConvertor {
if (constraint instanceof ValidValuesConstraint) {
ValidValuesConstraint validValues = ((ValidValuesConstraint) constraint);
- if (doesPropertyTypeNeedConverted(propertyType)) {
+ if (isTypeMapOrList(propertyType) && doesTypeNeedConvertingToIntOrFloat(schemaType)) {
+ validValues.changeConstraintValueTypeTo(schemaType);
+ } else if (doesTypeNeedConvertingToIntOrFloat(propertyType)) {
validValues.changeConstraintValueTypeTo(propertyType);
}
@@ -230,10 +232,14 @@ public class PropertyConvertor {
return convertedConstraints;
}
- private boolean doesPropertyTypeNeedConverted(String propertyType) {
+ private boolean doesTypeNeedConvertingToIntOrFloat(String propertyType) {
return ToscaType.INTEGER.getType().equals(propertyType) || ToscaType.FLOAT.getType().equals(propertyType);
}
+ private boolean isTypeMapOrList (String type) {
+ return ToscaType.MAP.getType().equals(type) || ToscaType.LIST.getType().equals(type);
+ }
+
public Object convertToToscaObject(PropertyDataDefinition property, String value, Map<String, DataTypeDefinition> dataTypes,
boolean preserveEmptyValue) {
String propertyType = property.getType();