@@ -43,12 +43,14 @@ class ParameterValueRetriever(val parameter: KParameter) {
43
43
)
44
44
45
45
val propertyName = context.getRegularPropertyName(prefix, name)
46
- return doRetrieve(propertyName = propertyName,
47
- creator = creator,
48
- context = context,
49
- type = parameter.type,
50
- klass = klass,
51
- optional = parameter.isOptional || parameter.type.isMarkedNullable)
46
+ return doRetrieve(
47
+ propertyName = propertyName,
48
+ creator = creator,
49
+ context = context,
50
+ type = parameter.type,
51
+ klass = klass,
52
+ optional = parameter.isOptional || parameter.type.isMarkedNullable
53
+ )
52
54
}
53
55
54
56
private fun doRetrieve (
@@ -98,23 +100,27 @@ class ParameterValueRetriever(val parameter: KParameter) {
98
100
context : Context
99
101
): Result <Any ?, String >? {
100
102
return when {
101
- isMapLike(propertyName, context) -> retrieveMap(propertyName = propertyName,
102
- creator = creator,
103
- context = context,
104
- keyType = STRING_TYPE ,
105
- keyClass = String ::class ,
106
- valueType = ANY_TYPE ,
107
- valueClass = Any ::class ,
108
- optional = false ,
109
- nullable = false )
110
- isCollectionLike(propertyName, context) -> retrieveCollection(collectionClass = List ::class ,
111
- propertyName = propertyName,
112
- creator = creator,
113
- context = context,
114
- valueType = ANY_TYPE ,
115
- valueClass = Any ::class ,
116
- optional = false ,
117
- nullable = false )
103
+ isMapLike(propertyName, context) -> retrieveMap(
104
+ propertyName = propertyName,
105
+ creator = creator,
106
+ context = context,
107
+ keyType = STRING_TYPE ,
108
+ keyClass = String ::class ,
109
+ valueType = ANY_TYPE ,
110
+ valueClass = Any ::class ,
111
+ optional = false ,
112
+ nullable = false
113
+ )
114
+ isCollectionLike(propertyName, context) -> retrieveCollection(
115
+ collectionClass = List ::class ,
116
+ propertyName = propertyName,
117
+ creator = creator,
118
+ context = context,
119
+ valueType = ANY_TYPE ,
120
+ valueClass = Any ::class ,
121
+ optional = false ,
122
+ nullable = false
123
+ )
118
124
else -> retrieveSimpleValue(propertyName, Any ::class , context)
119
125
}
120
126
}
@@ -199,14 +205,16 @@ class ParameterValueRetriever(val parameter: KParameter) {
199
205
" can't derive type parameter class for property '$propertyName ' of type ${parameter.type} "
200
206
)
201
207
202
- return retrieveCollection(collectionClass = collectionClass,
203
- propertyName = propertyName,
204
- creator = creator,
205
- context = context,
206
- valueType = type,
207
- valueClass = typeClass,
208
- optional = parameter.isOptional,
209
- nullable = parameter.type.isMarkedNullable)
208
+ return retrieveCollection(
209
+ collectionClass = collectionClass,
210
+ propertyName = propertyName,
211
+ creator = creator,
212
+ context = context,
213
+ valueType = type,
214
+ valueClass = typeClass,
215
+ optional = parameter.isOptional,
216
+ nullable = parameter.type.isMarkedNullable
217
+ )
210
218
}
211
219
212
220
private fun retrieveCollection (
@@ -287,15 +295,17 @@ class ParameterValueRetriever(val parameter: KParameter) {
287
295
val valueClass = valueType.classifier as ? KClass <* > ? : throw IllegalArgumentException (
288
296
" Failed instantiating a Map property '$propertyName ' - can't derive value class for $parameter "
289
297
)
290
- return retrieveMap(propertyName = propertyName,
291
- creator = creator,
292
- context = context,
293
- keyType = keyType,
294
- keyClass = keyClass,
295
- valueType = valueType,
296
- valueClass = valueClass,
297
- optional = parameter.isOptional,
298
- nullable = parameter.type.isMarkedNullable)
298
+ return retrieveMap(
299
+ propertyName = propertyName,
300
+ creator = creator,
301
+ context = context,
302
+ keyType = keyType,
303
+ keyClass = keyClass,
304
+ valueType = valueType,
305
+ valueClass = valueClass,
306
+ optional = parameter.isOptional,
307
+ nullable = parameter.type.isMarkedNullable
308
+ )
299
309
}
300
310
301
311
private fun retrieveMap (
@@ -313,12 +323,13 @@ class ParameterValueRetriever(val parameter: KParameter) {
313
323
for (key in context.getMapKeys(propertyName, keyType)) {
314
324
val valuePropertyName = context.getMapValuePropertyName(propertyName, key)
315
325
try {
316
- doRetrieve(propertyName = valuePropertyName,
317
- creator = creator,
318
- context = context,
319
- type = valueType,
320
- klass = valueClass,
321
- optional = false
326
+ doRetrieve(
327
+ propertyName = valuePropertyName,
328
+ creator = creator,
329
+ context = context,
330
+ type = valueType,
331
+ klass = valueClass,
332
+ optional = false
322
333
)?.takeIf {
323
334
it.success
324
335
}?.let {
0 commit comments