@@ -5,16 +5,15 @@ import com.mapk.core.EnumMapper
5
5
import com.mapk.core.KFunctionWithInstance
6
6
import com.mapk.core.ValueParameter
7
7
import com.mapk.core.getAnnotatedFunctions
8
+ import com.mapk.core.getAnnotatedFunctionsFromCompanionObject
8
9
import com.mapk.core.getKClass
9
10
import com.mapk.deserialization.AbstractKColumnDeserializer
10
11
import com.mapk.deserialization.KColumnDeserializeBy
11
12
import java.lang.IllegalArgumentException
12
13
import java.sql.ResultSet
13
14
import kotlin.reflect.KClass
14
15
import kotlin.reflect.KFunction
15
- import kotlin.reflect.full.companionObjectInstance
16
16
import kotlin.reflect.full.findAnnotation
17
- import kotlin.reflect.full.functions
18
17
import kotlin.reflect.full.primaryConstructor
19
18
import kotlin.reflect.full.staticFunctions
20
19
import kotlin.reflect.jvm.isAccessible
@@ -114,14 +113,9 @@ private fun <T : Any> deserializerFromStaticMethods(clazz: KClass<T>): Collectio
114
113
115
114
@Suppress(" UNCHECKED_CAST" )
116
115
private fun <T : Any > deserializerFromCompanionObject (clazz : KClass <T >): Collection <KFunction <T >> {
117
- return clazz.companionObjectInstance?.let { companionObject ->
118
- companionObject::class .functions
119
- .filter { it.annotations.any { annotation -> annotation is KColumnDeserializer } }
120
- .map { function ->
121
- KFunctionWithInstance (
122
- function,
123
- companionObject
124
- ) as KFunction <T >
125
- }.toSet()
116
+ return clazz.getAnnotatedFunctionsFromCompanionObject<KColumnDeserializer >()?.let { (instance, functions) ->
117
+ functions.map {
118
+ KFunctionWithInstance (it, instance) as KFunction <T >
119
+ }
126
120
} ? : emptySet()
127
121
}
0 commit comments