package Ġcom . aut onomous apps . internal Ċ Ċ import Ġcom . aut onomous apps . internal . utils . capitalize S af ely Ċ import Ġcom . aut onomous apps . internal . utils . flatMap To Set Ċ import Ġcom . aut onomous apps . internal . utils . to Identifiers Ċ import Ġorg . gradle . api . Project Ċ Ċ internal Ġclass ĠConfigur ations To Dependencies Transformer ( ĊĠ Ġprivate Ġval Ġflavor Name : ĠString ?, ĊĠ Ġprivate Ġval Ġvariant Name : ĠString , ĊĠ Ġprivate Ġval Ġproject : ĠProject Ċ ) Ġ{ ĊĊĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠ Ġprivate Ġval ĠDEFAULT _ CON FS Ġ= ĠlistOf ( ĊĠĠĠĠĠ Ġ" api ", Ġ" implementation ", Ġ" compile ", Ġ" compile Only ", Ġ" runtime Only " ĊĠĠĠ Ġ) ĊĠĠĠ Ġprivate Ġval ĠDEFAULT _ PROC _ CON FS Ġ= ĠlistOf (" k apt ", Ġ" annotation Processor ") ĊĠ Ġ} ĊĊĠ Ġfun Ġdependency Configurations (): ĠSet < Dependency Configuration > Ġ{ ĊĠĠĠ Ġval Ġcandidate Conf Names Ġ= Ġbuild Conf Names () Ġ+ Ġbuild AP Conf Names () ĊĊĠĠĠ Ġ// ĠFilter Ġall Ġconfigurations Ġfor Ġthose Ġwe Ġcare Ġabout ĊĠĠĠ Ġval Ġinteresting Con fs Ġ= Ġproject . configurations . as Map ĊĠĠĠĠĠ Ġ. filter Ġ{ Ġ( name , Ġ_) Ġ-> Ġcandidate Conf Names . contains ( name ) Ġ} ĊĠĠĠĠĠ Ġ. map Ġ{ Ġ(_, Ġconf ) Ġ-> Ġconf Ġ} ĊĊĠĠĠ Ġreturn Ġinteresting Con fs . flatMap To Set Ġ{ Ġconf Ġ-> ĊĠĠĠĠĠ Ġconf . dependencies . to Identifiers (). map Ġ{ Ġidentifier Ġ-> ĊĠĠĠĠĠĠĠ ĠDependency Configuration ( identifier Ġ= Ġidentifier , Ġconfiguration Name Ġ= Ġconf . name ) ĊĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĠ Ġ} ĊĊĠ Ġprivate Ġfun Ġbuild Conf Names (): ĠSet < String > Ġ{ ĊĠĠĠ Ġval Ġconf Names Ġ= Ġ( DEFAULT _ CON FS Ġ+ ĠDEFAULT _ CON FS . map Ġ{ ĊĠĠĠĠĠ Ġ// Ġso , Ġflavor Debug Api , Ġetc . ĊĠĠĠĠĠ Ġ"${ variant Name }${ it . capitalize S af ely () }" ĊĠĠĠ Ġ}). to Mutable Set () ĊĠĠĠ Ġif Ġ( flavor Name Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠ Ġconf Names . addAll ( DEFAULT _ CON FS . map Ġ{ ĊĠĠĠĠĠĠĠ Ġ// Ġso , Ġflavor Api , Ġetc . ĊĠĠĠĠĠĠĠ Ġ"${ flavor Name }${ it . capitalize S af ely () }" ĊĠĠĠĠĠ Ġ}) ĊĠĠĠ Ġ} ĊĠĠĠ Ġreturn Ġconf Names ĊĠ Ġ} ĊĊĠ Ġprivate Ġfun Ġbuild AP Conf Names (): ĠSet < String > Ġ{ ĊĠĠĠ Ġval Ġproc Conf Names Ġ= Ġ( DEFAULT _ PROC _ CON FS Ġ+ ĠDEFAULT _ PROC _ CON FS . map Ġ{ ĊĠĠĠĠĠ Ġ// Ġso , Ġk apt Flavor Debug , Ġetc ĊĠĠĠĠĠ Ġ"${ it }${ variant Name . capitalize S af ely () }" ĊĠĠĠ Ġ}). to Mutable Set () ĊĠĠĠ Ġif Ġ( flavor Name Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠ Ġproc Conf Names . addAll ( DEFAULT _ PROC _ CON FS . map Ġ{ ĊĠĠĠĠĠĠĠ Ġ// Ġso , Ġk apt Flavor , Ġetc . ĊĠĠĠĠĠĠĠ Ġ"${ it }${ flavor Name . capitalize S af ely () }" ĊĠĠĠĠĠ Ġ}) ĊĠĠĠ Ġ} ĊĠĠĠ Ġreturn Ġproc Conf Names ĊĠ Ġ} Ċ } Ċ