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

Commit 2800218

Browse files
authored
Merge pull request #11 from k163377/feature
Improve Bucket.
2 parents c5d312c + 6a7618d commit 2800218

File tree

2 files changed

+4
-4
lines changed

2 files changed

+4
-4
lines changed

build.gradle.kts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,7 @@ repositories {
3030
dependencies {
3131
implementation("org.jetbrains.kotlin:kotlin-stdlib-jdk8")
3232
implementation(kotlin("reflect"))
33-
implementation("com.github.ProjectMapK:Shared:0.4")
33+
implementation("com.github.ProjectMapK:Shared:0.5")
3434

3535
// https://mvnrepository.com/artifact/org.junit.jupiter/junit-jupiter
3636
testImplementation(group = "org.junit.jupiter", name = "junit-jupiter", version = "5.6.0") {

src/main/kotlin/com/mapk/kmapper/KMapper.kt

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -57,7 +57,7 @@ class KMapper<T : Any> private constructor(
5757
parameterMap[alias ?: property.name]?.let {
5858
// javaGetterを呼び出す方が高速
5959
javaGetter.isAccessible = true
60-
argumentBucket.setArgument(it.param, javaGetter.invoke(src)?.let { value -> mapObject(it, value) })
60+
argumentBucket.putIfAbsent(it.param, javaGetter.invoke(src)?.let { value -> mapObject(it, value) })
6161
// 終了判定
6262
if (argumentBucket.isInitialized) return
6363
}
@@ -68,7 +68,7 @@ class KMapper<T : Any> private constructor(
6868
src.forEach { (key, value) ->
6969
parameterMap[key]?.let { param ->
7070
// 取得した内容がnullでなければ適切にmapする
71-
argumentBucket.setArgument(param.param, value?.let { mapObject(param, it) })
71+
argumentBucket.putIfAbsent(param.param, value?.let { mapObject(param, it) })
7272
// 終了判定
7373
if (argumentBucket.isInitialized) return
7474
}
@@ -77,7 +77,7 @@ class KMapper<T : Any> private constructor(
7777

7878
private fun bindArguments(argumentBucket: ArgumentBucket, srcPair: Pair<*, *>) {
7979
parameterMap[srcPair.first.toString()]?.let {
80-
argumentBucket.setArgument(it.param, srcPair.second?.let { value -> mapObject(it, value) })
80+
argumentBucket.putIfAbsent(it.param, srcPair.second?.let { value -> mapObject(it, value) })
8181
}
8282
}
8383

0 commit comments

Comments
 (0)