package Ġcom . ag oda . nin j ato . converter Ċ Ċ import Ġcom . ag oda . nin j ato . dsl . Nin j ato Dsl Marker Ċ import Ġjava . util .* Ċ Ċ /** Ċ Ġ* ĠDSL Ġcontext Ġfor Ġaggreg ating Ġ[ converter Ġfactories ][ Body Converter . Factory ]. Ċ Ġ* ĠSupports Ġadditions Ġof Ġsingle Ġfactory Ġand Ġiter ables Ġof Ġfactories . Ċ Ġ* Ċ Ġ* ĠWhen Ġresolving Ġall Ġthe Ġaggreg ations Ġacross Ġthe ĠDSL Ġcascade , Ġkeep Ġin Ġmind , Ċ Ġ* Ġthat Ġfactories Ġthat Ġwere Ġdefined Ġon Ġthe Ġlowest Ġlevel Ġwill Ġcome Ġfirst . Ċ Ġ* ĠThis Ġis Ġdone Ġto Ġsupport Ġoverriding Ġof Ġconverter s . Ċ Ġ*/ Ċ @ Nin j ato Dsl Marker Ċ class ĠConverter Factories Ġ{ ĊĠĠĠ Ġ@ Published Api ĊĠĠĠ Ġinternal Ġvar Ġparent : ĠConverter Factories ? Ġ= Ġnull ĊĊĠĠĠ Ġprivate Ġval Ġadded : ĠMutable List < Body Converter . Factory > Ġ= ĠLinkedList () ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠAdds Ġprovided Ġfactory Ġto Ġthe Ġaggregation . ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* Ġ@ param Ġfactory Ġfactory Ġto Ġadd . ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġoperator Ġfun Ġplus Assign ( factory : ĠBody Converter . Factory ) Ġ{ ĊĠĠĠĠĠĠĠ Ġadded . add ( factory ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠAdds Ġprovided Ġfactories Ġto Ġthe Ġaggregation . ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* Ġ@ param Ġfactories Ġlist Ġof Ġfactories Ġto Ġadd . ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġoperator Ġfun Ġplus Assign ( factories : ĠIterable < Body Converter . Factory >) Ġ{ ĊĠĠĠĠĠĠĠ Ġadded . addAll ( factories ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Published Api ĊĠĠĠ Ġinternal Ġfun Ġresolve (): ĠMutable List < Body Converter . Factory > Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġ( parent ?. resolve () Ġ?: ĠLinkedList ()). apply Ġ{ Ġadd All ( 0 , Ġadded ) Ġ} ĊĠĠĠ Ġ} Ċ } Ċ