fstn
10/09/2017, 7:21 PMclass User : JsonObject() {
var firstName by JsonDelegate()
var lastName by JsonDelegate()
var gender by JsonDelegate()
var type by JsonDelegate()
var picture by JsonDelegate()
var locale by JsonDelegate()
var heart by JsonDelegate()
var level by JsonDelegate()
var timezone by JsonDelegate()
fun update(userUpdate: JsonObject) {
userUpdate.fieldNames().forEach({ fieldName ->
this.put(fieldName, userUpdate.getValue(fieldName))
})
}
}
class JsonDelegate {
operator fun getValue(thisRef: JsonObject?, property: KProperty<*>): Any {
return thisRef!!.getValue(property.name)
}
operator fun setValue(thisRef: JsonObject?, property: KProperty<*>, value: Any) {
thisRef!!.put(property.name, value)
}
}