diff options
Diffstat (limited to 'catalog-model/src/main/java/org/openecomp/sdc/be/model/tosca/constraints/InRangeConstraint.java')
-rw-r--r-- | catalog-model/src/main/java/org/openecomp/sdc/be/model/tosca/constraints/InRangeConstraint.java | 186 |
1 files changed, 85 insertions, 101 deletions
diff --git a/catalog-model/src/main/java/org/openecomp/sdc/be/model/tosca/constraints/InRangeConstraint.java b/catalog-model/src/main/java/org/openecomp/sdc/be/model/tosca/constraints/InRangeConstraint.java index e8821c2c21..19a2fe4230 100644 --- a/catalog-model/src/main/java/org/openecomp/sdc/be/model/tosca/constraints/InRangeConstraint.java +++ b/catalog-model/src/main/java/org/openecomp/sdc/be/model/tosca/constraints/InRangeConstraint.java @@ -20,111 +20,95 @@ package org.openecomp.sdc.be.model.tosca.constraints; -import java.io.Serializable; -import java.util.List; - -import javax.validation.constraints.NotNull; - +import com.google.common.collect.Lists; import org.openecomp.sdc.be.model.tosca.ToscaType; import org.openecomp.sdc.be.model.tosca.constraints.exception.ConstraintValueDoNotMatchPropertyTypeException; import org.openecomp.sdc.be.model.tosca.constraints.exception.ConstraintViolationException; -//import com.fasterxml.jackson.annotation.JsonProperty; -import com.google.common.collect.Lists; - -public class InRangeConstraint extends AbstractPropertyConstraint implements Serializable { - - /** - * - */ - private static final long serialVersionUID = -8038401707152824493L; - - private List<String> inRange; - - private Comparable min; - private Comparable max; - - public InRangeConstraint(List<String> inRange) { - super(); - this.inRange = inRange; - } - - public InRangeConstraint() { - super(); - } - - @Override - public void initialize(ToscaType propertyType) throws ConstraintValueDoNotMatchPropertyTypeException { - // Perform verification that the property type is supported for - // comparison - ConstraintUtil.checkComparableType(propertyType); - if (inRange == null || inRange.size() != 2) { - throw new ConstraintValueDoNotMatchPropertyTypeException("In range constraint must have two elements."); - } - String minRawText = inRange.get(0); - String maxRawText = inRange.get(1); - if (!propertyType.isValidValue(minRawText)) { - throw new ConstraintValueDoNotMatchPropertyTypeException("Invalid min value for in range constraint [" - + minRawText + "] as it does not follow the property type [" + propertyType + "]"); - } - if (!propertyType.isValidValue(maxRawText)) { - throw new ConstraintValueDoNotMatchPropertyTypeException("Invalid max value for in range constraint [" - + maxRawText + "] as it does not follow the property type [" + propertyType + "]"); - } - min = ConstraintUtil.convertToComparable(propertyType, minRawText); - max = ConstraintUtil.convertToComparable(propertyType, maxRawText); - } - - @Override - public void validate(Object propertyValue) throws ConstraintViolationException { - if (propertyValue == null) { - throw new ConstraintViolationException("Value to check is null"); - } - if (!(min.getClass().isAssignableFrom(propertyValue.getClass()))) { - throw new ConstraintViolationException("Value to check is not comparable to range type, value type [" - + propertyValue.getClass() + "], range type [" + min.getClass() + "]"); - } - if (min.compareTo(propertyValue) > 0 || max.compareTo(propertyValue) < 0) { - throw new ConstraintViolationException("The value [" + propertyValue + "] is out of range " + inRange); - } - } - - // @JsonProperty - @NotNull - public String getRangeMinValue() { - if (inRange != null) { - return inRange.get(0); - } else { - return null; - } - } - - // @JsonProperty - public void setRangeMinValue(String minValue) { - if (inRange == null) { - inRange = Lists.newArrayList(minValue, ""); - } else { - inRange.set(0, minValue); - } - } - - // @JsonProperty - @NotNull - public String getRangeMaxValue() { - if (inRange != null) { - return inRange.get(1); - } else { - return null; - } - } +import javax.validation.constraints.NotNull; +import java.util.List; - // @JsonProperty - public void setRangeMaxValue(String maxValue) { - if (inRange == null) { - inRange = Lists.newArrayList("", maxValue); - } else { - inRange.set(1, maxValue); - } - } +public class InRangeConstraint extends AbstractPropertyConstraint { + + private List<String> inRange; + + private Comparable min; + private Comparable max; + + public InRangeConstraint(List<String> inRange) { + this.inRange = inRange; + } + + public InRangeConstraint() { } + + @Override + public void initialize(ToscaType propertyType) throws ConstraintValueDoNotMatchPropertyTypeException { + // Perform verification that the property type is supported for + // comparison + ConstraintUtil.checkComparableType(propertyType); + if (inRange == null || inRange.size() != 2) { + throw new ConstraintValueDoNotMatchPropertyTypeException("In range constraint must have two elements."); + } + String minRawText = inRange.get(0); + String maxRawText = inRange.get(1); + if (!propertyType.isValidValue(minRawText)) { + throw new ConstraintValueDoNotMatchPropertyTypeException("Invalid min value for in range constraint [" + + minRawText + "] as it does not follow the property type [" + propertyType + "]"); + } + if (!propertyType.isValidValue(maxRawText)) { + throw new ConstraintValueDoNotMatchPropertyTypeException("Invalid max value for in range constraint [" + + maxRawText + "] as it does not follow the property type [" + propertyType + "]"); + } + min = ConstraintUtil.convertToComparable(propertyType, minRawText); + max = ConstraintUtil.convertToComparable(propertyType, maxRawText); + } + + @Override + public void validate(Object propertyValue) throws ConstraintViolationException { + if (propertyValue == null) { + throw new ConstraintViolationException("Value to check is null"); + } + if (!(min.getClass().isAssignableFrom(propertyValue.getClass()))) { + throw new ConstraintViolationException("Value to check is not comparable to range type, value type [" + + propertyValue.getClass() + "], range type [" + min.getClass() + "]"); + } + if (min.compareTo(propertyValue) > 0 || max.compareTo(propertyValue) < 0) { + throw new ConstraintViolationException("The value [" + propertyValue + "] is out of range " + inRange); + } + } + + @NotNull + public String getRangeMinValue() { + if (inRange != null) { + return inRange.get(0); + } else { + return null; + } + } + + public void setRangeMinValue(String minValue) { + if (inRange == null) { + inRange = Lists.newArrayList(minValue, ""); + } else { + inRange.set(0, minValue); + } + } + + @NotNull + public String getRangeMaxValue() { + if (inRange != null) { + return inRange.get(1); + } else { + return null; + } + } + + public void setRangeMaxValue(String maxValue) { + if (inRange == null) { + inRange = Lists.newArrayList("", maxValue); + } else { + inRange.set(1, maxValue); + } + } } |