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

name.remal.gradle_plugins.dsl.utils.PropertyWithDefaultValue.kt Maven / Gradle / Ivy

There is a newer version: 1.9.2
Show newest version
package name.remal.gradle_plugins.dsl.utils

import kotlin.reflect.KProperty

fun  defaultValue(defaultValueGetter: () -> T) = PropertyWithDefaultValue(defaultValueGetter)
fun  defaultValue(defaultValue: T) = PropertyWithDefaultValue({ defaultValue })

class PropertyWithDefaultValue(private val defaultValueGetter: () -> T) {

    private var value: T? = null

    operator fun getValue(thisRef: Any?, property: KProperty<*>): T {
        return value ?: defaultValueGetter()
    }

    operator fun setValue(thisRef: Any?, property: KProperty<*>, value: T) {
        this.value = value
    }

}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy