/* Ċ Ġ* ĠCopyright Ġ 2 0 2 1 ĠP av lo ĠSt avy ts ky i Ċ Ġ* Ċ Ġ* Ġ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 Ġorg . mor fly . air in Ċ Ċ import Ġorg . mor fly . air in . B azel Label Format .* Ċ import Ġorg . mor fly . air in . B azel Label Format . Short Ċ import Ġkotlin . Lazy Thread Safety Mode . NONE ĊĊ Ċ /** Ċ Ġ* Ċ Ġ*/ Ċ data Ġclass ĠModule ( ĊĠĠĠ Ġval Ġrelative Path : ĠString , ĊĠĠĠ Ġval Ġname : ĠString , ĊĠĠĠ Ġval Ġoriginal Label : ĠString ? Ċ ) Ġ: ĠDependency , ĠL abeled , ĠB azel Labeled Ġ{ ĊĊĠĠĠ Ġprivate Ġval Ġb azel Label Regex Ġ= ĠRegex ("[ ^ A - Za - z 0 - 9 ]") ĊĠĠĠ Ġprivate Ġval ĠpackageName Ġby Ġlazy ( NONE ) Ġ{ Ġrelative Path . remove Prefix ("/ "). remove Suffix ("/") Ġ} ĊĠĠĠ Ġprivate Ġval Ġtarget Name Ġby Ġlazy ( NONE ) Ġ{ Ġb azel Label Regex . replace ( name , Ġ"_ ") Ġ} ĊĠĠĠ Ġprivate Ġval Ġcan O mit Target Ġby Ġlazy ( NONE ) Ġ{ ĠpackageName Ġ== Ġtarget Name Ġ|| ĠpackageName . endsWith ("/ $ target Name ") Ġ} ĊĊĠĠĠ Ġoverride Ġval Ġlabel Ġ= Ġb azel Label ( format Ġ= ĠFull ) ĊĠĠĠ Ġoverride Ġval Ġshort Label Ġ= Ġb azel Label ( format Ġ= ĠShort Colon ) ĊĊĠĠĠ Ġoverride Ġval Ġdefault Label Format Ġ= ĠFull O mit s Target ĊĊĠĠĠ Ġoverride Ġfun Ġb azel Label ( format : ĠB azel Label Format ): ĠString Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( format Ġis ĠFull O mit s Target Ġ&& Ġ! can O mit Target ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġb azel Label ( Full ) ĊĠĠĠĠĠĠĠ Ġif Ġ( format Ġis ĠFull Repo O mit s Target Ġ&& Ġ! can O mit Target ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġb azel Label ( Full Repo ( format . repo Name )) ĊĊĠĠĠĠĠĠĠ Ġreturn Ġbuild String Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġrepo Name Ġ= Ġformat . repo Name ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( repo Name Ġ!= Ġnull ) Ġappend ("@ $ repo Name ") ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġwhen Ġ( format ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġis ĠFull , Ġis ĠFull Repo Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġappend ("// ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġappend ( packageName ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġappend (": ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġappend ( target Name ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġis ĠFull O mit s Target , Ġis ĠFull Repo O mit s Target Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġappend ("// ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġappend ( packageName ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġis ĠShort Colon Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġappend (": ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġappend ( target Name ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġis ĠShort Ġ-> Ġappend ( target Name ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ }