package Ġorg . kode in . di Ċ Ċ import Ġorg . kode in . type . Type Token Ċ Ċ /** Ċ Ġ* ĠGets Ġall Ġfactories Ġthat Ġmatch Ġthe Ġthe Ġgiven Ġargument Ġtype , Ġreturn Ġtype Ġand Ġtag . Ċ Ġ* Ċ Ġ* Ġ@ param ĠA ĠThe Ġtype Ġof Ġargument Ġthe Ġfactories Ġtake . Ċ Ġ* Ġ@ param ĠT ĠThe Ġtype Ġof Ġobject Ġto Ġretrieve Ġwith Ġthe Ġfactories . Ċ Ġ* Ġ@ param Ġarg Type ĠThe Ġtype Ġof Ġargument Ġthe Ġfactories Ġtake . Ċ Ġ* Ġ@ param Ġtype ĠThe Ġtype Ġof Ġobject Ġto Ġretrieve Ġwith Ġthe Ġfactories . Ċ Ġ* Ġ@ param Ġtag ĠThe Ġbound Ġtag , Ġif Ġany . Ċ Ġ* Ġ@ return ĠA Ġlist Ġof Ġfactories Ġof Ġ[ T ]. Ċ Ġ* Ġ@ throws ĠDI . Dependency Loop Exception ĠWhen Ġcalling Ġthe Ġfactory , Ġif Ġthe Ġvalue Ġconstruction Ġtriggered Ġa Ġdependency Ġloop . Ċ Ġ*/ Ċ public Ġfun Ġ< A , ĠT Ġ: ĠAny > ĠD IA ware . All Factories ( arg Type : ĠType Token < in ĠA >, Ġtype : ĠType Token < out ĠT >, Ġtag : ĠAny ? Ġ= Ġnull ): ĠDI Property < List <( A ) Ġ-> ĠT >> Ġ= ĊĠĠĠĠĠĠĠ ĠDI Property ( di Trigger , Ġdi Context ) Ġ{ Ġctx , Ġ_ Ġ-> Ġdi . container . all Factories ( DI . Key ( ctx . any Type , Ġarg Type , Ġtype , Ġtag ), Ġctx . value ) Ġ} Ċ Ċ /** Ċ Ġ* ĠGets Ġall Ġproviders Ġthat Ġmatch Ġthe Ġthe Ġgiven Ġreturn Ġtype Ġand Ġtag . Ċ Ġ* Ċ Ġ* Ġ@ param ĠT ĠThe Ġtype Ġof Ġobject Ġto Ġretrieve Ġwith Ġthe Ġproviders . Ċ Ġ* Ġ@ param Ġtype ĠThe Ġtype Ġof Ġobject Ġto Ġretrieve Ġwith Ġthe Ġproviders . Ċ Ġ* Ġ@ param Ġtag ĠThe Ġbound Ġtag , Ġif Ġany . Ċ Ġ* Ġ@ return ĠA Ġlist Ġof Ġproviders Ġof Ġ[ T ]. Ċ Ġ* Ġ@ throws ĠDI . Dependency Loop Exception ĠWhen Ġcalling Ġthe Ġfactory , Ġif Ġthe Ġvalue Ġconstruction Ġtriggered Ġa Ġdependency Ġloop . Ċ Ġ*/ Ċ public Ġfun Ġ< T Ġ: ĠAny > ĠD IA ware . All Providers ( type : ĠType Token < out ĠT >, Ġtag : ĠAny ? Ġ= Ġnull ): ĠDI Property < List < () Ġ-> ĠT >> Ġ= ĊĠĠĠĠĠĠĠ ĠDI Property ( di Trigger , Ġdi Context ) Ġ{ Ġctx , Ġ_ Ġ-> Ġdi . container . all Providers ( DI . Key ( ctx . any Type , ĠType Token . Unit , Ġtype , Ġtag ), Ġctx . value ) Ġ} Ċ Ċ /** Ċ Ġ* ĠGets Ġall Ġproviders Ġthat Ġmatch Ġthe Ġthe Ġgiven Ġreturn Ġtype Ġand Ġtag , Ġcur ried Ġfrom Ġfactories Ġthat Ġtake Ġan Ġargument Ġ[ A ]. Ċ Ġ* Ċ Ġ* Ġ@ param ĠA ĠThe Ġtype Ġof Ġargument Ġthe Ġcur ried Ġfactories Ġtake . Ċ Ġ* Ġ@ param ĠT ĠThe Ġtype Ġof Ġobject Ġto Ġretrieve Ġwith Ġthe Ġproviders . Ċ Ġ* Ġ@ param Ġarg Type ĠThe Ġtype Ġof Ġargument Ġthe Ġcur ried Ġfactories Ġtake . Ċ Ġ* Ġ@ param Ġtype ĠThe Ġtype Ġof Ġobject Ġto Ġretrieve Ġwith Ġthe Ġproviders . Ċ Ġ* Ġ@ param Ġtag ĠThe Ġbound Ġtag , Ġif Ġany . Ċ Ġ* Ġ@ param Ġarg ĠA Ġfunction Ġthat Ġreturns Ġthe Ġargument Ġthat Ġwill Ġbe Ġgiven Ġto Ġthe Ġfactory Ġwhen Ġcur ried . Ċ Ġ* Ġ@ return ĠA Ġlist Ġof Ġproviders Ġof Ġ[ T ]. Ċ Ġ* Ġ@ throws ĠDI . Dependency Loop Exception ĠWhen Ġcalling Ġthe Ġfactory , Ġif Ġthe Ġvalue Ġconstruction Ġtriggered Ġa Ġdependency Ġloop . Ċ Ġ*/ Ċ public Ġfun Ġ< A , ĠT Ġ: ĠAny > ĠD IA ware . All Providers ( arg Type : ĠType Token < in ĠA >, Ġtype : ĠType Token < out ĠT >, Ġtag : ĠAny ? Ġ= Ġnull , Ġarg : Ġ() Ġ-> ĠA ): ĠDI Property < List < () Ġ-> ĠT >> Ġ= ĊĠĠĠĠĠĠĠ ĠDI Property ( di Trigger , Ġdi Context ) Ġ{ Ġctx , Ġ_ Ġ-> Ġdi . container . all Factories ( DI . Key ( ctx . any Type , Ġarg Type , Ġtype , Ġtag ), Ġctx . value ). map Ġ{ Ġit . to Provider ( arg ) Ġ} Ġ} Ċ Ċ /** Ċ Ġ* ĠGets Ġall Ġinstances Ġfrom Ġproviders Ġthat Ġmatch Ġthe Ġthe Ġgiven Ġreturn Ġtype Ġand Ġtag . Ċ Ġ* Ċ Ġ* Ġ@ param ĠT ĠThe Ġtype Ġof Ġobject Ġto Ġretrieve Ġwith Ġthe Ġproviders . Ċ Ġ* Ġ@ param Ġtype ĠThe Ġtype Ġof Ġobject Ġto Ġretrieve Ġwith Ġthe Ġproviders . Ċ Ġ* Ġ@ param Ġtag ĠThe Ġbound Ġtag , Ġif Ġany . Ċ Ġ* Ġ@ return ĠA Ġlist Ġof Ġ[ T ] Ġinstances . Ċ Ġ* Ġ@ throws ĠDI . Dependency Loop Exception ĠWhen Ġcalling Ġthe Ġfactory , Ġif Ġthe Ġvalue Ġconstruction Ġtriggered Ġa Ġdependency Ġloop . Ċ Ġ*/ Ċ public Ġfun Ġ< T Ġ: ĠAny > ĠD IA ware . All Instances ( type : ĠType Token < out ĠT >, Ġtag : ĠAny ? Ġ= Ġnull ): ĠDI Property < List < T >> Ġ= ĊĠĠĠĠĠĠĠ ĠDI Property ( di Trigger , Ġdi Context ) Ġ{ Ġctx , Ġ_ Ġ-> Ġdi . container . all Providers ( DI . Key ( ctx . any Type , ĠType Token . Unit , Ġtype , Ġtag ), Ġctx . value ). map Ġ{ Ġit . invoke () Ġ} Ġ} Ċ Ċ /** Ċ Ġ* ĠGets Ġall Ġinstances Ġfrom Ġproviders Ġthat Ġmatch Ġthe Ġthe Ġgiven Ġreturn Ġtype Ġand Ġtag , Ġcur ried Ġfrom Ġfactories Ġthat Ġtake Ġan Ġargument Ġ[ A ]. Ċ Ġ* Ċ Ġ* Ġ@ param ĠA ĠThe Ġtype Ġof Ġargument Ġthe Ġcur ried Ġfactories Ġtake . Ċ Ġ* Ġ@ param ĠT ĠThe Ġtype Ġof Ġobject Ġto Ġretrieve Ġwith Ġthe Ġproviders . Ċ Ġ* Ġ@ param Ġarg Type ĠThe Ġtype Ġof Ġargument Ġthe Ġcur ried Ġfactories Ġtake . Ċ Ġ* Ġ@ param Ġtype ĠThe Ġtype Ġof Ġobject Ġto Ġretrieve Ġwith Ġthe Ġproviders . Ċ Ġ* Ġ@ param Ġtag ĠThe Ġbound Ġtag , Ġif Ġany . Ċ Ġ* Ġ@ param Ġarg ĠA Ġfunction Ġthat Ġreturns Ġthe Ġargument Ġthat Ġwill Ġbe Ġgiven Ġto Ġthe Ġfactory Ġwhen Ġcur ried . Ċ Ġ* Ġ@ return ĠA Ġlist Ġof Ġ[ T ] Ġinstances . Ċ Ġ* Ġ@ throws ĠDI . Dependency Loop Exception ĠWhen Ġcalling Ġthe Ġfactory , Ġif Ġthe Ġvalue Ġconstruction Ġtriggered Ġa Ġdependency Ġloop . Ċ Ġ*/ Ċ public Ġfun Ġ< A , ĠT Ġ: ĠAny > ĠD IA ware . All Instances ( arg Type : ĠType Token < in ĠA >, Ġtype : ĠType Token < T >, Ġtag : ĠAny ? Ġ= Ġnull , Ġarg : Ġ() Ġ-> ĠA ): ĠDI Property < List < T >> Ġ= ĊĠĠĠĠĠĠĠ ĠDI Property ( di Trigger , Ġdi Context ) Ġ{ Ġctx , Ġ_ Ġ-> Ġdi . container . all Factories ( DI . Key ( ctx . any Type , Ġarg Type , Ġtype , Ġtag ), Ġctx . value ). map Ġ{ Ġit . invoke ( arg ()) Ġ} Ġ}