aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--common-parameters/pom.xml1
-rw-r--r--common-parameters/src/main/java/org/onap/policy/common/parameters/FieldValidator.java12
-rw-r--r--common-parameters/src/test/java/org/onap/policy/common/parameters/TestFieldValidator.java6
3 files changed, 15 insertions, 4 deletions
diff --git a/common-parameters/pom.xml b/common-parameters/pom.xml
index e22b6ea3..342cb984 100644
--- a/common-parameters/pom.xml
+++ b/common-parameters/pom.xml
@@ -66,7 +66,6 @@
<dependency>
<groupId>com.google.code.gson</groupId>
<artifactId>gson</artifactId>
- <scope>test</scope>
</dependency>
<dependency>
<groupId>org.yaml</groupId>
diff --git a/common-parameters/src/main/java/org/onap/policy/common/parameters/FieldValidator.java b/common-parameters/src/main/java/org/onap/policy/common/parameters/FieldValidator.java
index 51c5d57f..d441c286 100644
--- a/common-parameters/src/main/java/org/onap/policy/common/parameters/FieldValidator.java
+++ b/common-parameters/src/main/java/org/onap/policy/common/parameters/FieldValidator.java
@@ -20,6 +20,7 @@
package org.onap.policy.common.parameters;
+import com.google.gson.annotations.SerializedName;
import java.lang.annotation.Annotation;
import java.lang.reflect.AnnotatedParameterizedType;
import java.lang.reflect.AnnotatedType;
@@ -58,6 +59,11 @@ public class FieldValidator extends ValueValidator {
private final Field field;
/**
+ * Name of the field when serialized (i.e., as the client would know it).
+ */
+ private final String serializedName;
+
+ /**
* Method to retrieve the field's value.
*/
private Method accessor;
@@ -76,9 +82,13 @@ public class FieldValidator extends ValueValidator {
String fieldName = field.getName();
if (fieldName.contains("$")) {
+ serializedName = fieldName;
return;
}
+ SerializedName serAnnot = field.getAnnotation(SerializedName.class);
+ serializedName = (serAnnot != null ? serAnnot.value() : fieldName);
+
validator.addValidators(this);
addListValidator(validator);
addMapValidator(validator);
@@ -184,7 +194,7 @@ public class FieldValidator extends ValueValidator {
// get the value
Object value = getValue(object, accessor);
- validateValue(result, field.getName(), value);
+ validateValue(result, serializedName, value);
}
/**
diff --git a/common-parameters/src/test/java/org/onap/policy/common/parameters/TestFieldValidator.java b/common-parameters/src/test/java/org/onap/policy/common/parameters/TestFieldValidator.java
index 29b4b0e3..f8f97494 100644
--- a/common-parameters/src/test/java/org/onap/policy/common/parameters/TestFieldValidator.java
+++ b/common-parameters/src/test/java/org/onap/policy/common/parameters/TestFieldValidator.java
@@ -23,6 +23,7 @@ package org.onap.policy.common.parameters;
import static org.assertj.core.api.Assertions.assertThat;
import static org.assertj.core.api.Assertions.assertThatThrownBy;
+import com.google.gson.annotations.SerializedName;
import java.lang.reflect.Field;
import java.lang.reflect.InvocationTargetException;
import java.util.List;
@@ -55,6 +56,7 @@ public class TestFieldValidator extends ValidatorUtil {
@Getter
private Map<@NotBlank String, @Min(1) Integer> intMap;
+ @SerializedName("annotated_key_map")
@Getter
private Map<@NotBlank String, Integer> annotatedKeyMap;
@@ -205,7 +207,7 @@ public class TestFieldValidator extends ValidatorUtil {
annotatedKeyMap = Map.of(" ", -10);
validator.validateField(result, this);
- assertThat(result.getResult()).contains("blank").doesNotContain("-10");
+ assertThat(result.getResult()).contains("annotated_key_map", "blank").doesNotContain("-10");
// only the value is annotated
validator = new FieldValidator(bean, TestFieldValidator.class, getField("annotatedValueMap"));
@@ -218,7 +220,7 @@ public class TestFieldValidator extends ValidatorUtil {
annotatedValueMap = Map.of(" ", -10);
validator.validateField(result, this);
- assertThat(result.getResult()).doesNotContain("blank").contains("\" \"", "-10");
+ assertThat(result.getResult()).doesNotContain("blank").contains("annotatedValueMap", "\" \"", "-10");
}
@Test