/* Ċ Ġ* ĠCopyright Ġ( C ) Ġ 2 0 2 1 ĠDe ut sche ĠTele kom ĠAG Ċ Ġ* Ċ Ġ* Ġ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 Ċ Ġ* Ċ Ġ* ĠĠĠĠ Ġhttps :// 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 . Ċ Ġ* Ċ Ġ* ĠSPDX - License - Identifier : ĠApache - 2 . 0 Ċ Ġ* ĠLicense - Filename : ĠLICENSE Ċ Ġ*/ Ċ Ċ package Ġorg . oss review toolkit . osc ake Ċ Ċ import Ġjava . io . File Ċ import Ġjava . io . IOException Ċ Ċ import Ġkotlin . reflect . full . member Properties Ċ Ċ import Ġorg . oss review toolkit . model . config . OSC ake Configuration Ċ import Ġorg . oss review toolkit . reporter . report ers . os Cake Reporter Model . Config Block Info Ċ import Ġorg . oss review toolkit . reporter . report ers . os Cake Reporter Model . OSC ake Root Ċ Ċ const Ġval ĠCUR ATION _ DEFAULT _ LIC EN SING Ġ= Ġ"< DEFAULT _ LIC EN SING >" Ċ const Ġval ĠCUR ATION _ LOGGER Ġ= Ġ" OSC ake Cur ator " Ċ const Ġval ĠCUR ATION _ FILE _ SUFFIX Ġ= Ġ"_ cur ated " Ċ const Ġval ĠCUR ATION _ AUTHOR Ġ= Ġ" OSC ake - Cur ator " Ċ const Ġval ĠCUR ATION _ VERSION Ġ= Ġ" 0 . 1 " Ċ Ċ const Ġval ĠMER GER _ LOGGER Ġ= Ġ" OSC ake Mer ger " Ċ const Ġval ĠMER GER _ VERSION Ġ= Ġ" 0 . 1 " Ċ const Ġval ĠMER GER _ AUTHOR Ġ= Ġ" OSC ake - Mer ger " Ċ Ċ const Ġval ĠD ED UP LIC ATION _ LOGGER Ġ= Ġ" OSC ake Ded uplic ator " Ċ const Ġval ĠD ED UP LIC ATION _ FILE _ SUFFIX Ġ= Ġ"_ ded up " Ċ const Ġval ĠD ED UP LIC ATION _ AUTHOR Ġ= Ġ" OSC ake - Ded uplic ator " Ċ const Ġval ĠD ED UP LIC ATION _ VERSION Ġ= Ġ" 0 . 1 " Ċ Ċ /** Ċ Ġ* ĠThe Ġ[ package Modifier Map ] Ġis Ġa ĠHash map Ġwhich Ġdefines Ġthe Ġallowed Ġpackage Modifier Ġ(= key ) Ġand Ġtheir Ġassociated Ċ Ġ* Ġmodifiers Ġ- Ġthe Ġfirst Ġset Ġcontains Ġmodifiers Ġfor Ġlicenses , Ġsecond Ġset Ġfor Ġcopyright s Ċ Ġ* ĠImport ant : Ġthe Ġsequence Ġof Ġitems Ġin Ġthe Ġsets Ġdefines Ġalso Ġthe Ġsequence Ġof Ġcur ations Ċ Ġ* Ġe . g .: Ġfor Ġpackage Modifier : Ġ" update " Ġthe Ġsequence Ġof Ġcur ations Ġis Ġ" delete - all ", Ġthan Ġ" delete " Ġand Ġfinally Ġ" insert " Ċ Ġ*/ Ċ val Ġpackage Modifier Map Ġ= Ġhash Map Of (" delete " Ġto ĠlistOf ( set Of (), Ġset Of ()), ĊĠĠĠ Ġ" insert " Ġto ĠlistOf ( set Of (" insert "), Ġset Of (" insert ")), ĊĠĠĠ Ġ" update " Ġto ĠlistOf ( set Of (" delete ", Ġ" insert ", Ġ" update "), Ġset Of (" delete - all ", Ġ" delete ", Ġ" insert ")) Ċ ) Ċ Ċ /** Ċ Ġ* Ġ[ order License By Modifier ] Ġdefines Ġthe Ġsort Ġorder Ġof Ġcur ations Ġfor Ġlicenses . Ċ Ġ*/ Ċ val Ġorder License By Modifier Ġ= Ġpackage Modifier Map . map Ġ{ Ġit . key Ġto Ġpackage Modifier Map [ it . key ]?. get ( 0 )?. Ċ with Index ()?. associate Ġ{ Ġa Ġ-> Ġa . value Ġto Ġa . index Ġ} Ġ}. toMap () Ċ Ċ /** Ċ Ġ* Ġ[ order Copyright By Modifier ] Ġdefines Ġthe Ġsort Ġorder Ġof Ġcur ations Ġfor Ġcopyright s . Ċ Ġ*/ Ċ val Ġorder Copyright By Modifier Ġ= Ġpackage Modifier Map . map Ġ{ Ġit . key Ġto Ġpackage Modifier Map [ it . key ]?. get ( 1 )?. Ċ with Index ()?. associate Ġ{ Ġa Ġ-> Ġa . value Ġto Ġa . index Ġ} Ġ}. toMap () Ċ Ċ /** Ċ Ġ* Ġchecks Ġif Ġthe Ġvalue Ġof Ġthe Ġoption Name Ġin Ġmap Ġis Ġa Ġvalid Ġfile Ċ Ġ*/ Ċ fun ĠisValid Directory ( dir Name : ĠString ?): ĠBoolean Ġ= ĊĠĠĠ Ġif Ġ( dir Name Ġ!= Ġnull ) ĠFile ( dir Name ). exists () Ġ&& ĠFile ( dir Name ). isDirectory Ġelse Ġfalse Ċ Ċ object ĠO SC ake Application Ġ{ ĊĠĠ Ġval ĠALL Ġby Ġlazy Ġ{ ĠlistOf (" cur ator ", Ġ" mer ger ", Ġ" ded uplic ator ") Ġ} Ċ } Ċ Ċ /** Ċ Ġ* ĠChecks Ġif Ġthe Ġ[ path ] Ġcontains Ġinvalid Ġcharacters Ġfor Ġfile Ġnames Ċ Ġ*/ Ċ @ Suppress (" Sw allowed Exception ") Ċ fun ĠisValid FilePath Name ( path : ĠString ): ĠBoolean Ġ= ĊĠĠĠ Ġtry Ġ{ ĊĠĠĠĠĠĠĠ ĠFile ( path ). canonical Path ĊĠĠĠĠĠĠĠ Ġtrue ĊĠĠĠ Ġ} Ġcatch Ġ( e : ĠIOException ) Ġ{ ĊĠĠĠĠĠĠĠ Ġfalse ĊĠĠĠ Ġ} Ċ Ċ /** Ċ Ġ* ĠCreates Ġconfig Ġinformation Ġfor Ġo scc - config - section Ġ( ded uplic ator , Ġcur ator ); Ġevery Ġentry Ġin Ġconfig Ġfile Ġis Ċ Ġ* Ġtransferred Ġto Ġoutput Ġformat . ĠIf Ġsome Ġparameters Ġare Ġadded Ġto Ġthe Ġconfig , Ġthe Ġentries Ġwill Ġbe Ġautomatically Ċ Ġ* Ġtransferred Ċ Ġ*/ Ċ fun Ġadd Params To Config ( config : ĠO SC ake Configuration , Ġosc : ĠO SC ake Root , Ġcommand Line Params : ĠMap < String , ĠString >, ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġclazz : ĠAny ) Ġ{ ĊĠĠĠ Ġval Ġfields Ġ= ĠO SC ake Configuration :: class . member Properties ĊĠĠĠ Ġfields . forEach Ġ{ Ġmember Ġ-> ĊĠĠĠĠĠĠĠ Ġwhen Ġ( val Ġv Ġ= Ġmember . get ( config )) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġis Ġorg . oss review toolkit . model . config . OSC ake Cur ator Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( clazz Ġis ĠO SC ake Cur ator ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġparam Map Ġ= Ġmutable Map Of < String , ĠString >() ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġorg . oss review toolkit . model . config . OSC ake Cur ator :: class . member Properties . forEach Ġ{ Ġmember 2 Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġparam Map [ member 2 . name ] Ġ= Ġmember 2 . get ( v ). toString () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( osc . project . config Ġ!= Ġnull ) Ġosc . project . config ?. cur ator Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠConfig Block Info ( command Line Params , Ġparam Map ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġis Ġorg . oss review toolkit . model . config . OSC ake Ded uplic ator Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( clazz Ġis ĠO SC ake Ded uplic ator ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġparam Map Ġ= Ġmutable Map Of < String , ĠString >() ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġorg . oss review toolkit . model . config . OSC ake Ded uplic ator :: class . member Properties . forEach Ġ{ Ġmember 2 Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġparam Map [ member 2 . name ] Ġ= Ġmember 2 . get ( v ). toString () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( osc . project . config Ġ!= Ġnull ) Ġosc . project . config ?. ded uplic ator Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠConfig Block Info ( command Line Params , Ġparam Map ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } Ċ