package Ġorg . tty . di oc . config . internal Ċ Ċ import Ġorg . tty . di oc . config . Application Config Ċ import Ġorg . tty . di oc . config . schema . Config Schema Ċ import Ġkotlin . properties . ReadWrite Property Ċ import Ġkotlin . reflect . K Property Ċ Ċ /** Ċ Ġ* Ġproperty Ġdelegate Ġfor Ġ[ Config Schema ]. Ċ Ġ* Ġ@ see Ġ[ org . tty . di oc . config . schema . delegate For Schema ] Ċ Ġ* Ċ Ġ* Ġ@ sample Ġ[ org . tty . di oc . config . samples . JE I Config Sample . use Delegate For Schema ] Ċ Ġ*/ Ċ internal Ġclass ĠApplication Config Delegate < T : ĠAny , ĠTR : ĠAny >( ĊĠĠĠ Ġprivate Ġval Ġconfig Schema : ĠConfig Schema < T > Ċ ): ĠRead Write Property < Application Config , ĠTR > Ġ{ ĊĠĠĠ Ġ@ Suppress (" UN CHECK ED _ CAST ") ĊĠĠĠ Ġoverride Ġfun ĠgetValue ( this Ref : ĠApplication Config , Ġproperty : ĠK Property < *> ): ĠTR Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġthis Ref [ config Schema ] Ġas ĠTR ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠsetValue ( this Ref : ĠApplication Config , Ġproperty : ĠK Property <* >, Ġvalue : ĠTR ) Ġ{ ĊĠĠĠĠĠĠĠ Ġthis Ref [ config Schema ] Ġ= Ġvalue ĊĠĠĠ Ġ} Ċ }