package Ġcc . pop k orn Ċ Ċ import Ġcc . pop k orn . core . config . Injector Config Ċ import Ġkotlin . reflect . K Class Ċ Ċ /** Ċ Ġ* ĠPop K orn ĠDI Ċ Ġ* Ċ Ġ* Ġ@ author ĠP au ĠCor b ella Ċ Ġ* Ġ@ since Ġ 1 . 1 . 0 Ċ Ġ*/ Ċ Ċ private Ġval Ġinjector Ġby Ġlazy Ġ{ Ġcreate Default Injector () Ġ} Ċ Ċ /** Ċ Ġ* ĠMethod Ġto Ġobtain Ġthe Ġdefault Ġinjector Ġcurrently Ġbeing Ġused Ċ Ġ*/ Ċ fun Ġpop K orn (): ĠInject or Controller Ġ= Ġinjector ĊĊ Ċ /** Ċ Ġ* ĠMethods Ġto Ġlazy Ġinject Ġinstances Ġanywhere Ġlike : Ċ Ġ* Ġ Ġval Ġinstance Ġby Ġpop k orn < Some Class >() Ċ Ġ* Ġ Ġval Ġinstance Ġby Ġinject ing < Some Class >() Ċ Ġ*/ Ċ inline Ġfun Ġ< re ified ĠT Ġ: ĠAny > Ġpop k orn ( environment : ĠString ? Ġ= Ġnull , Ġno inline Ġconfig : Ġ( Injector Config . Builder . () Ġ-> ĠUnit )? Ġ= Ġnull ) Ġ= ĊĠĠĠ Ġlazy Ġ{ Ġpop K orn (). inject ( T :: class , Ġenvironment , Ġconfig ) Ġ} Ċ Ċ inline Ġfun Ġ< re ified ĠT Ġ: ĠAny > Ġinject ing ( environment : ĠString ? Ġ= Ġnull , Ġno inline Ġconfig : Ġ( Injector Config . Builder . () Ġ-> ĠUnit )? Ġ= Ġnull ) Ġ= ĊĠĠĠ Ġlazy Ġ{ Ġpop K orn (). inject ( T :: class , Ġenvironment , Ġconfig ) Ġ} ĊĊ Ċ /** Ċ Ġ* ĠMethods Ġto Ġinject Ġinstances Ġanywhere Ġlike Ġinject < Some Class >() Ċ Ġ*/ Ċ inline Ġfun Ġ< re ified ĠT Ġ: ĠAny > Ġinject ( environment : ĠString ? Ġ= Ġnull , Ġno inline Ġconfig : Ġ( Injector Config . Builder . () Ġ-> ĠUnit )? Ġ= Ġnull ) Ġ= ĊĠĠĠ Ġpop K orn (). inject ( T :: class , Ġenvironment , Ġconfig ) Ċ Ċ fun Ġ< T Ġ: ĠAny > ĠK Class < T >. inject ( environment : ĠString ? Ġ= Ġnull , Ġconfig : Ġ( Injector Config . Builder . () Ġ-> ĠUnit )? Ġ= Ġnull ) Ġ= ĊĠĠĠ Ġinjector . inject ( this , Ġenvironment , Ġconfig ) ĊĊ Ċ /** Ċ Ġ* ĠMethods Ġto Ġinject Ġnullable Ġinstances Ġanywhere Ġlike Ġinject OrNull < Some Class >() Ċ Ġ*/ Ċ inline Ġfun Ġ< re ified ĠT Ġ: ĠAny > Ġinject OrNull ( environment : ĠString ? Ġ= Ġnull , Ġno inline Ġconfig : Ġ( Injector Config . Builder . () Ġ-> ĠUnit )? Ġ= Ġnull ) Ġ= ĊĠĠĠ Ġpop K orn (). inject OrNull ( T :: class , Ġenvironment , Ġconfig ) Ċ Ċ fun Ġ< T Ġ: ĠAny > ĠK Class < T >. inject OrNull ( environment : ĠString ? Ġ= Ġnull , Ġconfig : Ġ( Injector Config . Builder . () Ġ-> ĠUnit )? Ġ= Ġnull ) Ġ= ĊĠĠĠ Ġinjector . inject OrNull ( this , Ġenvironment , Ġconfig ) Ċ