class OrderDetails { | |
- var fullName: String = "" | |
- set(value) { | |
- field = value.split(" ").joinToString(" ") { it.capitalize() } | |
- } | |
+ var fullName by CapitalizeDelegate() | |
- var city: String = "" | |
- set(value) { | |
- field = value.split(" ").joinToString(" ") { it.capitalize() } | |
- } | |
+ var city by CapitalizeDelegate() | |
- var coupon: String = "NO COUPON" | |
- set(value) { | |
- field = value.toUpperCase() | |
- } | |
+ var coupon by UppercaseDelegate() | |
} |
class CapitalizeDelegate : ReadWriteProperty<Any?, String> { | |
private var formattedString: String = "" | |
override operator fun getValue(thisRef: Any?, property: KProperty<*>): String = formattedString | |
override operator fun setValue(thisRef: Any?, property: KProperty<*>, value: String) { | |
formattedString = value.split(" ").joinToString(" ") { it.capitalize() } | |
} | |
} | |
class UppercaseDelegate : ReadWriteProperty<Any?, String> { | |
private var formattedString: String = "" | |
override operator fun getValue(thisRef: Any?, property: KProperty<*>): String = formattedString | |
override operator fun setValue(thisRef: Any?, property: KProperty<*>, value: String) { | |
formattedString = value.toUpperCase() | |
} | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment