package Ġcom . lik et hes al ad . android . templates . common . tasks . identifier . action Ċ Ċ import Ġcom . lik et hes al ad . android . templates . common . configuration . Stem Configuration Ċ import Ġcom . lik et hes al ad . android . templates . common . tasks . identifier . data . Template Item Ċ import Ġcom . lik et hes al ad . android . templates . common . tasks . identifier . data . Template Items Serializer Ċ import Ġcom . lik et hes al ad . android . templates . common . utils . Common Constants Ċ import Ġcom . lik et hes al ad . tools . resource . api . android . data . Android ResourceType Ċ import Ġcom . lik et hes al ad . tools . resource . api . android . environment . Language Ċ import Ġcom . lik et hes al ad . tools . resource . api . android . modules . string . String Android Resource Ċ import Ġcom . lik et hes al ad . tools . resource . api . collection . Resource Collection Ċ import Ġcom . lik et hes al ad . tools . resource . locator . android . extension . configuration . data . Resources Provider Ċ import Ġdagger . ass isted . Ass isted Ċ import Ġdagger . ass isted . Ass isted Factory Ċ import Ġdagger . ass isted . Ass isted Inject Ċ import Ġjava . io . File Ċ Ċ class ĠTemplates Identifier Action Ġ@ Ass isted Inject Ġconstructor ( ĊĠĠĠ Ġ@ Ass isted Ġprivate Ġval Ġlocal Resources : ĠResources Provider , ĊĠĠĠ Ġ@ Ass isted Ġprivate Ġval ĠoutputFile : ĠFile , ĊĠĠĠ Ġprivate Ġval Ġconfiguration : ĠSt em Configuration , ĊĠĠĠ Ġprivate Ġval Ġtemplate Items Serializer : ĠTemplate Items Serializer Ċ ) Ġ{ ĊĊĠĠĠ Ġ@ Ass isted Factory ĊĠĠĠ Ġinterface ĠFactory Ġ{ ĊĠĠĠĠĠĠĠ Ġfun Ġcreate ( local Resources : ĠResources Provider , ĠoutputFile : ĠFile ): ĠTemplates Identifier Action ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġexecute () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġtemplates Ġ= Ġget Templates From Resources () ĊĠĠĠĠĠĠĠ ĠoutputFile . write Text ( template Items Serializer . serialize ( templates )) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġget Templates From Resources (): ĠList < Template Item > Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġif Ġ( configuration . search For Templates In Languages ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġget Templates From All Collections () ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġmain Language Resources Ġ= Ġlocal Resources . resources . get Merged Resources For Language ( Language . Default ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġget Templates For Collection ( main Language Resources ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġget Templates From All Collections (): ĠList < Template Item > Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġresources Ġ= Ġlocal Resources . resources ĊĠĠĠĠĠĠĠ Ġval Ġall Languages Ġ= Ġresources . list Languages () ĊĠĠĠĠĠĠĠ Ġval Ġtemplates Ġ= Ġmutable Set Of < Template Item >() ĊĊĠĠĠĠĠĠĠ Ġall Languages . forEach Ġ{ Ġlanguage Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġcollection Ġ= Ġresources . get Merged Resources For Language ( language ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġcollection Templates Ġ= Ġget Templates For Collection ( collection ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtemplates . addAll ( collection Templates ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġreturn Ġtemplates . toList () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Suppress (" UN CHECK ED _ CAST ") ĊĠĠĠ Ġprivate Ġfun Ġget Templates For Collection ( resource Collection : ĠResource Collection ): ĠList < Template Item > Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġstring Resources Ġ= Ġresource Collection . getResources ByType ( Android ResourceType . StringType ) ĊĠĠĠĠĠĠĠ Ġval Ġtemplates Ġ= Ġfilter Templates ( string Resources Ġas ĠList < String Android Resource >) ĊĊĠĠĠĠĠĠĠ Ġreturn Ġtemplates . sorted By Ġ{ Ġit . name () Ġ}. map Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠTemplate Item ( it . name (), Ġit . type (). getName ()) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġfilter Templates ( string Resources : ĠList < String Android Resource >): ĠList < String Android Resource > Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġstring Resources . filter Ġ{ Ġstring Resource Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ ĠCommon Constants . PLACE HOLDER _ REGEX . contains Match In ( string Resource . stringValue ()) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ }