package Ġio . must el id ae . small cl aw ed ot ter . utils Ċ Ċ import Ġorg . reflection s . Reflection Utils Ċ import Ġkotlin . reflect . K Class Ċ import Ġkotlin . reflect . K Function Ċ import Ġkotlin . reflect . K Mutable Property Ċ import Ġkotlin . reflect . full . declared Member Functions Ċ import Ġkotlin . reflect . full . member Properties Ċ import Ġkotlin . reflect . jvm . is Accessible Ċ Ċ fun Ġinvoke Any ( clazz : ĠAny , Ġarg : ĠString , Ġdata : ĠAny ): ĠAny Ġ{ ĊĠĠĠ Ġval Ġprops Ġ= Ġclazz :: class . member Properties . find Ġ{ Ġit . name Ġ== Ġarg Ġ} ĊĠĠĠ Ġprops !!. is Accessible Ġ= Ġtrue ĊĠĠĠ Ġif Ġ( props Ġis ĠK Mutable Property <* >) Ġ{ ĊĠĠĠĠĠĠĠ Ġprops . setter . call ( clazz , Ġdata ) ĊĠĠĠ Ġ} ĊĠĠĠ Ġreturn Ġclazz Ċ } Ċ Ċ fun Ġinvoke Func ( clazz : ĠK Class <* >, Ġfunction Name : ĠString ): ĠK Function < *> ? Ġ{ ĊĠĠĠ Ġval Ġfunc Ġ= Ġclazz . declared Member Functions . find Ġ{ Ġit . name Ġ== Ġfunction Name Ġ} ĊĠĠĠ Ġfunc ?. let Ġ{ ĊĠĠĠĠĠĠĠ Ġit . is Accessible Ġ= Ġtrue ĊĠĠĠ Ġ} ĊĠĠĠ Ġreturn Ġfunc Ċ } Ċ Ċ fun Ġinvoke Id ( clazz : ĠAny , Ġhas Id : ĠBoolean Ġ= Ġtrue ): ĠAny Ġ{ ĊĠĠĠ Ġif Ġ( has Id . not ()) ĊĠĠĠĠĠĠĠ Ġreturn Ġclazz ĊĊĠĠĠ Ġval Ġprops Ġ= Ġclazz :: class . member Properties . find Ġ{ Ġit . name Ġ== Ġ" id " Ġ} ĊĠĠĠ Ġprops !!. is Accessible Ġ= Ġtrue ĊĠĠĠ Ġif Ġ( props Ġis ĠK Mutable Property <* >) Ġ{ ĊĠĠĠĠĠĠĠ Ġprops . setter . call ( clazz , ĠFix ture ID . inc ()) ĊĠĠĠ Ġ} ĊĠĠĠ Ġreturn Ġclazz Ċ } Ċ Ċ fun Ġset Field ( obj : ĠAny , Ġfiled Name : ĠString , Ġvalue : ĠAny ) Ġ{ ĊĠĠĠ Ġval Ġfields Ġ= ĠReflection Utils . getAll Fields ( obj . java Class ) ĊĠĠĠ Ġfor Ġ( field Ġin Ġfields ) Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( field . name Ġ== Ġfiled Name ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfield . is Accessible Ġ= Ġtrue ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfield . set ( obj , Ġvalue ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } Ċ