aboutsummaryrefslogtreecommitdiffstats
path: root/catalog-model/src/main/java/org/openecomp/sdc/be/model/tosca
diff options
context:
space:
mode:
Diffstat (limited to 'catalog-model/src/main/java/org/openecomp/sdc/be/model/tosca')
-rw-r--r--catalog-model/src/main/java/org/openecomp/sdc/be/model/tosca/ToscaPropertyType.java22
-rw-r--r--catalog-model/src/main/java/org/openecomp/sdc/be/model/tosca/ToscaType.java12
-rw-r--r--catalog-model/src/main/java/org/openecomp/sdc/be/model/tosca/constraints/ConstraintType.java2
-rw-r--r--catalog-model/src/main/java/org/openecomp/sdc/be/model/tosca/constraints/EqualConstraint.java13
-rw-r--r--catalog-model/src/main/java/org/openecomp/sdc/be/model/tosca/constraints/GreaterOrEqualConstraint.java21
-rw-r--r--catalog-model/src/main/java/org/openecomp/sdc/be/model/tosca/constraints/GreaterThanConstraint.java12
-rw-r--r--catalog-model/src/main/java/org/openecomp/sdc/be/model/tosca/constraints/InRangeConstraint.java14
-rw-r--r--catalog-model/src/main/java/org/openecomp/sdc/be/model/tosca/constraints/LengthConstraint.java18
-rw-r--r--catalog-model/src/main/java/org/openecomp/sdc/be/model/tosca/constraints/LessOrEqualConstraint.java12
-rw-r--r--catalog-model/src/main/java/org/openecomp/sdc/be/model/tosca/constraints/LessThanConstraint.java12
-rw-r--r--catalog-model/src/main/java/org/openecomp/sdc/be/model/tosca/constraints/MaxLengthConstraint.java20
-rw-r--r--catalog-model/src/main/java/org/openecomp/sdc/be/model/tosca/constraints/MinLengthConstraint.java13
-rw-r--r--catalog-model/src/main/java/org/openecomp/sdc/be/model/tosca/constraints/PatternConstraint.java14
-rw-r--r--catalog-model/src/main/java/org/openecomp/sdc/be/model/tosca/constraints/ValidValuesConstraint.java50
-rw-r--r--catalog-model/src/main/java/org/openecomp/sdc/be/model/tosca/constraints/exception/PropertyConstraintException.java44
-rw-r--r--catalog-model/src/main/java/org/openecomp/sdc/be/model/tosca/converters/HeatNumberConverter.java9
-rw-r--r--catalog-model/src/main/java/org/openecomp/sdc/be/model/tosca/converters/MapConverter.java3
-rw-r--r--catalog-model/src/main/java/org/openecomp/sdc/be/model/tosca/converters/ToscaMapValueConverter.java4
-rw-r--r--catalog-model/src/main/java/org/openecomp/sdc/be/model/tosca/converters/ToscaValueBaseConverter.java2
-rw-r--r--catalog-model/src/main/java/org/openecomp/sdc/be/model/tosca/validators/HeatNumberValidator.java20
-rw-r--r--catalog-model/src/main/java/org/openecomp/sdc/be/model/tosca/validators/ListValidator.java3
-rw-r--r--catalog-model/src/main/java/org/openecomp/sdc/be/model/tosca/version/ComparableVersion.java2
22 files changed, 256 insertions, 66 deletions
diff --git a/catalog-model/src/main/java/org/openecomp/sdc/be/model/tosca/ToscaPropertyType.java b/catalog-model/src/main/java/org/openecomp/sdc/be/model/tosca/ToscaPropertyType.java
index a0ff4bc09b..2f1372d8bd 100644
--- a/catalog-model/src/main/java/org/openecomp/sdc/be/model/tosca/ToscaPropertyType.java
+++ b/catalog-model/src/main/java/org/openecomp/sdc/be/model/tosca/ToscaPropertyType.java
@@ -30,7 +30,7 @@ import org.openecomp.sdc.be.model.tosca.validators.*;
*/
public enum ToscaPropertyType {
- Root("tosca.datatypes.Root", null, null, null, true),
+ ROOT("tosca.datatypes.Root", null, null, null, true),
STRING("string", StringValidator.getInstance(), StringConvertor.getInstance(), ToscaStringConvertor.getInstance()),
@@ -84,42 +84,22 @@ public enum ToscaPropertyType {
return type;
}
- public void setType(String type) {
- this.type = type;
- }
-
public PropertyTypeValidator getValidator() {
return validator;
}
- public void setValidator(PropertyTypeValidator validator) {
- this.validator = validator;
- }
-
public PropertyValueConverter getConverter() {
return converter;
}
- public void setConverter(PropertyValueConverter converter) {
- this.converter = converter;
- }
-
public boolean isAbstract() {
return isAbstract;
}
- public void setAbstract(boolean isAbstract) {
- this.isAbstract = isAbstract;
- }
-
public ToscaValueConverter getValueConverter() {
return valueConverter;
}
- public void setValueConverter(ToscaValueConverter valueConverter) {
- this.valueConverter = valueConverter;
- }
-
public static ToscaPropertyType isValidType(String typeName) {
if (typeName == null) {
return null;
diff --git a/catalog-model/src/main/java/org/openecomp/sdc/be/model/tosca/ToscaType.java b/catalog-model/src/main/java/org/openecomp/sdc/be/model/tosca/ToscaType.java
index da1b3c4ce8..87ad62195f 100644
--- a/catalog-model/src/main/java/org/openecomp/sdc/be/model/tosca/ToscaType.java
+++ b/catalog-model/src/main/java/org/openecomp/sdc/be/model/tosca/ToscaType.java
@@ -61,7 +61,7 @@ public enum ToscaType {
return type;
}
- public ToscaType getToscaType(String typeName) {
+ public static ToscaType getToscaType(String typeName) {
if (typeName == null) {
return null;
}
@@ -220,8 +220,10 @@ public enum ToscaType {
return name().toLowerCase();
}
- public static boolean isCollectionType(String type) {
- return ToscaPropertyType.MAP.getType().equals(type)
- || ToscaPropertyType.LIST.getType().equals(type);
- }
+ public static boolean isCollectionType(String type) {
+ return ToscaPropertyType.MAP.getType().equals(type)
+ || ToscaPropertyType.LIST.getType().equals(type);
+ }
+
+
}
diff --git a/catalog-model/src/main/java/org/openecomp/sdc/be/model/tosca/constraints/ConstraintType.java b/catalog-model/src/main/java/org/openecomp/sdc/be/model/tosca/constraints/ConstraintType.java
index d1cc766525..bce2a41b98 100644
--- a/catalog-model/src/main/java/org/openecomp/sdc/be/model/tosca/constraints/ConstraintType.java
+++ b/catalog-model/src/main/java/org/openecomp/sdc/be/model/tosca/constraints/ConstraintType.java
@@ -27,7 +27,7 @@ public enum ConstraintType {
EQUAL("equal", "equal"),
- IN_RANGE("inRange","in_range"),
+ IN_RANGE("inRange", "in_range"),
GREATER_THAN("greaterThan", "greater_than"),
diff --git a/catalog-model/src/main/java/org/openecomp/sdc/be/model/tosca/constraints/EqualConstraint.java b/catalog-model/src/main/java/org/openecomp/sdc/be/model/tosca/constraints/EqualConstraint.java
index 206fc3dc82..01d9d3b252 100644
--- a/catalog-model/src/main/java/org/openecomp/sdc/be/model/tosca/constraints/EqualConstraint.java
+++ b/catalog-model/src/main/java/org/openecomp/sdc/be/model/tosca/constraints/EqualConstraint.java
@@ -20,12 +20,13 @@
package org.openecomp.sdc.be.model.tosca.constraints;
+import org.openecomp.sdc.be.model.PropertyConstraint;
import java.io.Serializable;
-
import org.openecomp.sdc.be.model.tosca.ToscaType;
import org.openecomp.sdc.be.model.tosca.constraints.exception.ConstraintFunctionalException;
import org.openecomp.sdc.be.model.tosca.constraints.exception.ConstraintValueDoNotMatchPropertyTypeException;
import org.openecomp.sdc.be.model.tosca.constraints.exception.ConstraintViolationException;
+import org.openecomp.sdc.be.model.tosca.constraints.exception.PropertyConstraintException;
import javax.validation.constraints.NotNull;
@@ -71,6 +72,16 @@ public class EqualConstraint extends AbstractPropertyConstraint implements Seria
}
}
+ @Override
+ public ConstraintType getConstraintType() {
+ return null;
+ }
+
+ @Override
+ public void validateValueOnUpdate(PropertyConstraint newConstraint) throws PropertyConstraintException {
+
+ }
+
private void fail(Object propertyValue) throws ConstraintViolationException {
throw new ConstraintViolationException("Equal constraint violation, the reference is <" + constraintValue
+ "> but the value to compare is <" + propertyValue + ">");
diff --git a/catalog-model/src/main/java/org/openecomp/sdc/be/model/tosca/constraints/GreaterOrEqualConstraint.java b/catalog-model/src/main/java/org/openecomp/sdc/be/model/tosca/constraints/GreaterOrEqualConstraint.java
index 6549bbc432..2b23445452 100644
--- a/catalog-model/src/main/java/org/openecomp/sdc/be/model/tosca/constraints/GreaterOrEqualConstraint.java
+++ b/catalog-model/src/main/java/org/openecomp/sdc/be/model/tosca/constraints/GreaterOrEqualConstraint.java
@@ -20,10 +20,12 @@
package org.openecomp.sdc.be.model.tosca.constraints;
+import org.openecomp.sdc.be.model.PropertyConstraint;
import org.openecomp.sdc.be.model.tosca.ToscaType;
import org.openecomp.sdc.be.model.tosca.constraints.exception.ConstraintFunctionalException;
import org.openecomp.sdc.be.model.tosca.constraints.exception.ConstraintValueDoNotMatchPropertyTypeException;
import org.openecomp.sdc.be.model.tosca.constraints.exception.ConstraintViolationException;
+import org.openecomp.sdc.be.model.tosca.constraints.exception.PropertyConstraintException;
import javax.validation.constraints.NotNull;
@@ -42,6 +44,16 @@ public class GreaterOrEqualConstraint extends AbstractComparablePropertyConstrai
}
@Override
+ public ConstraintType getConstraintType() {
+ return ConstraintType.GREATER_OR_EQUAL;
+ }
+
+ @Override
+ public void validateValueOnUpdate(PropertyConstraint newConstraint) throws PropertyConstraintException {
+
+ }
+
+ @Override
protected void doValidate(Object propertyValue) throws ConstraintViolationException {
if (getComparable().compareTo(propertyValue) > 0) {
throw new ConstraintViolationException(propertyValue + " <= " + greaterOrEqual);
@@ -52,4 +64,13 @@ public class GreaterOrEqualConstraint extends AbstractComparablePropertyConstrai
public String getErrorMessage(ToscaType toscaType, ConstraintFunctionalException e, String propertyName) {
return getErrorMessage(toscaType, e, propertyName, "%f property value must be >= %f", greaterOrEqual);
}
+
+ public String getGreaterOrEqual() {
+ return greaterOrEqual;
+ }
+
+ public void setGreaterOrEqual(String greaterOrEqual) {
+ this.greaterOrEqual = greaterOrEqual;
+ }
+
}
diff --git a/catalog-model/src/main/java/org/openecomp/sdc/be/model/tosca/constraints/GreaterThanConstraint.java b/catalog-model/src/main/java/org/openecomp/sdc/be/model/tosca/constraints/GreaterThanConstraint.java
index a278e8c7b9..e5f0779ed1 100644
--- a/catalog-model/src/main/java/org/openecomp/sdc/be/model/tosca/constraints/GreaterThanConstraint.java
+++ b/catalog-model/src/main/java/org/openecomp/sdc/be/model/tosca/constraints/GreaterThanConstraint.java
@@ -20,10 +20,12 @@
package org.openecomp.sdc.be.model.tosca.constraints;
+import org.openecomp.sdc.be.model.PropertyConstraint;
import org.openecomp.sdc.be.model.tosca.ToscaType;
import org.openecomp.sdc.be.model.tosca.constraints.exception.ConstraintFunctionalException;
import org.openecomp.sdc.be.model.tosca.constraints.exception.ConstraintValueDoNotMatchPropertyTypeException;
import org.openecomp.sdc.be.model.tosca.constraints.exception.ConstraintViolationException;
+import org.openecomp.sdc.be.model.tosca.constraints.exception.PropertyConstraintException;
import javax.validation.constraints.NotNull;
@@ -42,6 +44,16 @@ public class GreaterThanConstraint extends AbstractComparablePropertyConstraint
}
@Override
+ public ConstraintType getConstraintType() {
+ return ConstraintType.GREATER_THAN;
+ }
+
+ @Override
+ public void validateValueOnUpdate(PropertyConstraint newConstraint) throws PropertyConstraintException {
+
+ }
+
+ @Override
protected void doValidate(Object propertyValue) throws ConstraintViolationException {
if (getComparable().compareTo(propertyValue) >= 0) {
throw new ConstraintViolationException(propertyValue + " < " + greaterThan);
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 ad3d3525d0..f9b27d4953 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
@@ -21,13 +21,13 @@
package org.openecomp.sdc.be.model.tosca.constraints;
import com.google.common.collect.Lists;
-
+import org.openecomp.sdc.be.model.PropertyConstraint;
import java.util.List;
-
import org.openecomp.sdc.be.model.tosca.ToscaType;
import org.openecomp.sdc.be.model.tosca.constraints.exception.ConstraintFunctionalException;
import org.openecomp.sdc.be.model.tosca.constraints.exception.ConstraintValueDoNotMatchPropertyTypeException;
import org.openecomp.sdc.be.model.tosca.constraints.exception.ConstraintViolationException;
+import org.openecomp.sdc.be.model.tosca.constraints.exception.PropertyConstraintException;
import javax.validation.constraints.NotNull;
@@ -80,6 +80,16 @@ public class InRangeConstraint extends AbstractPropertyConstraint {
}
}
+ @Override
+ public ConstraintType getConstraintType() {
+ return ConstraintType.IN_RANGE;
+ }
+
+ @Override
+ public void validateValueOnUpdate(PropertyConstraint newConstraint) throws PropertyConstraintException {
+
+ }
+
@NotNull
public String getRangeMinValue() {
if (inRange != null) {
diff --git a/catalog-model/src/main/java/org/openecomp/sdc/be/model/tosca/constraints/LengthConstraint.java b/catalog-model/src/main/java/org/openecomp/sdc/be/model/tosca/constraints/LengthConstraint.java
index 0c5317b10b..4b1da0ca66 100644
--- a/catalog-model/src/main/java/org/openecomp/sdc/be/model/tosca/constraints/LengthConstraint.java
+++ b/catalog-model/src/main/java/org/openecomp/sdc/be/model/tosca/constraints/LengthConstraint.java
@@ -20,12 +20,14 @@
package org.openecomp.sdc.be.model.tosca.constraints;
+import org.openecomp.sdc.be.model.PropertyConstraint;
+import org.openecomp.sdc.be.model.tosca.ToscaType;
+import org.openecomp.sdc.be.model.tosca.constraints.exception.ConstraintViolationException;
+import org.openecomp.sdc.be.model.tosca.constraints.exception.PropertyConstraintException;
import java.util.List;
import java.util.Map;
-
-import org.openecomp.sdc.be.model.tosca.ToscaType;
import org.openecomp.sdc.be.model.tosca.constraints.exception.ConstraintFunctionalException;
-import org.openecomp.sdc.be.model.tosca.constraints.exception.ConstraintViolationException;
+
import javax.validation.constraints.NotNull;
@@ -65,6 +67,16 @@ public class LengthConstraint extends AbstractPropertyConstraint {
}
@Override
+ public ConstraintType getConstraintType() {
+ return null;
+ }
+
+ @Override
+ public void validateValueOnUpdate(PropertyConstraint newConstraint) throws PropertyConstraintException {
+
+ }
+
+ @Override
public String getErrorMessage(ToscaType toscaType, ConstraintFunctionalException e, String propertyName) {
return getErrorMessage(toscaType, e, propertyName, "%s length must be %s", String.valueOf(length));
}
diff --git a/catalog-model/src/main/java/org/openecomp/sdc/be/model/tosca/constraints/LessOrEqualConstraint.java b/catalog-model/src/main/java/org/openecomp/sdc/be/model/tosca/constraints/LessOrEqualConstraint.java
index 3f085ec596..c5e252b032 100644
--- a/catalog-model/src/main/java/org/openecomp/sdc/be/model/tosca/constraints/LessOrEqualConstraint.java
+++ b/catalog-model/src/main/java/org/openecomp/sdc/be/model/tosca/constraints/LessOrEqualConstraint.java
@@ -20,10 +20,12 @@
package org.openecomp.sdc.be.model.tosca.constraints;
+import org.openecomp.sdc.be.model.PropertyConstraint;
import org.openecomp.sdc.be.model.tosca.ToscaType;
import org.openecomp.sdc.be.model.tosca.constraints.exception.ConstraintFunctionalException;
import org.openecomp.sdc.be.model.tosca.constraints.exception.ConstraintValueDoNotMatchPropertyTypeException;
import org.openecomp.sdc.be.model.tosca.constraints.exception.ConstraintViolationException;
+import org.openecomp.sdc.be.model.tosca.constraints.exception.PropertyConstraintException;
import javax.validation.constraints.NotNull;
@@ -41,6 +43,16 @@ public class LessOrEqualConstraint extends AbstractComparablePropertyConstraint
}
@Override
+ public ConstraintType getConstraintType() {
+ return ConstraintType.LESS_OR_EQUAL;
+ }
+
+ @Override
+ public void validateValueOnUpdate(PropertyConstraint newConstraint) throws PropertyConstraintException {
+
+ }
+
+ @Override
protected void doValidate(Object propertyValue) throws ConstraintViolationException {
if (getComparable().compareTo(propertyValue) < 0) {
throw new ConstraintViolationException(propertyValue + " >= " + lessOrEqual);
diff --git a/catalog-model/src/main/java/org/openecomp/sdc/be/model/tosca/constraints/LessThanConstraint.java b/catalog-model/src/main/java/org/openecomp/sdc/be/model/tosca/constraints/LessThanConstraint.java
index 01eb6cdc32..55f6774a7f 100644
--- a/catalog-model/src/main/java/org/openecomp/sdc/be/model/tosca/constraints/LessThanConstraint.java
+++ b/catalog-model/src/main/java/org/openecomp/sdc/be/model/tosca/constraints/LessThanConstraint.java
@@ -20,10 +20,12 @@
package org.openecomp.sdc.be.model.tosca.constraints;
+import org.openecomp.sdc.be.model.PropertyConstraint;
import org.openecomp.sdc.be.model.tosca.ToscaType;
import org.openecomp.sdc.be.model.tosca.constraints.exception.ConstraintFunctionalException;
import org.openecomp.sdc.be.model.tosca.constraints.exception.ConstraintValueDoNotMatchPropertyTypeException;
import org.openecomp.sdc.be.model.tosca.constraints.exception.ConstraintViolationException;
+import org.openecomp.sdc.be.model.tosca.constraints.exception.PropertyConstraintException;
import javax.validation.constraints.NotNull;
@@ -42,6 +44,16 @@ public class LessThanConstraint extends AbstractComparablePropertyConstraint {
}
@Override
+ public ConstraintType getConstraintType() {
+ return ConstraintType.LESS_THAN;
+ }
+
+ @Override
+ public void validateValueOnUpdate(PropertyConstraint newConstraint) throws PropertyConstraintException {
+
+ }
+
+ @Override
protected void doValidate(Object propertyValue) throws ConstraintViolationException {
if (getComparable().compareTo(propertyValue) <= 0) {
throw new ConstraintViolationException(propertyValue + " > " + lessThan);
diff --git a/catalog-model/src/main/java/org/openecomp/sdc/be/model/tosca/constraints/MaxLengthConstraint.java b/catalog-model/src/main/java/org/openecomp/sdc/be/model/tosca/constraints/MaxLengthConstraint.java
index c8fef91ea6..e1ad08faea 100644
--- a/catalog-model/src/main/java/org/openecomp/sdc/be/model/tosca/constraints/MaxLengthConstraint.java
+++ b/catalog-model/src/main/java/org/openecomp/sdc/be/model/tosca/constraints/MaxLengthConstraint.java
@@ -20,14 +20,17 @@
package org.openecomp.sdc.be.model.tosca.constraints;
-import java.util.List;
-import java.util.Map;
+
import org.openecomp.sdc.be.model.tosca.ToscaType;
import org.openecomp.sdc.be.model.tosca.constraints.exception.ConstraintFunctionalException;
+import org.openecomp.sdc.be.model.PropertyConstraint;
import org.openecomp.sdc.be.model.tosca.constraints.exception.ConstraintViolationException;
+import org.openecomp.sdc.be.model.tosca.constraints.exception.PropertyConstraintException;
import javax.validation.constraints.NotNull;
+import java.util.List;
+import java.util.Map;
public class MaxLengthConstraint extends AbstractPropertyConstraint {
@@ -60,6 +63,18 @@ public class MaxLengthConstraint extends AbstractPropertyConstraint {
this.maxLength = maxLength;
}
+
+ @Override
+ public ConstraintType getConstraintType() {
+ return null;
+ }
+
+ @Override
+ public void validateValueOnUpdate(PropertyConstraint newConstraint) throws PropertyConstraintException {
+
+ }
+
+
@Override
public void validate(Object propertyValue) throws ConstraintViolationException {
if (propertyValue == null) {
@@ -77,4 +92,5 @@ public class MaxLengthConstraint extends AbstractPropertyConstraint {
public String getErrorMessage(ToscaType toscaType, ConstraintFunctionalException e, String propertyName) {
return getErrorMessage(toscaType, e, propertyName, "%s maximum length must be [%s]", String.valueOf(maxLength));
}
+
}
diff --git a/catalog-model/src/main/java/org/openecomp/sdc/be/model/tosca/constraints/MinLengthConstraint.java b/catalog-model/src/main/java/org/openecomp/sdc/be/model/tosca/constraints/MinLengthConstraint.java
index 4f55970d79..b4a4255041 100644
--- a/catalog-model/src/main/java/org/openecomp/sdc/be/model/tosca/constraints/MinLengthConstraint.java
+++ b/catalog-model/src/main/java/org/openecomp/sdc/be/model/tosca/constraints/MinLengthConstraint.java
@@ -23,9 +23,11 @@ package org.openecomp.sdc.be.model.tosca.constraints;
import java.util.List;
import java.util.Map;
+import org.openecomp.sdc.be.model.PropertyConstraint;
import org.openecomp.sdc.be.model.tosca.ToscaType;
import org.openecomp.sdc.be.model.tosca.constraints.exception.ConstraintFunctionalException;
import org.openecomp.sdc.be.model.tosca.constraints.exception.ConstraintViolationException;
+import org.openecomp.sdc.be.model.tosca.constraints.exception.PropertyConstraintException;
import javax.validation.constraints.NotNull;
@@ -61,6 +63,16 @@ public class MinLengthConstraint extends AbstractPropertyConstraint {
}
@Override
+ public ConstraintType getConstraintType() {
+ return ConstraintType.MIN_LENGTH;
+ }
+
+ @Override
+ public void validateValueOnUpdate(PropertyConstraint newConstraint) throws PropertyConstraintException {
+
+ }
+
+ @Override
public void validate(Object propertyValue) throws ConstraintViolationException {
if (propertyValue == null) {
throw new ConstraintViolationException("Value to validate is null");
@@ -75,4 +87,5 @@ public class MinLengthConstraint extends AbstractPropertyConstraint {
public String getErrorMessage(ToscaType toscaType, ConstraintFunctionalException e, String propertyName) {
return getErrorMessage(toscaType, e, propertyName, "%s minimum length must be [%s]", String.valueOf(minLength));
}
+
}
diff --git a/catalog-model/src/main/java/org/openecomp/sdc/be/model/tosca/constraints/PatternConstraint.java b/catalog-model/src/main/java/org/openecomp/sdc/be/model/tosca/constraints/PatternConstraint.java
index d3644c578d..49e40cf9c2 100644
--- a/catalog-model/src/main/java/org/openecomp/sdc/be/model/tosca/constraints/PatternConstraint.java
+++ b/catalog-model/src/main/java/org/openecomp/sdc/be/model/tosca/constraints/PatternConstraint.java
@@ -24,7 +24,9 @@ import java.util.regex.Pattern;
import org.openecomp.sdc.be.model.tosca.ToscaType;
import org.openecomp.sdc.be.model.tosca.constraints.exception.ConstraintFunctionalException;
+import org.openecomp.sdc.be.model.PropertyConstraint;
import org.openecomp.sdc.be.model.tosca.constraints.exception.ConstraintViolationException;
+import org.openecomp.sdc.be.model.tosca.constraints.exception.PropertyConstraintException;
import javax.validation.constraints.NotNull;
@@ -48,8 +50,20 @@ public class PatternConstraint extends AbstractStringPropertyConstraint {
}
@Override
+ public ConstraintType getConstraintType() {
+ return null;
+ }
+
+ @Override
+ public void validateValueOnUpdate(PropertyConstraint newConstraint) throws PropertyConstraintException {
+
+ }
+
+ @Override
public String getErrorMessage(ToscaType toscaType, ConstraintFunctionalException e, String propertyName) {
return getErrorMessage(toscaType, e, propertyName, "%s property value must match the regular expression %s",
pattern);
}
+
+
}
diff --git a/catalog-model/src/main/java/org/openecomp/sdc/be/model/tosca/constraints/ValidValuesConstraint.java b/catalog-model/src/main/java/org/openecomp/sdc/be/model/tosca/constraints/ValidValuesConstraint.java
index 1ddf9c9e0e..2ab0673cfe 100644
--- a/catalog-model/src/main/java/org/openecomp/sdc/be/model/tosca/constraints/ValidValuesConstraint.java
+++ b/catalog-model/src/main/java/org/openecomp/sdc/be/model/tosca/constraints/ValidValuesConstraint.java
@@ -21,22 +21,26 @@
package org.openecomp.sdc.be.model.tosca.constraints;
import com.google.common.collect.Sets;
-
-import java.util.List;
-import java.util.Set;
-
import org.openecomp.sdc.be.model.tosca.ToscaType;
import org.openecomp.sdc.be.model.tosca.constraints.exception.ConstraintFunctionalException;
import org.openecomp.sdc.be.model.tosca.constraints.exception.ConstraintValueDoNotMatchPropertyTypeException;
import org.openecomp.sdc.be.model.tosca.constraints.exception.ConstraintViolationException;
+import org.openecomp.sdc.be.dao.api.ActionStatus;
+import org.openecomp.sdc.be.model.PropertyConstraint;
+import org.openecomp.sdc.be.model.tosca.constraints.exception.PropertyConstraintException;
import javax.validation.constraints.NotNull;
+import java.util.List;
+import java.util.Set;
+import static java.util.stream.Collectors.toList;
+
public class ValidValuesConstraint extends AbstractPropertyConstraint {
@NotNull
private List<String> validValues;
private Set<Object> validValuesTyped;
+ private static final String PROPERTY_TYPE_IS = "> property type is <";
public ValidValuesConstraint(List<String> validValues) {
this.validValues = validValues;
@@ -55,13 +59,43 @@ public class ValidValuesConstraint extends AbstractPropertyConstraint {
for (String value : validValues) {
if (!propertyType.isValidValue(value)) {
throw new ConstraintValueDoNotMatchPropertyTypeException("validValues constraint has invalid value <"
- + value + "> property type is <" + propertyType.toString() + ">");
+ + value + PROPERTY_TYPE_IS + propertyType.toString() + ">");
} else {
validValuesTyped.add(propertyType.convert(value));
}
}
}
+ public void validateType(String propertyType) throws ConstraintValueDoNotMatchPropertyTypeException {
+ ToscaType toscaType= ToscaType.getToscaType(propertyType);
+ if(toscaType == null){
+ throw new ConstraintValueDoNotMatchPropertyTypeException("validValues constraint has invalid values <"
+ + validValues.toString() + PROPERTY_TYPE_IS + propertyType + ">");
+ }
+ if (validValues == null) {
+ throw new ConstraintValueDoNotMatchPropertyTypeException(
+ "validValues constraint has invalid value <> property type is <" + propertyType + ">");
+ }
+ for (String value : validValues) {
+ if (!toscaType.isValidValue(value)) {
+ throw new ConstraintValueDoNotMatchPropertyTypeException("validValues constraint has invalid value <"
+ + value + PROPERTY_TYPE_IS + propertyType + ">");
+ }
+ }
+ }
+
+ @Override
+ public void validateValueOnUpdate(PropertyConstraint newConstraint) throws PropertyConstraintException {
+ if(newConstraint.getConstraintType() == getConstraintType()){
+ if(!((ValidValuesConstraint)newConstraint).getValidValues().containsAll(validValues)){
+ throw new PropertyConstraintException("Deletion of exists value is not permitted", null, null, ActionStatus.CANNOT_DELETE_VALID_VALUES, getConstraintType().name(),
+ validValues.stream()
+ .filter(v->!((ValidValuesConstraint)newConstraint).getValidValues().contains(v))
+ .collect(toList()).toString());
+ }
+ }
+ }
+
@Override
public void validate(Object propertyValue) throws ConstraintViolationException {
if (propertyValue == null) {
@@ -81,8 +115,14 @@ public class ValidValuesConstraint extends AbstractPropertyConstraint {
}
@Override
+ public ConstraintType getConstraintType() {
+ return ConstraintType.VALID_VALUES;
+ }
+
+ @Override
public String getErrorMessage(ToscaType toscaType, ConstraintFunctionalException e, String propertyName) {
return getErrorMessage(toscaType, e, propertyName, "%s valid value must be one of the following: [%s]",
String.join(",", validValues));
}
+
}
diff --git a/catalog-model/src/main/java/org/openecomp/sdc/be/model/tosca/constraints/exception/PropertyConstraintException.java b/catalog-model/src/main/java/org/openecomp/sdc/be/model/tosca/constraints/exception/PropertyConstraintException.java
new file mode 100644
index 0000000000..3fbf4dd3d4
--- /dev/null
+++ b/catalog-model/src/main/java/org/openecomp/sdc/be/model/tosca/constraints/exception/PropertyConstraintException.java
@@ -0,0 +1,44 @@
+/*-
+ * ============LICENSE_START=======================================================
+ * SDC
+ * ================================================================================
+ * Copyright (C) 2020 AT&T Intellectual Property. All rights reserved.
+ * ================================================================================
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ * ============LICENSE_END=========================================================
+ */
+
+package org.openecomp.sdc.be.model.tosca.constraints.exception;
+
+import org.openecomp.sdc.be.dao.api.ActionStatus;
+import org.openecomp.sdc.be.model.tosca.constraints.ConstraintUtil;
+
+public class PropertyConstraintException extends ConstraintFunctionalException {
+
+ private final ActionStatus actionStatus;
+ private final String[] params;
+
+ public PropertyConstraintException(String message, Throwable cause, ConstraintUtil.ConstraintInformation constraintInformation, ActionStatus actionStatus, String... params) {
+ super(message, cause, constraintInformation);
+ this.actionStatus = actionStatus;
+ this.params = params;
+ }
+
+ public ActionStatus getActionStatus() {
+ return actionStatus;
+ }
+
+ public String[] getParams() {
+ return params.clone();
+ }
+}
diff --git a/catalog-model/src/main/java/org/openecomp/sdc/be/model/tosca/converters/HeatNumberConverter.java b/catalog-model/src/main/java/org/openecomp/sdc/be/model/tosca/converters/HeatNumberConverter.java
index b2237d0f35..187793ee0b 100644
--- a/catalog-model/src/main/java/org/openecomp/sdc/be/model/tosca/converters/HeatNumberConverter.java
+++ b/catalog-model/src/main/java/org/openecomp/sdc/be/model/tosca/converters/HeatNumberConverter.java
@@ -20,7 +20,6 @@
package org.openecomp.sdc.be.model.tosca.converters;
-import org.onap.sdc.tosca.datatypes.model.ScalarUnitValidator;
import org.openecomp.sdc.be.model.DataTypeDefinition;
import java.math.BigDecimal;
@@ -34,23 +33,17 @@ public class HeatNumberConverter implements PropertyValueConverter {
return numberConverter;
}
- private final ScalarUnitValidator scalarUnitValidator = ScalarUnitValidator.getInstance();
-
-
private HeatNumberConverter() {
}
@Override
public String convert(String original, String innerType, Map<String, DataTypeDefinition> dataTypes) {
+
if (original == null || original.isEmpty()) {
return null;
}
- if (scalarUnitValidator.isScalarUnit(original)) {
- return original;
- }
-
return new BigDecimal(original).toPlainString();
}
diff --git a/catalog-model/src/main/java/org/openecomp/sdc/be/model/tosca/converters/MapConverter.java b/catalog-model/src/main/java/org/openecomp/sdc/be/model/tosca/converters/MapConverter.java
index f53d95ceaf..3be610ec53 100644
--- a/catalog-model/src/main/java/org/openecomp/sdc/be/model/tosca/converters/MapConverter.java
+++ b/catalog-model/src/main/java/org/openecomp/sdc/be/model/tosca/converters/MapConverter.java
@@ -20,6 +20,7 @@
package org.openecomp.sdc.be.model.tosca.converters;
+import com.google.common.base.Strings;
import com.google.gson.*;
import fj.data.Either;
import org.apache.commons.lang3.tuple.ImmutablePair;
@@ -64,7 +65,7 @@ public class MapConverter implements PropertyValueConverter {
public Either<String, Boolean> convertWithErrorResult(String value, String innerType,
Map<String, DataTypeDefinition> dataTypes) {
- if (value == null || value == "" || innerType == null) {
+ if (Strings.isNullOrEmpty(value) || innerType == null) {
return Either.left(value);
}
diff --git a/catalog-model/src/main/java/org/openecomp/sdc/be/model/tosca/converters/ToscaMapValueConverter.java b/catalog-model/src/main/java/org/openecomp/sdc/be/model/tosca/converters/ToscaMapValueConverter.java
index f0b3ca25b9..5bbd38e2ba 100644
--- a/catalog-model/src/main/java/org/openecomp/sdc/be/model/tosca/converters/ToscaMapValueConverter.java
+++ b/catalog-model/src/main/java/org/openecomp/sdc/be/model/tosca/converters/ToscaMapValueConverter.java
@@ -124,7 +124,7 @@ public class ToscaMapValueConverter extends ToscaValueBaseConverter implements T
private void convertEntry(String innerType, Map<String, DataTypeDefinition> dataTypes, List<PropertyDefinition> allPropertiesRecursive, Map<String, Object> toscaMap, final boolean isScalarF, final ToscaValueConverter innerConverterFinal,
Entry<String, JsonElement> e) {
- log.debug("try convert element {}", e.getValue());
+ log.debug("try convert element ");
boolean scalar = false;
String propType = null;
ToscaValueConverter innerConverterProp = innerConverterFinal;
@@ -155,7 +155,7 @@ public class ToscaMapValueConverter extends ToscaValueBaseConverter implements T
public Object convertDataTypeToToscaObject(String innerType, Map<String, DataTypeDefinition> dataTypes, ToscaValueConverter innerConverter, final boolean isScalarF, JsonElement entryValue, boolean preserveEmptyValue) {
Object convertedValue = null;
if (isScalarF && entryValue.isJsonPrimitive()) {
- log.debug("try convert scalar value {}", entryValue.getAsString());
+ log.debug("try convert scalar value ");
if (entryValue.getAsString() == null) {
convertedValue = null;
} else {
diff --git a/catalog-model/src/main/java/org/openecomp/sdc/be/model/tosca/converters/ToscaValueBaseConverter.java b/catalog-model/src/main/java/org/openecomp/sdc/be/model/tosca/converters/ToscaValueBaseConverter.java
index e57650b8a6..fd987e8c9c 100644
--- a/catalog-model/src/main/java/org/openecomp/sdc/be/model/tosca/converters/ToscaValueBaseConverter.java
+++ b/catalog-model/src/main/java/org/openecomp/sdc/be/model/tosca/converters/ToscaValueBaseConverter.java
@@ -102,7 +102,7 @@ public class ToscaValueBaseConverter {
if (elementValue.isJsonPrimitive()) {
jsonValue = json2JavaPrimitive(elementValue.getAsJsonPrimitive());
} else {
- log.debug("not supported json type {} ", elementValue);
+ log.debug("not supported json type ");
}
}
}
diff --git a/catalog-model/src/main/java/org/openecomp/sdc/be/model/tosca/validators/HeatNumberValidator.java b/catalog-model/src/main/java/org/openecomp/sdc/be/model/tosca/validators/HeatNumberValidator.java
index ec281c0618..0ae3f74c85 100644
--- a/catalog-model/src/main/java/org/openecomp/sdc/be/model/tosca/validators/HeatNumberValidator.java
+++ b/catalog-model/src/main/java/org/openecomp/sdc/be/model/tosca/validators/HeatNumberValidator.java
@@ -20,29 +20,27 @@
package org.openecomp.sdc.be.model.tosca.validators;
-import java.util.Map;
-import org.onap.sdc.tosca.datatypes.model.ScalarUnitValidator;
import org.openecomp.sdc.be.model.DataTypeDefinition;
+import java.util.Map;
+
public class HeatNumberValidator implements PropertyTypeValidator {
private static HeatNumberValidator numberValidator = new HeatNumberValidator();
- private final FloatValidator floatValidator = FloatValidator.getInstance();
- private final IntegerValidator integerValidator = IntegerValidator.getInstance();
- private final ScalarUnitValidator scalarUnitValidator = ScalarUnitValidator.getInstance();
+ private static FloatValidator floatValidator = FloatValidator.getInstance();
+ private static IntegerValidator integerValidator = IntegerValidator.getInstance();
public static HeatNumberValidator getInstance() {
return numberValidator;
}
private HeatNumberValidator() {
+
}
@Override
- public boolean isValid(final String value,
- final String innerType,
- final Map<String, DataTypeDefinition> allDataTypes) {
+ public boolean isValid(String value, String innerType, Map<String, DataTypeDefinition> allDataTypes) {
if (value == null || value.isEmpty()) {
return true;
@@ -53,15 +51,11 @@ public class HeatNumberValidator implements PropertyTypeValidator {
valid = floatValidator.isValid(value, null, allDataTypes);
}
- if(!valid) {
- valid = scalarUnitValidator.isScalarUnit(value);
- }
-
return valid;
}
@Override
- public boolean isValid(final String value, final String innerType) {
+ public boolean isValid(String value, String innerType) {
return isValid(value, innerType, null);
}
}
diff --git a/catalog-model/src/main/java/org/openecomp/sdc/be/model/tosca/validators/ListValidator.java b/catalog-model/src/main/java/org/openecomp/sdc/be/model/tosca/validators/ListValidator.java
index ed40964614..ac2e6fee73 100644
--- a/catalog-model/src/main/java/org/openecomp/sdc/be/model/tosca/validators/ListValidator.java
+++ b/catalog-model/src/main/java/org/openecomp/sdc/be/model/tosca/validators/ListValidator.java
@@ -20,6 +20,7 @@
package org.openecomp.sdc.be.model.tosca.validators;
+import com.google.common.base.Strings;
import com.google.gson.JsonArray;
import com.google.gson.JsonElement;
import com.google.gson.JsonParser;
@@ -50,7 +51,7 @@ public class ListValidator implements PropertyTypeValidator {
log.debug("Going to validate value {} with inner type {}", value, innerType);
- if (value == null || value == "") {
+ if (Strings.isNullOrEmpty(value)) {
return true;
}
if (innerType == null) {
diff --git a/catalog-model/src/main/java/org/openecomp/sdc/be/model/tosca/version/ComparableVersion.java b/catalog-model/src/main/java/org/openecomp/sdc/be/model/tosca/version/ComparableVersion.java
index e3d8cf06f6..b0adb52919 100644
--- a/catalog-model/src/main/java/org/openecomp/sdc/be/model/tosca/version/ComparableVersion.java
+++ b/catalog-model/src/main/java/org/openecomp/sdc/be/model/tosca/version/ComparableVersion.java
@@ -190,6 +190,8 @@ public class ComparableVersion implements Comparable<ComparableVersion> {
case 'm':
value = "milestone";
break;
+ default:
+ throw new RuntimeException("Invalid item");
}
}
this.value = ALIASES.getProperty(value, value);