From ec03d4b9491636f580c7f8133d6e550dd01cc031 Mon Sep 17 00:00:00 2001 From: JvD_Ericsson Date: Fri, 24 Feb 2023 15:37:56 +0000 Subject: [PATCH] Type list of floats not generated correctly in tosca types of list/map and sub types of int/float were generated as strings in tosca instead of numbers Issue-ID: SDC-4418 Signed-off-by: JvD_Ericsson Change-Id: I9d58d89a03cee212e92e5fe775a28118aee86645 --- .../openecomp/sdc/be/tosca/PropertyConvertor.java | 26 +++++++++++++--------- 1 file 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 convertConstraints(List constraints, String propertyType) + private List convertConstraints(List constraints, String propertyType, String schemaType) throws ConstraintValueDoNotMatchPropertyTypeException { List 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 dataTypes, boolean preserveEmptyValue) { String propertyType = property.getType(); -- 2.16.6