package Ġcom . sk osc . in control . kode in Ċ Ċ import Ġcom . sk osc . in control . di . DI Container Wrapper Ċ import Ġorg . kode in . di . DI Ċ import Ġorg . kode in . di . direct Ċ import Ġorg . kode in . di . jx inject . jx Ċ import Ġorg . kode in . type . Type Token Ċ import Ġorg . kode in . type . type Token Ċ import Ġkotlin . reflect . K Type Ċ import Ġkotlin . reflect . java Type Ċ Ċ /** Ċ Ġ* Ġ@ author Ġa . y ak ov lev Ċ Ġ* Ġ@ since Ġin dev Ċ Ġ* Ċ Ġ* ĠUsed Ġto Ġresolve Ġk ode in Ġdependencies Ġwith Ġ[ DI Container Wrapper ] Ġinterface Ċ Ġ*/ Ċ internal Ġclass ĠK ode in DI Container Wrapper ( private Ġval Ġdi : ĠDI ) Ġ: ĠDI Container Wrapper Ġ{ ĊĊĠĠĠ Ġ@ Experimental Std lib Api ĊĠĠĠ Ġoverride Ġfun Ġresolve ( tag : ĠString ?, Ġtype : ĠK Type ): ĠAny ? Ġ= ĊĠĠĠĠĠĠĠ Ġtry Resolve With Container ( tag , Ġtype ) Ġ?: Ġtry Resolve With JS R 3 3 0 ( type ) ĊĊĠĠĠ Ġ@ Suppress (" UN CHECK ED _ CAST ") ĊĠĠĠ Ġ@ Experimental Std lib Api ĊĠĠĠ Ġprivate Ġfun Ġtry Resolve With Container ( tag : ĠString ?, Ġtype : ĠK Type ): ĠAny ? Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġtype Token Ġ= Ġtype Token ( type . java Type ) Ġas ĠType Token < Any > ĊĠĠĠĠĠĠĠ Ġreturn Ġdi . direct . Instance ( type Token , Ġtag ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Experimental Std lib Api ĊĠĠĠ Ġprivate Ġfun Ġtry Resolve With JS R 3 3 0 ( type : ĠK Type ): ĠAny ? Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġcls Ġ= ĠClass . forName ( type . java Type . typeName ) ĊĠĠĠĠĠĠĠ Ġreturn Ġdi . jx . newInstance ( cls ) ĊĠĠĠ Ġ} Ċ }