package Ġnet . sar az an . k over age . test ers Ċ Ċ import Ġnet . sar az an . k over age . Cover able Ċ import Ġnet . sar az an . k over age . util . cover able Instances Ċ import Ġnet . sar az an . k over age . util . cover able Properties Ċ import Ġnet . sar az an . k over age . util . default Ċ import Ġkotlin . reflect . K Class Ċ import Ġkotlin . reflect . K Mutable Property 1 Ċ import Ġkotlin . reflect . K Property Ċ import Ġkotlin . reflect . jvm . is Accessible Ċ import Ġkotlin . reflect . jvm . java Field Ċ Ċ /** Ċ Ġ* ĠCreated Ġby ĠA aron ĠSar az an Ġon Ġ 1 2 / 2 1 / 1 7 Ċ Ġ*/ Ċ @ Suppress (" UN CHECK ED _ CAST ") Ċ object ĠProperty Tester Ġ: ĠCover able Ġ{ ĊĊĠĠĠ Ġoverride Ġfun Ġ< T Ġ: ĠAny > Ġcover ( klass : ĠK Class < T >) Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( klass . cover able Properties . isEmpty ()) Ġreturn ĊĠĠĠĠĠĠĠ Ġklass . cover able Instances (). forEach Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġobj Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġklass . cover able Properties . forEach Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġprop Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( prop . is El igible ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġprop . is Accessible Ġ= Ġtrue ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( prop Ġis ĠK Mutable Property 1 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ( prop Ġas ĠK Mutable Property 1 < T , ĠAny >). set ( obj , Ġ( prop . returnType . classifier Ġas ĠK Class < *> ). default ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġit Ġ= Ġprop . java Field !! ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġit . set ( obj , Ġit . type . kotlin . default ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ(_ : ĠIllegal AccessException ) Ġ{} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġprop . get ( obj ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġval ĠK Property <* >. is El igible : ĠBoolean ĊĠĠĠĠĠĠĠ Ġget () Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġjava Field Ġ!= Ġnull ĊĠĠĠĠĠĠĠ Ġ} Ċ }