10
10
11
11
/**
12
12
* Created on 16.12.2018.
13
- *
13
+ * <p>
14
14
* Evaluate dynamic-values in the DataSet
15
15
*
16
16
* @author Korovin Anatoliy
@@ -44,7 +44,10 @@ public Map<String, List<Map<String, Object>>> read() {
44
44
return evaluatedDataSet ;
45
45
}
46
46
47
- private void applyReplacerToMap (Map <String , Object > maps ) {
47
+ private void applyReplacerToMap (Map <String , Object > mapValues ) {
48
+
49
+ Map <String , Object > maps = this .objectMapper .convertValue (mapValues , Map .class );
50
+
48
51
for (String key : maps .keySet ()) {
49
52
Object value = maps .get (key );
50
53
if (!this .complexityDataTypes .isComplexType (value )) {
@@ -54,8 +57,30 @@ private void applyReplacerToMap(Map<String, Object> maps) {
54
57
}
55
58
}
56
59
} else {
57
- Map <String , Object > map = this .objectMapper .convertValue (value , Map .class );
58
- applyReplacerToMap (map );
60
+ if (value instanceof Map ) {
61
+ applyReplacerToMap ((Map <String , Object >) value );
62
+ } else if (value instanceof List ) {
63
+ applyReplacerToList ((List <Object >) value );
64
+ }
65
+ }
66
+ }
67
+ }
68
+
69
+ private void applyReplacerToList (List <Object > listValues ) {
70
+ for (int i = 0 ; i < listValues .size (); i ++) {
71
+ Object value = listValues .get (i );
72
+ if (value instanceof Map ) {
73
+ applyReplacerToMap ((Map <String , Object >) value );
74
+ continue ;
75
+ }
76
+ if (value instanceof List ) {
77
+ applyReplacerToList ((List <Object >) value );
78
+ continue ;
79
+ }
80
+ for (DynamicValue replacer : this .dynamicValueEvaluators ) {
81
+ if (replacer .isNecessary (value )) {
82
+ listValues .set (i , replacer .evaluate (value ));
83
+ }
59
84
}
60
85
}
61
86
}
0 commit comments