andrew
07/30/2019, 4:27 PMstate::class.declaredMemberProperties
.filter { (it::get).call(state) !== null }
.map { (it::get).call(state) }
.filter { it!!::class.companionObject !== null }
.forEach {
val clazz = it!!
val companion = clazz::class.companionObject
companion!!.declaredFunctions.forEach { fn ->
if (fn.name === "persist") {
val params = fn.parameters
fn.callBy(
mapOf(
params[0] to companion.objectInstance,
params[1] to context,
params[2] to clazz
)
)
}
}
}