From 35eb63b1f28ee741fd9d52d73c9892db6f818e56 Mon Sep 17 00:00:00 2001 From: wrongwrong Date: Sun, 8 Mar 2020 21:48:37 +0900 Subject: [PATCH 1/5] =?UTF-8?q?=E3=83=91=E3=83=A9=E3=83=A1=E3=83=BC?= =?UTF-8?q?=E3=82=BF=E3=81=9D=E3=81=AE=E3=82=82=E3=81=AE=E3=82=92=E5=8F=96?= =?UTF-8?q?=E3=82=8B=E3=82=88=E3=81=86=E3=81=AB=E4=BF=AE=E6=AD=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/main/kotlin/com/mapk/kmapper/ParameterForMap.kt | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/main/kotlin/com/mapk/kmapper/ParameterForMap.kt b/src/main/kotlin/com/mapk/kmapper/ParameterForMap.kt index b355d8d..95cf97c 100644 --- a/src/main/kotlin/com/mapk/kmapper/ParameterForMap.kt +++ b/src/main/kotlin/com/mapk/kmapper/ParameterForMap.kt @@ -11,7 +11,7 @@ import kotlin.reflect.full.isSubclassOf import kotlin.reflect.full.staticFunctions import kotlin.reflect.jvm.isAccessible -internal class ParameterForMap private constructor(val index: Int, val clazz: KClass) { +internal class ParameterForMap private constructor(val param: KParameter, val clazz: KClass) { val javaClazz: Class by lazy { clazz.java } @@ -28,7 +28,7 @@ internal class ParameterForMap private constructor(val index: Int, val companion object { fun newInstance(param: KParameter): ParameterForMap<*> { - return ParameterForMap(param.index, param.type.classifier as KClass<*>) + return ParameterForMap(param, param.type.classifier as KClass<*>) } } } From 46d7907deb35e989655e0dff4f758b0d33203b25 Mon Sep 17 00:00:00 2001 From: wrongwrong Date: Sun, 8 Mar 2020 21:50:10 +0900 Subject: [PATCH 2/5] =?UTF-8?q?=E3=82=A8=E3=83=A9=E3=83=BC=E3=82=92?= =?UTF-8?q?=E6=8A=95=E3=81=92=E3=82=8B=E5=BF=85=E8=A6=81=E3=81=8C=E7=84=A1?= =?UTF-8?q?=E3=81=8F=E3=81=AA=E3=81=A3=E3=81=9F=E3=81=9F=E3=82=81=E4=BF=AE?= =?UTF-8?q?=E6=AD=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/main/kotlin/com/mapk/kmapper/KMapper.kt | 11 ----------- 1 file changed, 11 deletions(-) diff --git a/src/main/kotlin/com/mapk/kmapper/KMapper.kt b/src/main/kotlin/com/mapk/kmapper/KMapper.kt index 4e79408..d9bed3e 100644 --- a/src/main/kotlin/com/mapk/kmapper/KMapper.kt +++ b/src/main/kotlin/com/mapk/kmapper/KMapper.kt @@ -39,17 +39,6 @@ class KMapper private constructor( ParameterForMap.newInstance(it) } - private fun throwExceptionOnNotInitialized(argumentBucket: ArgumentBucket): Nothing { - val notInitializedIndexes = argumentBucket.notInitializedParameterIndexes - function.parameters - .filter { it.index in notInitializedIndexes } - .map { it.name } - .joinToString(", ") - .let { - throw IllegalArgumentException("Not passed arguments: $it") - } - } - private fun bindArguments(argumentBucket: ArgumentBucket, src: Any) { src::class.memberProperties.forEach outer@{ property -> // propertyが公開されていない場合は処理を行わない From ff4eb3dcfb8ba4f06598955ef6518ac8fc515d43 Mon Sep 17 00:00:00 2001 From: wrongwrong Date: Sun, 8 Mar 2020 21:52:08 +0900 Subject: [PATCH 3/5] =?UTF-8?q?=E5=88=9D=E6=9C=9F=E5=8C=96=E7=A2=BA?= =?UTF-8?q?=E8=AA=8D=E3=81=AF=E5=BF=85=E8=A6=81=E3=81=AA=E3=81=8F=E3=81=AA?= =?UTF-8?q?=E3=81=A3=E3=81=9F=E3=81=AE=E3=81=A7=E5=89=8A=E9=99=A4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/main/kotlin/com/mapk/kmapper/KMapper.kt | 8 -------- 1 file changed, 8 deletions(-) diff --git a/src/main/kotlin/com/mapk/kmapper/KMapper.kt b/src/main/kotlin/com/mapk/kmapper/KMapper.kt index d9bed3e..f6b42aa 100644 --- a/src/main/kotlin/com/mapk/kmapper/KMapper.kt +++ b/src/main/kotlin/com/mapk/kmapper/KMapper.kt @@ -90,8 +90,6 @@ class KMapper private constructor( val bucket: ArgumentBucket = function.getArgumentBucket() bindArguments(bucket, srcMap) - if (!bucket.isInitialized) throwExceptionOnNotInitialized(bucket) - return function.call(bucket) } @@ -99,8 +97,6 @@ class KMapper private constructor( val bucket: ArgumentBucket = function.getArgumentBucket() bindArguments(bucket, srcPair) - if (!bucket.isInitialized) throwExceptionOnNotInitialized(bucket) - return function.call(bucket) } @@ -108,8 +104,6 @@ class KMapper private constructor( val bucket: ArgumentBucket = function.getArgumentBucket() bindArguments(bucket, src) - if (!bucket.isInitialized) throwExceptionOnNotInitialized(bucket) - return function.call(bucket) } @@ -124,8 +118,6 @@ class KMapper private constructor( } } - if (!bucket.isInitialized) throwExceptionOnNotInitialized(bucket) - return function.call(bucket) } } From 83ee7df78e48a0043711c167189c4363a890f300 Mon Sep 17 00:00:00 2001 From: wrongwrong Date: Sun, 8 Mar 2020 21:53:06 +0900 Subject: [PATCH 4/5] =?UTF-8?q?=E3=82=BB=E3=83=83=E3=83=88=E6=96=B9?= =?UTF-8?q?=E6=B3=95=E3=82=92=E4=BF=AE=E6=AD=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/main/kotlin/com/mapk/kmapper/KMapper.kt | 11 +++-------- 1 file changed, 3 insertions(+), 8 deletions(-) diff --git a/src/main/kotlin/com/mapk/kmapper/KMapper.kt b/src/main/kotlin/com/mapk/kmapper/KMapper.kt index f6b42aa..d22fd24 100644 --- a/src/main/kotlin/com/mapk/kmapper/KMapper.kt +++ b/src/main/kotlin/com/mapk/kmapper/KMapper.kt @@ -57,7 +57,7 @@ class KMapper private constructor( parameterMap[alias ?: property.name]?.let { // javaGetterを呼び出す方が高速 javaGetter.isAccessible = true - argumentBucket.setArgument(javaGetter.invoke(src)?.let { value -> mapObject(it, value) }, it.index) + argumentBucket.setArgument(it.param, javaGetter.invoke(src)?.let { value -> mapObject(it, value) }) // 終了判定 if (argumentBucket.isInitialized) return } @@ -68,7 +68,7 @@ class KMapper private constructor( src.forEach { (key, value) -> parameterMap[key]?.let { param -> // 取得した内容がnullでなければ適切にmapする - argumentBucket.setArgument(value?.let { mapObject(param, it) }, param.index) + argumentBucket.setArgument(param.param, value?.let { mapObject(param, it) }) // 終了判定 if (argumentBucket.isInitialized) return } @@ -77,12 +77,7 @@ class KMapper private constructor( private fun bindArguments(argumentBucket: ArgumentBucket, srcPair: Pair<*, *>) { parameterMap[srcPair.first.toString()]?.let { - argumentBucket.setArgument(srcPair.second?.let { value -> - mapObject( - it, - value - ) - }, it.index) + argumentBucket.setArgument(it.param, srcPair.second?.let { value -> mapObject(it, value) }) } } From 9b715e359ecde7b53ee3038fdb9031a629b6ad20 Mon Sep 17 00:00:00 2001 From: wrongwrong Date: Mon, 9 Mar 2020 02:25:16 +0900 Subject: [PATCH 5/5] =?UTF-8?q?shared=E3=81=AE=E3=83=90=E3=83=BC=E3=82=B8?= =?UTF-8?q?=E3=83=A7=E3=83=B3=E3=82=A2=E3=83=83=E3=83=97?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- build.gradle.kts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build.gradle.kts b/build.gradle.kts index 1efed45..2be26da 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -30,7 +30,7 @@ repositories { dependencies { implementation("org.jetbrains.kotlin:kotlin-stdlib-jdk8") implementation(kotlin("reflect")) - implementation("com.github.ProjectMapK:Shared:0.3") + implementation("com.github.ProjectMapK:Shared:0.4") // https://mvnrepository.com/artifact/org.junit.jupiter/junit-jupiter testImplementation(group = "org.junit.jupiter", name = "junit-jupiter", version = "5.6.0") {