/* Ċ Ġ* ĠCopyright Ġ 2 0 1 2 - 2 0 1 8 Ġthe Ġoriginal Ġauthor Ġor Ġauthors . Ċ Ġ* Ċ Ġ* Ġ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 . nex ial . core Ċ Ċ import Ġorg . apache . commons . lang 3 . Boolean Utils Ċ import Ġorg . apache . commons . lang 3 . StringUtils Ċ import Ġorg . apache . commons . lang 3 . math . Number Utils Ċ import Ġkotlin . streams . toList Ċ Ċ /** Ċ Ġ* Ġconstants Ġrepo . Ġto Ġmanage / track Ġsystem Ġvariables Ċ Ġ*/ Ċ object ĠSystem Variables Ġ{ ĊĊĠĠĠ Ġ// Ġglobal Ġdefaults , Ġto Ġbe Ġregistered Ġfrom Ġthe Ġdefinition Ġof Ġeach Ġdefault Ġvalues ĊĠĠĠ Ġprivate Ġval ĠSY SV ARS Ġ= Ġmutable Map Of < String , ĠAny ?> () ĊĠĠĠ Ġprivate Ġval ĠSY SV ARG RO UP S Ġ= Ġmutable ListOf < String >() ĊĊĠĠĠ Ġ@ Jvm Static ĊĠĠĠ Ġfun Ġregister Sys Var ( name : ĠString ): ĠString Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( StringUtils . isNotBlank ( name )) ĠSY SV ARS [ name ] Ġ= Ġnull ĊĠĠĠĠĠĠĠ Ġreturn Ġname ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Jvm Static ĊĠĠĠ Ġfun Ġ< T > Ġregister Sys Var ( name : ĠString , Ġvalue : ĠT ): ĠString Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( StringUtils . isNotBlank ( name )) ĠSY SV ARS [ name ] Ġ= Ġvalue ĊĠĠĠĠĠĠĠ Ġreturn Ġname ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Jvm Static ĊĠĠĠ Ġfun Ġregister Sys Var Group ( group : ĠString ): ĠString Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( StringUtils . isNotBlank ( group ) Ġ&& Ġ! SY SV ARG RO UP S . contains ( group )) ĠSY SV ARG RO UP S . add ( group ) ĊĠĠĠĠĠĠĠ Ġreturn Ġgroup ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Jvm Static ĊĠĠĠ Ġfun ĠgetDefault ( name : ĠString ): ĠString ? Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( SY SV ARS . containsKey ( name )) Ġif Ġ( SY SV ARS [ name ] Ġ== Ġnull ) Ġnull Ġelse ĠSY SV ARS [ name ]. toString () Ġelse Ġnull ĊĊĠĠĠ Ġ@ Jvm Static ĊĠĠĠ Ġfun ĠgetDefault Bool ( name : ĠString ): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġrequire ( SY SV ARS . containsKey ( name )) Ġ{ Ġ" No Ġdefault Ġconfigured Ġfor Ġ'$ name '" Ġ} ĊĠĠĠĠĠĠĠ Ġreturn ĠBoolean Utils . to Boolean ( SY SV ARS [ name ]. toString ()) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Jvm Static ĊĠĠĠ Ġfun ĠgetDefault Int ( name : ĠString ): ĠInt Ġ{ ĊĠĠĠĠĠĠĠ Ġrequire ( SY SV ARS . containsKey ( name )) Ġ{ Ġ" No Ġdefault Ġvalue Ġconfigured Ġfor Ġ'$ name '" Ġ} ĊĠĠĠĠĠĠĠ Ġreturn ĠNumber Utils . toInt ( SY SV ARS [ name ]. toString ()) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Jvm Static ĊĠĠĠ Ġfun ĠgetDefault Long ( name : ĠString ): ĠLong Ġ{ ĊĠĠĠĠĠĠĠ Ġrequire ( SY SV ARS . containsKey ( name )) Ġ{ Ġ" No Ġdefault Ġconfigured Ġfor Ġ'$ name '" Ġ} ĊĠĠĠĠĠĠĠ Ġreturn ĠNumber Utils . to Long ( SY SV ARS [ name ]. toString ()) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Jvm Static ĊĠĠĠ Ġfun ĠgetDefault Float ( name : ĠString ): ĠDouble Ġ{ ĊĠĠĠĠĠĠĠ Ġrequire ( SY SV ARS . containsKey ( name )) Ġ{ Ġ" No Ġdefault Ġconfigured Ġfor Ġ'$ name '" Ġ} ĊĠĠĠĠĠĠĠ Ġreturn ĠNumber Utils . toFloat ( SY SV ARS [ name ]. toString ()). toDouble () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Jvm Static ĊĠĠĠ Ġfun ĠgetDefault Double ( name : ĠString ): ĠDouble Ġ{ ĊĠĠĠĠĠĠĠ Ġrequire ( SY SV ARS . containsKey ( name )) Ġ{ Ġ" No Ġdefault Ġconfigured Ġfor Ġ'$ name '" Ġ} ĊĠĠĠĠĠĠĠ Ġreturn ĠNumber Utils . toDouble ( SY SV ARS [ name ]. toString ()) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Jvm Static ĊĠĠĠ Ġfun Ġis Registered Sys Var ( name : ĠString ): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( SY SV ARS . containsKey ( name )) Ġreturn Ġtrue ĊĠĠĠĠĠĠĠ Ġfor Ġ( group Ġin ĠSY SV ARG RO UP S ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( StringUtils . startsWith ( name , Ġgroup )) Ġreturn Ġtrue ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġreturn Ġfalse ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Jvm Static ĊĠĠĠ Ġfun Ġlist Sys Vars (): ĠList < String > Ġ= ĠSY SV ARS . keys . stream (). sorted (). toList () Ċ } Ċ