Fix constraints on custom datatype not formatted correctly in CSAR 03/134303/2
authorKrupaNagabhushan <krupa.nagabhushan@est.tech>
Mon, 24 Apr 2023 14:29:52 +0000 (15:29 +0100)
committerKrupaNagabhushan <krupa.nagabhushan@est.tech>
Tue, 25 Apr 2023 09:08:16 +0000 (10:08 +0100)
Issue-ID: SDC-4481
Signed-off-by: KrupaNagabhushan <krupa.nagabhushan@est.tech>
Change-Id: Ie1befaa7b2f09e9d1445a7797c74415cbc7488a4

catalog-model/src/main/java/org/openecomp/sdc/be/model/operations/impl/ModelOperation.java

index 3ff3fb0..6ae9d88 100644 (file)
@@ -58,12 +58,24 @@ import org.openecomp.sdc.be.datatypes.enums.GraphPropertyEnum;
 import org.openecomp.sdc.be.datatypes.enums.ModelTypeEnum;
 import org.openecomp.sdc.be.datatypes.enums.NodeTypeEnum;
 import org.openecomp.sdc.be.model.Model;
+import org.openecomp.sdc.be.model.PropertyConstraint;
 import org.openecomp.sdc.be.model.dto.PropertyDefinitionDto;
 import org.openecomp.sdc.be.model.jsonjanusgraph.operations.exception.ModelOperationExceptionSupplier;
 import org.openecomp.sdc.be.model.jsonjanusgraph.operations.exception.OperationException;
 import org.openecomp.sdc.be.model.normatives.ElementTypeEnum;
 import org.openecomp.sdc.be.model.operations.api.DerivedFromOperation;
 import org.openecomp.sdc.be.model.operations.api.StorageOperationStatus;
+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.resources.data.ModelData;
 import org.openecomp.sdc.be.utils.TypeUtils;
 import org.openecomp.sdc.common.log.enums.EcompLoggerErrorCode;
@@ -512,9 +524,44 @@ public class ModelOperation {
             typeProp.put(TypeUtils.ToscaTagNamesEnum.REQUIRED.getElementName(), property.getRequired());
         }
         if (property.getConstraints() != null) {
-            typeProp.put(TypeUtils.ToscaTagNamesEnum.CONSTRAINTS.getElementName(), property.getConstraints());
+            typeProp.put(TypeUtils.ToscaTagNamesEnum.CONSTRAINTS.getElementName(), getPropertyConstraintsValues(property.getConstraints()));
         }
         return typeProp;
     }
 
+    private List<Object> getPropertyConstraintsValues(final List<Object> propertyConstraints) {
+        List<Object> constraints = new ArrayList<>();
+        for (Object constraint : propertyConstraints) {
+            Map<String, Object> constraintsMap = new HashMap<>();
+            PropertyConstraint propertyConstraint = (PropertyConstraint) constraint;
+            Object value = null;
+            if (constraint instanceof EqualConstraint) {
+                value = ((EqualConstraint) constraint).getEqual();
+            } else if (constraint instanceof GreaterThanConstraint) {
+                value = ((GreaterThanConstraint) constraint).getGreaterThan();
+            } else if (constraint instanceof GreaterOrEqualConstraint) {
+                value = ((GreaterOrEqualConstraint) constraint).getGreaterOrEqual();
+            } else if (constraint instanceof LessThanConstraint) {
+                value = ((LessThanConstraint) constraint).getLessThan();
+            } else if (constraint instanceof LessOrEqualConstraint) {
+                value = ((LessOrEqualConstraint) constraint).getLessOrEqual();
+            } else if (constraint instanceof InRangeConstraint) {
+                value = ((InRangeConstraint) constraint).getInRange();
+            } else if (constraint instanceof ValidValuesConstraint) {
+                value = ((ValidValuesConstraint) constraint).getValidValues();
+            } else if (constraint instanceof LengthConstraint) {
+                value = ((LengthConstraint) constraint).getLength();
+            } else if (constraint instanceof MinLengthConstraint) {
+                value = ((MinLengthConstraint) constraint).getMinLength();
+            } else if (constraint instanceof MaxLengthConstraint) {
+                value = ((MaxLengthConstraint) constraint).getMaxLength();
+            } else if (constraint instanceof PatternConstraint) {
+                value = ((PatternConstraint) constraint).getPattern();
+            }
+            constraintsMap.put(propertyConstraint.getConstraintType().getType(), value);
+            constraints.add(constraintsMap);
+        }
+        return constraints;
+    }
+
 }