Coverage Summary for Class: Extensions (com.kotlinorm.utils)
Class |
Class, %
|
Method, %
|
Branch, %
|
Line, %
|
Instruction, %
|
Extensions |
100%
(1/1)
|
33.3%
(5/15)
|
|
26.3%
(5/19)
|
33.1%
(46/139)
|
/**
* Copyright 2022-2025 kronos-orm
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package com.kotlinorm.utils
import com.kotlinorm.beans.dsl.Criteria
import com.kotlinorm.beans.dsl.Field
import com.kotlinorm.interfaces.KPojo
import com.kotlinorm.enums.ConditionType
import com.kotlinorm.enums.ConditionType.Companion.And
import kotlin.reflect.KClass
object Extensions {
fun Map<String, Any?>.safeMapperTo(kClass: KClass<KPojo>): Any {
return kClass.createInstance().safeFromMapData(this)
}
fun Map<String, Any?>.mapperTo(kClass: KClass<KPojo>): Any {
return kClass.createInstance().fromMapData(this)
}
@JvmName("safeMapperToOutKClass")
fun Map<String, Any?>.safeMapperTo(kClass: KClass<out KPojo>): Any {
return kClass.createInstance().safeFromMapData(this)
}
@JvmName("mapperToOutKClass")
fun Map<String, Any?>.mapperTo(kClass: KClass<out KPojo>): Any {
return kClass.createInstance().fromMapData(this)
}
inline fun <reified K : KPojo> Map<String, Any?>.safeMapperTo(): K {
return K::class.createInstance().safeFromMapData(this)
}
inline fun <reified K : KPojo> Map<String, Any?>.mapperTo(): K {
return K::class.createInstance().fromMapData(this)
}
fun KPojo.safeMapperTo(kClass: KClass<KPojo>): Any {
return kClass.createInstance().safeFromMapData(toDataMap())
}
fun KPojo.mapperTo(kClass: KClass<KPojo>): Any {
return kClass.createInstance().fromMapData(toDataMap())
}
inline fun <reified K : KPojo> KPojo.safeMapperTo(): K {
return K::class.createInstance().safeFromMapData(toDataMap())
}
inline fun <reified K : KPojo> KPojo.mapperTo(): K {
return K::class.createInstance().fromMapData(toDataMap())
}
fun KPojo.patchTo(kClass: KClass<KPojo>, vararg data: Pair<String, Any?>): KPojo {
return this.toDataMap().apply {
data.forEach { (k, v) -> this[k] = v }
}.mapperTo(kClass) as KPojo
}
@JvmName("mapperPatchToOutKClass")
fun KPojo.patchTo(kClass: KClass<out KPojo>, vararg data: Pair<String, Any?>): KPojo {
return this.toDataMap().apply {
data.forEach { (k, v) -> this[k] = v }
}.mapperTo(kClass) as KPojo
}
internal fun List<Criteria>.toCriteria(): Criteria {
return Criteria(type = And, children = toMutableList())
}
internal infix fun Field.eq(value: Any?): Criteria {
return Criteria(this, ConditionType.EQUAL, false, value)
}
internal fun String.asSql(): Criteria {
return Criteria(type = ConditionType.SQL, value = this)
}
}