All Downloads are FREE. Search and download functionalities are using the official Maven repository.

kotlinbase.lorenwang.tools.extend.KttlwExtendAny.kt Maven / Gradle / Ivy

There is a newer version: 2.0.0-alpha05
Show newest version
package kotlinbase.lorenwang.tools.extend

import javabase.lorenwang.dataparse.JdplwJsonUtils
import javabase.lorenwang.tools.common.JtlwCheckVariateUtils

/**
 * 功能作用:基础函数扩展
 * 创建时间:2019-11-14 下午 23:17:43
 * 创建人:王亮(Loren wang)
 * 思路:
 * 方法:
 * 注意:
 * 修改人:
 * 修改时间:
 * 备注:
 */

/**
 * 获取实例的json数据
 */
fun  T.kttlwToJsonData(): String {
    return try {
        JdplwJsonUtils.toJson(this) ?: ""
    } catch (e: Exception) {
        ""
    }
}

/**
 * 检测基础数据是否为空,包括空字符串
 */
fun  T?.kttlwIsEmpty(): Boolean {
    return JtlwCheckVariateUtils.getInstance().isEmpty(this)
}

/**
 * 数据检测,根据检测结果调用不同方法,调用结束后返回数据,包括空字符串检测
 */
inline fun  T?.kttlwEmptyCheck(emptyFun: () -> R, notEmptyFun: (T) -> R): R {
    return if (this.kttlwIsEmpty()) {
        emptyFun()
    } else {
        notEmptyFun(this!!)
    }
}

/**
 * 空检测,如果为空调用空方法,包括空字符串检测
 */
inline fun  T?.kttlwEmptyCheck(emptyFun: () -> R) {
    if (this.kttlwIsEmpty()) {
        emptyFun()
    }
}

/**
 * 检测数据是否为空,仅仅是空,仅仅是null判断
 */
fun  T?.kttlwIsNull(): Boolean {
    return this == null
}

/**
 * 检测数据是否不为空,仅仅是空,仅仅是null判断
 */
fun  T?.kttlwIsNotNull(): Boolean {
    return this != null
}

/**
 * 是否为非null或者空
 */
fun  T?.kttlwIsNotNullOrEmpty(): Boolean {
    if (this == null) {
        return false
    }
    if (this is String) {
        return this.isNotEmpty()
    }
    if (this is Iterable<*>) {
        return !this.none()
    }
    return true
}

/**
 * 数据为null检测,为null时执行fun
 */
inline fun  T?.kttlwNullCheck(exec: () -> Unit) {
    if (this.kttlwIsNull()) {
        exec()
    }
}

/**
 * 数据不为null检测,不为null时执行fun
 */
inline fun  T?.kttlwNotNullCheck(exec: (T) -> Unit) {
    if (this.kttlwIsNotNull()) {
        exec(this!!)
    }
}

/**
 * 数据null检测,分情况执行fun
 */
inline fun  T?.kttlwNullCheck(nullFun: () -> R, notNullFun: () -> R): R {
    return if ((this.kttlwIsNull())) {
        nullFun()
    } else {
        notNullFun()
    }
}

/**
 * 数据转换成指定的数据格式类型
 */
inline fun  Any?.kttlwFormatConversion(): T? {
    return if (this != null && this is T) {
        this
    } else {
        null
    }
}

/**
 * 判断数据值是否是确定状态,默认返回非确定状态也就是默认认定数据为false
 */
fun Any?.kttlwIfTrue(): Boolean {
    if (this != null && this.toString().matches(Regex("[0-9]+"))) {
        return this.toString() != "0"
    }
    return false
}

/**
 * 判断数据值是否是否定状态,默认返回非确定状态也就是默认认定数据为false
 */
fun Any?.kttlwIfFalse(): Boolean {
    if (this != null && this.toString().matches(Regex("[0-9]+"))) {
        return this.toString() == "0"
    }
    return true
}


/**
 * 待检测参数中是否包含空数据,包括空字符串检测
 */
inline fun  kttlwHaveEmptyCheck(emptyFun: () -> R, notEmptyFun: () -> R, vararg params: P): R {
    params.forEach {
        if (it.kttlwIsEmpty()) {
            return emptyFun()
        }
    }
    return notEmptyFun()
}

/**
 * 待检测参数中是否包含空数据,包括空字符串检测
 * @return 有返回true,否则返回false
 */
fun 

kttlwHaveEmptyCheck(vararg params: P): Boolean { params.forEach { if (it.kttlwIsEmpty()) { return true } } return false } /** * 待检测参数中是否全部是空数据,包括空字符串检测 * @return 有返回true,否则返回false */ fun

kttlwAllEmptyCheck(vararg params: P): Boolean { params.forEach { if (!it.kttlwIsEmpty()) { return false } } return true } /** * 待检测参数中是否有null数据 */ inline fun kttlwHaveNullCheck(vararg params: P, nullFun: () -> R, notNullFun: () -> R): R { params.forEach { if (it.kttlwIsNull()) { return nullFun() } } return notNullFun() } /** * 待检测参数中是否包含null * @return 有返回true,否则返回false */ fun

kttlwHaveNullCheck(vararg params: P): Boolean { params.forEach { if (it.kttlwIsNull()) { return true } } return false } /** * 待检测参数中是否全部是null * @return 全是返回true,否则返回false */ fun

kttlwAllNullCheck(vararg params: P): Boolean { params.forEach { if (!it.kttlwIsNull()) { return false } } return true } /** * 获取非空数据 */ fun T?.kttlwGetNotEmptyData(getDefaultData: () -> T): T { return if (this.kttlwIsEmpty()) { getDefaultData() } else { this!! } }





© 2015 - 2024 Weber Informatics LLC | Privacy Policy