/* Ċ Ġ* Ġ ĠCopyright Ġ( c ) Ġ 2 0 1 9 - present , ĠAndroid ĠAssets ĠJournal ist ĠContributors . Ċ Ġ* Ġ ĠLicensed Ġunder Ġthe ĠApache ĠLicense , ĠVersion Ġ 2 . 0 Ġ( the Ġ" License "); Ġyou Ġmay Ġnot Ġuse Ġthis Ġfile Ġexcept Ġin Ċ Ġ* Ġ Ġcompliance Ġwith Ġthe ĠLicense . ĠYou Ġmay Ġobtain Ġa Ġcopy Ġof Ġthe ĠLicense Ġat Ċ Ġ* Ċ Ġ* Ġ Ġhttp :// www . apache . org / licenses / LICENSE - 2 . 0 Ċ Ġ* Ċ Ġ* Ġ ĠUnless Ġrequired Ġby Ġapplicable Ġlaw Ġor Ġagreed Ġto Ġin Ġwriting , Ġsoftware Ġdistributed Ġunder Ġthe ĠLicense Ġis Ċ Ġ* Ġ Ġdistributed Ġon Ġan Ġ" AS ĠIS " ĠBASIS , ĠWITHOUT ĠWARRANTIES ĠOR ĠCONDITIONS ĠOF ĠANY ĠKIND , Ġeither Ġexpress Ġor Ġimplied . ĠSee Ċ Ġ* Ġ Ġthe ĠLicense Ġfor Ġthe Ġspecific Ġlanguage Ġgoverning Ġpermissions Ġand Ġlimitations Ġunder Ġthe ĠLicense . Ċ Ġ*/ Ċ Ċ package Ġcom . github . util x . assets journal ist . internal Ċ Ċ import Ġcom . github . util x . assets journal ist . SourceFile Config . Companion . CONST _ VALUE _ REPLACE MENT _ EXPRESSION _ MATCH _ KEY Ċ import Ġcom . github . util x . assets journal ist . SourceFile Config . Companion . CONST _ VALUE _ REPLACE MENT _ EXPRESSION _ REPLACE _ WITH _ KEY Ċ Ċ class ĠString Transformer ( ĊĠĠĠ Ġprivate Ġval Ġreplacement s List : ĠList < Replacement > Ċ ) Ġ{ ĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠApplies Ġtransformation Ġto Ġprovided Ġstring Ġand Ġreturns Ġresult ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġfun Ġapply ( stringValue : ĠString ): ĠString Ġ{ ĊĠĠĠĠĠĠĠ Ġvar Ġresult Ġ= Ġstring Value ĊĠĠĠĠĠĠĠ Ġreplacement s List . forEach Ġ{ Ġreplacement Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġresult Ġ= Ġresult . replace ( replacement . match , Ġreplacement . replace With ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġreturn Ġresult ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoperator Ġfun Ġinvoke ( stringValue : ĠString ) Ġ= Ġapply ( stringValue ) Ċ } Ċ Ċ /** Ċ Ġ* ĠCreates ĠString Ġtransformer Ġusing Ġprovided Ġreplacement Ġlist Ġfrom Ġextension / task Ġconfiguration Ċ Ġ*/ Ċ fun Ġbuild String Transformer Using ( ĊĠĠĠ Ġextension Replacement List : ĠList < Map < String , ĠString >> Ċ ): ĠString Transformer Ġ{ ĊĠĠĠ Ġval Ġreplacement s List Ġ= Ġextension Replacement List ĊĠĠĠĠĠĠĠ Ġ. as Sequence () ĊĠĠĠĠĠĠĠ Ġ. map Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġregex Ġ= Ġit [ CONST _ VALUE _ REPLACE MENT _ EXPRESSION _ MATCH _ KEY ]?. to Regex () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġreplacement Ġ= Ġit [ CONST _ VALUE _ REPLACE MENT _ EXPRESSION _ REPLACE _ WITH _ KEY ] ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( regex Ġ== Ġnull Ġ|| Ġreplacement Ġ== Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġthrow ĠIllegalStateException ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" problem Ġwith Ġbuilding Ġvalue Ġreplacement Ġmap Ġ- Ġprovided Ġentries : Ġ$ extension Replacement List " ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ ĠRe placement ( regex , Ġreplacement ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ. toList () ĊĊĠĠĠ Ġreturn ĠString Transformer ( replacement s List ) Ċ } Ċ