name.remal.gradle_plugins.dsl.utils.PropertyWithDefaultValue.kt Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of gradle-plugins-kotlin-dsl Show documentation
Show all versions of gradle-plugins-kotlin-dsl Show documentation
Remal Gradle plugins: gradle-plugins-kotlin-dsl
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
}
}