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

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

The 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 - 2025 Weber Informatics LLC | Privacy Policy