This repository was archived by the owner on Jan 20, 2023. It is now read-only.
File tree Expand file tree Collapse file tree 1 file changed +13
-9
lines changed
src/main/kotlin/com/mapk/krowmapper Expand file tree Collapse file tree 1 file changed +13
-9
lines changed Original file line number Diff line number Diff line change @@ -24,15 +24,7 @@ class ParameterForMap private constructor(
24
24
private val deserializer: KFunction <* >?
25
25
26
26
init {
27
- val deserializers = deserializerFromConstructors(kClazz) +
28
- deserializerFromStaticMethods(kClazz) +
29
- deserializerFromCompanionObject(kClazz)
30
-
31
- deserializer = when {
32
- deserializers.isEmpty() -> null
33
- deserializers.size == 1 -> deserializers.single()
34
- else -> throw IllegalArgumentException (" Find multiple deserializer from ${kClazz.jvmName} " )
35
- }
27
+ deserializer = kClazz.getDeserializer()
36
28
}
37
29
38
30
fun getObject (rs : ResultSet ): Any? = when {
@@ -54,6 +46,18 @@ class ParameterForMap private constructor(
54
46
}
55
47
}
56
48
49
+ private fun <T : Any > KClass<T>.getDeserializer (): KFunction <T >? {
50
+ val deserializers = deserializerFromConstructors(this ) +
51
+ deserializerFromStaticMethods(this ) +
52
+ deserializerFromCompanionObject(this )
53
+
54
+ return when {
55
+ deserializers.isEmpty() -> null
56
+ deserializers.size == 1 -> deserializers.single()
57
+ else -> throw IllegalArgumentException (" Find multiple deserializer from $jvmName " )
58
+ }
59
+ }
60
+
57
61
private fun <T > Collection<KFunction<T>>.getDeserializerFromFunctions (): Collection <KFunction <T >> {
58
62
return filter { it.annotations.any { annotation -> annotation is KColumnDeserializer } }
59
63
.map { func ->
You can’t perform that action at this time.
0 commit comments