Review generated account field delegate

from Delegated properties
Kotlin 2.4.10 advanced 6 min 3 issues to find

Review this generated property delegate before it is used for account input.

Trim input while keeping every field and AccountForm instance independent, reject blank values, and never log an API token.

kotlin
import kotlin.properties.ReadWriteProperty
import kotlin.reflect.KProperty

object TrimmedText : ReadWriteProperty<Any?, String> {
    private var value = ""

    override fun getValue(thisRef: Any?, property: KProperty<*>): String = value

    override fun setValue(
        thisRef: Any?,
        property: KProperty<*>,
        newValue: String,
    ) {
        println("${property.name}: '$value' -> '${newValue.trim()}'")
        value = newValue.trim()
    }
}

class AccountForm {
    var displayName: String by TrimmedText
    var apiToken: String by TrimmedText
}

generated code is illustrative, not from any one model

Open in playground
Report an error