/* Ċ Ġ* ĠCopyright ĠAmazon . com , ĠInc . Ġor Ġits Ġaffiliates . ĠAll ĠRights ĠReserved . Ċ Ġ* ĠSPDX - License - Identifier : ĠApache - 2 . 0 . Ċ Ġ*/ Ċ package Ġsoftware . amazon . smithy . swift . codegen . utils Ċ Ċ // Ġtaken Ġfrom Ġsmithy - kotlin , Ġwhich Ġwas Ġoriginally Ġtaken Ġfrom Ġjava Ġsdk : Ġhttps :// github . com / aw sl abs / smithy - kotlin / blob / main / smithy - kotlin - codegen / src / main / kotlin / software / amazon / smithy / kotlin / codegen / utils / Case Utils . kt Ċ fun ĠString . split On Word Bound aries (): ĠList < String > Ġ{ ĊĠĠĠ Ġ// Ġadapted Ġfrom ĠJava Ġv 2 ĠSDK ĠCode gen Naming Utils . split On Word Bound aries ĊĠĠĠ Ġvar Ġresult Ġ= Ġthis ĊĊĠĠĠ Ġ// Ġall Ġnon - al phanumeric Ġcharacters : Ġ" acm - success " -> Ġ" acm Ġsuccess " ĊĠĠĠ Ġresult Ġ= Ġresult . replace ( Regex ("[ ^ A - Za - z 0 - 9 + ] "), Ġ" Ġ") ĊĊĠĠĠ Ġ// Ġif Ġa Ġnumber Ġhas Ġa Ġstandalone Ġv Ġin Ġfront Ġof Ġit , Ġseparate Ġit Ġout ĊĠĠĠ Ġresult Ġ= Ġresult . replace ( Regex (" ([^ a - z ]{ 2 , }) v ([ 0 - 9 ]+ )"), Ġ"$ 1 Ġv $ 2 Ġ") Ġ// ĠTEST v 4 Ġ-> Ġ" TEST Ġv 4 Ġ" ĊĠĠĠĠĠĠĠ Ġ. replace ( Regex (" ([^ A - Z ]{ 2 , }) V ([ 0 - 9 ]+ )"), Ġ"$ 1 ĠV $ 2 Ġ") Ġ// ĠTest V 4 Ġ-> Ġ" Test ĠV 4 Ġ" ĊĊĠĠĠ Ġ// Ġadd Ġa Ġspace Ġbetween Ġcamel Case d Ġwords ĊĠĠĠ Ġresult Ġ= Ġresult . split ( Regex (" (? < =[ a - z ]) (? =[ A - Z ]( [ a - zA - Z ] |[ 0 - 9 ])) ")). join ToString ( separator Ġ= Ġ" Ġ") Ġ// ĠA cm Success Ġ-> Ġ// Ġ" Ac m ĠSuccess " ĊĊĠĠĠ Ġ// Ġadd Ġa Ġspace Ġafter Ġac ron y ms ĊĠĠĠ Ġresult Ġ= Ġresult . replace ( Regex (" ([ A - Z ]+) ([ A - Z ][ a - z ]) "), Ġ"$ 1 Ġ$ 2 ") Ġ// Ġ" AC MS uccess " Ġ-> Ġ" ACM ĠSuccess " ĊĊĠĠĠ Ġ// Ġadd Ġspace Ġafter Ġa Ġnumber Ġin Ġthe Ġmiddle Ġof Ġa Ġword ĊĠĠĠ Ġresult Ġ= Ġresult . replace ( Regex (" ([ 0 - 9 ]) ([ a - zA - Z ]) "), Ġ"$ 1 Ġ$ 2 ") Ġ// Ġ" s 3 ec 2 " Ġ-> Ġ" s 3 Ġec 2 " ĊĊĠĠĠ Ġ// Ġremove Ġextra Ġspaces Ġ- Ġmultiple Ġconsecutive Ġones Ġor Ġthose Ġand Ġthe Ġbeginning / end Ġof Ġwords ĊĠĠĠ Ġresult Ġ= Ġresult . replace ( Regex ("\\ s + "), Ġ" Ġ") Ġ// Ġ" Foo Ġ ĠBar " Ġ-> Ġ" Foo ĠBar " ĊĠĠĠĠĠĠĠ Ġ. trim () Ġ// Ġ" ĠFoo Ġ" Ġ-> Ġ" Foo " ĊĊĠĠĠ Ġreturn Ġresult . split (" Ġ") Ċ } Ċ Ċ fun ĠString . to Pas cal Case (): ĠString Ġ= Ġsplit On Word Bound aries (). join ToString ( separator Ġ= Ġ"") Ġ{ Ġit . lowercase (). replace First Char Ġ{ Ġc Ġ-> Ġc . uppercase Char () Ġ} Ġ} Ċ Ċ fun ĠString . to Camel Case (): ĠString Ġ= Ġto Pas cal Case (). replace First Char Ġ{ Ġc Ġ-> Ġc . lowercase Char () Ġ} Ċ Ċ // ĠSee Ġhttps :// aw sl abs . github . io / smithy / 1 . 0 / spec / aws / aws - core . html # using - sdk - service - id - for - client - naming Ċ fun ĠString . client Name (): ĠString Ġ= Ġto Pas cal Case () Ċ