package Ġcom . var abyte . k ob web . gradle . application . project . common Ċ Ċ object ĠRoute Utils Ġ{ ĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠGiven Ġa Ġq package , Ġe . g . Ġ" a ._ 1 2 3 . int _", Ġand Ġsome Ġmappings , Ġe . g . Ġ" a ._ 1 2 3 " Ġto Ġ" 1 2 3 " Ġand Ġ" a ._ 1 2 3 . int _" Ġto Ġ" int ", ĊĠĠĠĠ Ġ* Ġgenerate Ġa Ġfinal Ġroute , Ġe . g . Ġ" a / 1 2 3 / int " ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġfun Ġresolve ( package Mappings : ĠMap < String , ĠString >, Ġpkg : ĠString ): ĠString Ġ{ ĊĠĠĠĠĠĠĠ Ġ// ĠWe Ġhave Ġa Ġbunch Ġof Ġpotential Ġpackage Ġto ĠURL Ġmappings , Ġwhich Ġwork Ġon Ġfully Ġqualified Ġpackages , Ġso ĊĠĠĠĠĠĠĠ Ġ// Ġwe Ġprocess Ġeach Ġpart Ġof Ġthe Ġpackage Ġseparately , Ġgoing Ġback Ġto Ġfront . ĠAn Ġexample Ġwill Ġhelp Ġhere . ĊĠĠĠĠĠĠĠ Ġ// ĊĠĠĠĠĠĠĠ Ġ// ĠIf Ġwe Ġhad Ġthe Ġfollowing Ġmappings : ĊĠĠĠĠĠĠĠ Ġ// ĊĠĠĠĠĠĠĠ Ġ// ĠĠ Ġsite . pages . blogs ._ 2 0 2 1 ._ 1 2 Ġ-> Ġ 1 2 ĊĠĠĠĠĠĠĠ Ġ// ĠĠ Ġsite . pages . blogs ._ 2 0 2 1 Ġ-> Ġ 2 0 2 1 ĊĠĠĠĠĠĠĠ Ġ// ĊĠĠĠĠĠĠĠ Ġ// Ġthen Ġwe 'd Ġtransform Ġthe Ġfollowing Ġfully - qualified Ġpackage Ġby Ġfirst Ġbuilding Ġup Ġa Ġlist Ġof Ġparts Ġin ĊĠĠĠĠĠĠĠ Ġ// Ġreverse . ĠSo : ĊĠĠĠĠĠĠĠ Ġ// ĊĠĠĠĠĠĠĠ Ġ// ĠĠ Ġsite . pages . blogs ._ 2 0 2 1 ._ 1 2 . tutorials ĊĠĠĠĠĠĠĠ Ġ// ĊĠĠĠĠĠĠĠ Ġ// Ġis Ġprocessed Ġlike Ġso Ġ(* Ġmeans Ġa Ġmapping Ġmatch Ġwas Ġfound ): ĊĠĠĠĠĠĠĠ Ġ// ĊĠĠĠĠĠĠĠ Ġ// ĠĠ Ġsite . pages . blogs ._ 2 0 2 1 ._ 1 2 . tutorials Ġ---> Ġ[ tutorials ] ĊĠĠĠĠĠĠĠ Ġ// ĠĠ Ġsite . pages . blogs ._ 2 0 2 1 ._ 1 2 Ġ(* ) ĠĠĠĠĠĠ Ġ---> Ġ[ 1 2 , Ġtutorials ] ĊĠĠĠĠĠĠĠ Ġ// ĠĠ Ġsite . pages . blogs ._ 2 0 2 1 Ġ(* ) ĠĠĠĠĠĠĠĠĠĠ Ġ---> Ġ[ 2 0 2 1 , Ġ 1 2 , Ġtutorials ] ĊĠĠĠĠĠĠĠ Ġ// ĠĠ Ġsite . pages . blogs ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ---> Ġ[ blogs , Ġ 2 0 2 1 , Ġ 1 2 , Ġtutorials ] ĊĠĠĠĠĠĠĠ Ġ// ĠĠ Ġsite . pages ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ---> Ġ[ pages , Ġb logs , Ġ 2 0 2 1 , Ġ 1 2 , Ġtutorials ] ĊĠĠĠĠĠĠĠ Ġ// ĠĠ Ġsite ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ---> Ġ[ site , Ġpages , Ġb logs , Ġ 2 0 2 1 , Ġ 1 2 , Ġtutorials ] ĊĠĠĠĠĠĠĠ Ġ// ĊĠĠĠĠĠĠĠ Ġ// ĠAt Ġwhich Ġpoint , Ġwe 're Ġdone , Ġand Ġwe Ġcan Ġjust Ġjoin Ġthe Ġfinal Ġlist Ġtogether Ġto Ġa Ġpath : ĊĠĠĠĠĠĠĠ Ġ// ĊĠĠĠĠĠĠĠ Ġ// ĠĠ Ġsite / pages / blogs / 2 0 2 1 / 1 2 / tutorials ĊĠĠĠĠĠĠĠ Ġ@ Suppress (" NAME _ SH ADO WING ") Ġ// ĠMake Ġpkg Ġwritable ĊĠĠĠĠĠĠĠ Ġvar Ġpkg Ġ= Ġpkg ĊĠĠĠĠĠĠĠ Ġval Ġtransformed Parts Ġ= Ġmutable ListOf < String >() ĊĠĠĠĠĠĠĠ Ġwhile Ġ( pkg . isNotEmpty ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtransformed Parts . add ( 0 , Ġpackage Mappings [ pkg ] Ġ?: Ġpkg . substring After Last ('. ')) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġpkg Ġ= Ġ( pkg . take If Ġ{ Ġit . contains ('.') Ġ} Ġ?: Ġ""). substring Before Last ('.') ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġreturn Ġtransformed Parts . join ToString ("/") ĊĠĠĠ Ġ} Ċ }