Using vetoable delegate
Vetoable delegate is quite similar to the observable delegate, with the only difference of vetoing the change. In the observable delegate, we could get hold of new and old values whenever the observable property was changed. Let's take a look at the definition provided in Kotlin's documentation:
"Returns a property delegate for a read/write property that calls a specified callback function when changed, allowing the callback to veto the modification."
Getting ready
I'll be using IntelliJ IDEA for coding purposes. You can use any IDE capable of executing Kotlin code.
How to do it…
Let's now look at the given steps to understand the vetoable
modifier:
- Let's take a quick look at an implementation of the
vetoable
delegated property:
fun main(args: Array<String>) { var student:Student by Delegates.vetoable(Student(10),{property, oldValue, newValue -> if(newValue.age>25){ println("Age can't be greater than 25") return@vetoable false...