package Ġcc . pop k orn . config Ċ Ċ import Ġcc . pop k orn . core . config . Injector Config Ċ import Ġcc . pop k orn . core . model . Instance Ċ import Ġcc . pop k orn . kotlin Class Ċ import Ġkotlinx . c interop . Obj C Class Ċ import Ġkotlinx . c interop . Obj C Protocol Ċ Ċ /** Ċ Ġ* ĠExtra Ġconfigurations Ġto Ġbe Ġused Ġwhen Ġinject ing Ġan Ġinstance Ġfrom ĠObjective C Ċ Ġ* Ċ Ġ* Ġ@ author ĠP au ĠCor b ella Ċ Ġ* Ġ@ since Ġ 2 . 1 . 0 Ċ Ġ*/ Ċ class ĠInject or Config Builder Ġ{ ĊĠĠĠ Ġprivate Ġval Ġass isted Ġ= Ġarray ListOf < Instance <* >>() ĊĠĠĠ Ġprivate Ġvar Ġholder : ĠAny ? Ġ= Ġnull ĊĊĠĠĠ Ġfun Ġassist ( instance : ĠAny , Ġtype : ĠObj C Class , Ġenvironment : ĠString ): ĠInject or Config Builder Ġ{ ĊĠĠĠĠĠĠĠ Ġass isted . add ( Instance ( instance , Ġtype . kotlin Class (), Ġenvironment )) ĊĠĠĠĠĠĠĠ Ġreturn Ġthis ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġassist ( instance : ĠAny , Ġtype : ĠObj C Class ): ĠInject or Config Builder Ġ{ ĊĠĠĠĠĠĠĠ Ġass isted . add ( Instance ( instance , Ġtype . kotlin Class ())) ĊĠĠĠĠĠĠĠ Ġreturn Ġthis ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġassist ( instance : ĠAny , Ġprotocol : ĠObj C Protocol , Ġenvironment : ĠString ): ĠInject or Config Builder Ġ{ ĊĠĠĠĠĠĠĠ Ġass isted . add ( Instance ( instance , Ġprotocol . kotlin Class (), Ġenvironment )) ĊĠĠĠĠĠĠĠ Ġreturn Ġthis ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġassist ( instance : ĠAny , Ġprotocol : ĠObj C Protocol ): ĠInject or Config Builder Ġ{ ĊĠĠĠĠĠĠĠ Ġass isted . add ( Instance ( instance , Ġprotocol . kotlin Class ())) ĊĠĠĠĠĠĠĠ Ġreturn Ġthis ĊĠĠĠ Ġ} ĊĊĊĠĠĠ Ġfun Ġholder ( holder : ĠAny ): ĠInject or Config Builder Ġ{ ĊĠĠĠĠĠĠĠ Ġthis . holder Ġ= Ġholder ĊĠĠĠĠĠĠĠ Ġreturn Ġthis ĊĠĠĠ Ġ} ĊĊĊĠĠĠ Ġinternal Ġfun Ġapply ( builder : ĠInject or Config . Builder ) Ġ{ ĊĠĠĠĠĠĠĠ Ġass isted . forEach Ġ{ Ġbuilder . assist ( it . instance , Ġit . type , Ġit . environment ) Ġ} ĊĠĠĠĠĠĠĠ Ġholder ?. let Ġ{ Ġbuilder . holder ( it ) Ġ} ĊĠĠĠ Ġ} Ċ Ċ } Ċ