Skip to content
This repository was archived by the owner on Jan 20, 2023. It is now read-only.

Commit 87f1b97

Browse files
committed
ConversionService付きコンストラクタを追加
1 parent a15c934 commit 87f1b97

File tree

2 files changed

+34
-7
lines changed

2 files changed

+34
-7
lines changed

src/main/kotlin/com/mapk/krowmapper/DummyConstructor.kt

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,14 @@
11
package com.mapk.krowmapper
22

3+
import org.springframework.core.convert.ConversionService
34
import com.mapk.krowmapper.KRowMapper as Mapper
45

6+
@Suppress("FunctionName")
7+
inline fun <reified T : Any> KRowMapper(
8+
conversionService: ConversionService,
9+
noinline parameterNameConverter: ((String) -> String)? = null
10+
) = Mapper(T::class, conversionService, parameterNameConverter)
11+
512
@Suppress("FunctionName")
613
inline fun <reified T : Any> KRowMapper(
714
noinline parameterNameConverter: ((String) -> String)? = null

src/main/kotlin/com/mapk/krowmapper/KRowMapper.kt

Lines changed: 27 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -2,20 +2,40 @@ package com.mapk.krowmapper
22

33
import com.mapk.core.KFunctionForCall
44
import com.mapk.core.toKConstructor
5+
import org.springframework.core.convert.ConversionService
6+
import org.springframework.core.convert.support.DefaultConversionService
57
import org.springframework.jdbc.core.RowMapper
68
import java.sql.ResultSet
79
import kotlin.reflect.KClass
810
import kotlin.reflect.KFunction
911

10-
class KRowMapper<T : Any> private constructor(private val function: KFunctionForCall<T>) : RowMapper<T> {
11-
constructor(function: KFunction<T>, parameterNameConverter: ((String) -> String)? = null) : this(
12-
KFunctionForCall(function, parameterNameConverter)
13-
)
12+
class KRowMapper<T : Any> private constructor(
13+
private val function: KFunctionForCall<T>,
14+
conversionService: ConversionService?
15+
) : RowMapper<T> {
16+
constructor(
17+
function: KFunction<T>,
18+
conversionService: ConversionService,
19+
parameterNameConverter: ((String) -> String)? = null
20+
) : this(KFunctionForCall(function, parameterNameConverter), conversionService)
1421

15-
constructor(clazz: KClass<T>, parameterNameConverter: ((String) -> String)? = null) : this(
16-
clazz.toKConstructor(parameterNameConverter)
17-
)
22+
constructor(
23+
function: KFunction<T>,
24+
parameterNameConverter: ((String) -> String)? = null
25+
) : this(KFunctionForCall(function, parameterNameConverter), null)
1826

27+
constructor(
28+
clazz: KClass<T>,
29+
conversionService: ConversionService,
30+
parameterNameConverter: ((String) -> String)? = null
31+
) : this(clazz.toKConstructor(parameterNameConverter), conversionService)
32+
33+
constructor(
34+
clazz: KClass<T>,
35+
parameterNameConverter: ((String) -> String)? = null
36+
) : this(clazz.toKConstructor(parameterNameConverter), null)
37+
38+
private val conversionService: ConversionService = conversionService ?: DefaultConversionService.getSharedInstance()
1939
private val parameters: List<ParameterForMap<*, *>> =
2040
function.requiredParameters.map { ParameterForMap.newInstance(it) }
2141

0 commit comments

Comments
 (0)