/** Ċ Ġ* Ġ< s late _ header > Ċ Ġ* Ġurl : Ġwww . s late kit . com Ċ Ġ* Ġgit : Ġwww . github . com / code - helix / s late kit Ċ Ġ* Ġorg : Ġwww . code helix . co Ċ Ġ* Ġauthor : ĠK ish ore ĠRed dy Ċ Ġ* Ġcopyright : Ġ 2 0 1 6 ĠCode Hel ix ĠSolutions ĠInc . Ċ Ġ* Ġlicense : Ġrefer Ġto Ġwebsite Ġand / or Ġgithub Ċ Ġ* Ġabout : ĠA Ġtool - kit , Ġutility Ġlibrary Ġand Ġserver - backend Ċ Ġ* Ġman tra : ĠSimp licity Ġabove Ġall Ġelse Ċ Ġ* Ġ</ s late _ header > Ċ Ġ*/ Ċ Ċ package Ġs late kit . common . conf Ċ Ċ import Ġs late kit . common . io . Files Ċ import Ġs late kit . common .* Ċ import Ġs late kit . common . U ris . URI _ PREFIX _ FILE Ċ import Ġs late kit . common . U ris . URI _ PREFIX _ J ARS Ċ import Ġs late kit . common . U ris . URI _ PREFIX _ USER Ċ import Ġs late kit . common . db . Db Con Ċ import Ġs late kit . common . db . Db Con String Ċ import Ġs late kit . common . encrypt . Encrypt or Ċ import Ġs late kit . common . security . ApiKey Ċ import Ġs late kit . common . security . Api Login Ċ import Ġs late kit . common . security . Credentials Ċ import Ġjava . io . File Ċ import Ġjava . io . FileInputStream Ċ import Ġjava . util .* Ċ Ċ /** Ċ Ġ* ĠCreated Ġby Ġk ish orer ed dy Ġon Ġ 6 / 4 / 1 7 . Ċ Ġ*/ Ċ object ĠConf Funcs Ġ{ ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* Ġloads Ġthe Ġdb Ġinfo Ġfrom Ġthe Ġlocation Ġspecified ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* Ġ@ param ĠfileName Ġ: Ġthe Ġname Ġof Ġthe Ġfile Ġe . g Ġ" db - local . conf " ĊĠĠĠĠ Ġ* Ġ@ param Ġenc Ġ: Ġthe Ġencrypt or Ġfor Ġdecrypt ing Ġinfo Ġfrom Ġthe Ġsettings ĊĠĠĠĠ Ġ* Ġ@ param Ġsection Name Ġ: Ġthe Ġname Ġof Ġthe Ġsection Ġin Ġthe Ġfile Ġrepresenting Ġthe Ġsettings ĊĠĠĠĠ Ġ* Ġ@ return ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġfun Ġread Db Con ( ĊĠĠĠĠĠĠĠ ĠfileName : ĠString ? Ġ= Ġnull , ĊĠĠĠĠĠĠĠ Ġenc : ĠEncrypt or ? Ġ= Ġnull , ĊĠĠĠĠĠĠĠ Ġsection Name : ĠString ? Ġ= ĠCONFIG _ DEFAULT _ SECTION _ DB ĊĠĠĠ Ġ): ĠDb Con ? Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠ Ġload ( fileName , Ġenc ). db Con ( section Name Ġ?: ĠCONFIG _ DEFAULT _ SECTION _ DB ) ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* Ġloads Ġthe Ġlogin Ġinfo Ġfrom Ġthe Ġlocation Ġspecified ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* Ġ@ param ĠfileName Ġ: Ġthe Ġname Ġof Ġthe Ġfile Ġe . g Ġ" login . conf " ĊĠĠĠĠ Ġ* Ġ@ param Ġenc Ġ: Ġthe Ġencrypt or Ġfor Ġdecrypt ing Ġinfo Ġfrom Ġthe Ġsettings ĊĠĠĠĠ Ġ* Ġ@ param Ġsection Name Ġ: Ġthe Ġname Ġof Ġthe Ġsection Ġin Ġthe Ġfile Ġrepresenting Ġthe Ġsettings ĊĠĠĠĠ Ġ* Ġ@ return ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġfun Ġread Login ( ĊĠĠĠĠĠĠĠ ĠfileName : ĠString ? Ġ= Ġnull , ĊĠĠĠĠĠĠĠ Ġenc : ĠEncrypt or ? Ġ= Ġnull , ĊĠĠĠĠĠĠĠ Ġsection Name : ĠString ? Ġ= ĠCONFIG _ DEFAULT _ SECTION _ LOGIN ĊĠĠĠ Ġ): ĠCredentials ? Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠ Ġload ( fileName , Ġenc ). login ( section Name Ġ?: ĠCONFIG _ DEFAULT _ SECTION _ LOGIN ) ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* Ġloads Ġthe Ġapi Ġkey Ġinfo Ġfrom Ġthe Ġlocation Ġspecified ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* Ġ@ param ĠfileName Ġ: Ġthe Ġname Ġof Ġthe Ġfile Ġe . g Ġ" aws . conf " ĊĠĠĠĠ Ġ* Ġ@ param Ġsection Name Ġ: Ġthe Ġname Ġof Ġthe Ġsection Ġin Ġthe Ġfile Ġrepresenting Ġthe Ġsettings ĊĠĠĠĠ Ġ* Ġ@ param Ġenc Ġ: Ġthe Ġencrypt or Ġfor Ġdecrypt ing Ġinfo Ġfrom Ġthe Ġsettings ĊĠĠĠĠ Ġ* Ġ@ return ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġfun Ġread ApiKey ( ĊĠĠĠĠĠĠĠ ĠfileName : ĠString ? Ġ= Ġnull , ĊĠĠĠĠĠĠĠ Ġenc : ĠEncrypt or ? Ġ= Ġnull , ĊĠĠĠĠĠĠĠ Ġsection Name : ĠString ? Ġ= ĠCONFIG _ DEFAULT _ SECTION _ API ĊĠĠĠ Ġ): ĠApi Login ? Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠ Ġload ( fileName , Ġenc ). api Login ( section Name Ġ?: ĠCONFIG _ DEFAULT _ SECTION _ API ) ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠLoads Ġa Ġconfig Ġfile Ġusing Ġthe Ġsource / location Ġsupplied . ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* Ġ@ param ĠfileName Ġ: Ġname Ġof Ġfile Ġe . g . Ġemail . conf Ġ( Ġdefaults Ġto Ġ" env . conf " Ġ) ĊĠĠĠĠ Ġ* Ġ@ param Ġenc Ġ: Ġthe Ġencrypt or Ġfor Ġdecrypt ing Ġconfig Ġsettings . ĊĠĠĠĠ Ġ* Ġ@ return ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġfun Ġload ( fileName : ĠString ? Ġ= Ġnull , Ġenc : ĠEncrypt or ? Ġ= Ġnull ): ĠConfig Base Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠ ĠConfig ( fileName , Ġenc ) ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠLoads Ġa Ġconfig Ġfile Ġfrom Ġthe Ġresources Ġdirectory ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* Ġ@ param ĠfileName Ġ: Ġname Ġof Ġfile Ġe . g . Ġemail . conf Ġ( Ġdefaults Ġto Ġ" env . conf " Ġ) ĊĠĠĠĠ Ġ* Ġ@ param Ġenc Ġ: Ġthe Ġencrypt or Ġfor Ġdecrypt ing Ġconfig Ġsettings . ĊĠĠĠĠ Ġ* Ġ@ return ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġfun Ġload From J ars ( fileName : ĠString , Ġenc : ĠEncrypt or ? Ġ= Ġnull ): ĠConfig Base Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠ ĠConfig ( URI _ PREFIX _ J ARS Ġ+ ĠfileName , Ġenc ) ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠLoads Ġa Ġconfig Ġfile Ġfrom Ġthe Ġapp Ġconfig Ġdirectory Ġin Ġthe Ġuser Ġdirectory ĊĠĠĠĠ Ġ* Ġe . g . Ġuser / company / apps / app / conf ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* Ġ@ param ĠfileName Ġ: Ġname Ġof Ġfile Ġe . g . Ġemail . conf Ġ( Ġdefaults Ġto Ġ" env . conf " Ġ) ĊĠĠĠĠ Ġ* Ġ@ param Ġenc Ġ: Ġthe Ġencrypt or Ġfor Ġdecrypt ing Ġconfig Ġsettings . ĊĠĠĠĠ Ġ* Ġ@ return ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġfun Ġload From User Home ( fileName : ĠString , Ġenc : ĠEncrypt or ? Ġ= Ġnull ): ĠConfig Base Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠ ĠConfig ( URI _ PREFIX _ USER Ġ+ ĠfileName , Ġenc ) ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠLoads Ġa Ġconfig Ġfile Ġusing Ġthe Ġsource / location Ġsupplied . ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* Ġ@ param ĠfileName Ġ: Ġname Ġof Ġfile Ġe . g . Ġemail . conf Ġ( Ġdefaults Ġto Ġ" env . conf " Ġ) ĊĠĠĠĠ Ġ* Ġ@ param Ġenc Ġ: Ġthe Ġencrypt or Ġfor Ġdecrypt ing Ġconfig Ġsettings . ĊĠĠĠĠ Ġ* Ġ@ return ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġfun Ġload FromFile ( fileName : ĠString , Ġenc : ĠEncrypt or ? Ġ= Ġnull ): ĠConfig Base Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠ ĠConfig ( URI _ PREFIX _ FILE Ġ+ ĠfileName , Ġenc ) ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* Ġcreates Ġa Ġapi Ġcredentials Ġfile Ġin Ġthe Ġapp Ġdirectory Ġof Ġthe Ġuser Ġhome Ġpath ĊĠĠĠĠ Ġ* Ġe . g . Ġ{ rootDir }/{ name }. conf ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* Ġ@ param ĠappName Ġ: ĠThe Ġname Ġof Ġthe Ġapp Ġdirectory ĊĠĠĠĠ Ġ* Ġ@ return ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġfun Ġcreate ApiKey ( rootDir : ĠString , Ġname : ĠString , Ġcreds : ĠApi Key , Ġenc : ĠEncrypt or ?): ĠString Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcreate File ( rootDir , Ġname Ġ+ ĠCONFIG _ DEFAULT _ SUFFIX , Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcreate Section ( name , Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠlistOf ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġkey (" account ", Ġcreds . key , Ġenc ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġkey (" key ", Ġcreds . name , Ġenc ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġkey (" pass ", Ġcreds . roles , Ġenc ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ}) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ}) ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* Ġcreates Ġa Ġapi Ġcredentials Ġfile Ġin Ġthe Ġapp Ġdirectory Ġof Ġthe Ġuser Ġhome Ġpath ĊĠĠĠĠ Ġ* Ġe . g . Ġ{ rootDir }/{ name }. conf ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* Ġ@ param ĠappName Ġ: ĠThe Ġname Ġof Ġthe Ġapp Ġdirectory ĊĠĠĠĠ Ġ* Ġ@ return ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġfun Ġcreate Api Login ( rootDir : ĠString , Ġname : ĠString , Ġcreds : ĠApi Login , Ġenc : ĠEncrypt or ?): ĠString Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcreate File ( rootDir , Ġname Ġ+ ĠCONFIG _ DEFAULT _ SUFFIX , Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcreate Section ( name , Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠlistOf ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġkey (" account ", Ġcreds . account , Ġenc ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġkey (" key ", Ġcreds . key , Ġenc ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġkey (" pass ", Ġcreds . pass , Ġenc ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġkey (" env ", Ġcreds . env , Ġenc ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġkey (" tag ", Ġcreds . tag , Ġenc ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ}) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ}) ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* Ġcreates Ġa Ġlogin Ġfile Ġin Ġthe Ġapp Ġdirectory Ġof Ġthe Ġuser Ġhome Ġpath ĊĠĠĠĠ Ġ* Ġe . g . Ġ{ rootDir }/{ name }. conf ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* Ġ@ param ĠappName Ġ: ĠThe Ġname Ġof Ġthe Ġapp Ġdirectory ĊĠĠĠĠ Ġ* Ġ@ return ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġfun Ġcreate Login ( rootDir : ĠString , Ġname : ĠString , Ġcreds : ĠCredentials , Ġenc : ĠEncrypt or ?): ĠString Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcreate File ( rootDir , Ġname Ġ+ ĠCONFIG _ DEFAULT _ SUFFIX , Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcreate Section ( name , Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠlistOf ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġkey (" id ", Ġcreds . id , Ġenc ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġkey (" name ", Ġcreds . name , Ġenc ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġkey (" email ", Ġcreds . email , Ġenc ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġkey (" region ", Ġcreds . region , Ġenc ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġkey (" key ", Ġcreds . key , Ġenc ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġkey (" env ", Ġcreds . env , Ġenc ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ}) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ}) ĊĊĠĠĠ Ġfun Ġcreate Db Con ( rootDir : ĠString , Ġname : ĠString , Ġcon : ĠDb Con String , Ġenc : ĠEncrypt or ?): ĠString Ġ= ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġcreate File ( rootDir , Ġname Ġ+ ĠCONFIG _ DEFAULT _ SUFFIX , Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcreate Section ( name , Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠlistOf ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġkey (" driver ", Ġcon . driver , Ġnull ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġkey (" url ", Ġcon . url , Ġenc ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġkey (" user ", Ġcon . user , Ġenc ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġkey (" ps wd ", Ġcon . password , Ġenc ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ}) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ}) ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* Ġloads Ġthe Ġconfig Ġwith Ġprimary Ġand Ġthe Ġparent ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* Ġ@ return ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġfun Ġload With Fallback Config ( ĊĠĠĠĠĠĠĠ ĠfileName : ĠString , ĊĠĠĠĠĠĠĠ Ġparent FilePath : ĠString , ĊĠĠĠĠĠĠĠ Ġenc : ĠEncrypt or ? Ġ= Ġnull ĊĠĠĠ Ġ): ĠConfig Base Ġ{ ĊĊĠĠĠĠĠĠĠ Ġval Ġconf Ġ= ĠConfig Multi ( fileName , Ġparent FilePath , Ġenc ) ĊĠĠĠĠĠĠĠ Ġreturn Ġconf ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠLoads Ġthe Ġtypes afe Ġconfig Ġfrom Ġthe Ġfilename Ġcan Ġbe Ġprefixed Ġwith Ġa Ġuri Ġto Ġindicate Ġlocation , ĊĠĠĠĠ Ġ* Ġsuch Ġas : ĊĠĠĠĠ Ġ* Ġ 1 . Ġ" j ars ://" Ġto Ġindicate Ġloading Ġfrom Ġresources Ġdirectory Ġinside Ġjar ĊĠĠĠĠ Ġ* Ġ 2 . Ġ" user ://" Ġto Ġindicate Ġloading Ġfrom Ġuser . home Ġdirectory ĊĠĠĠĠ Ġ* Ġ 3 . Ġ" file ://" Ġto Ġindicate Ġloading Ġfrom Ġfile Ġsystem ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* Ġe . g . ĊĠĠĠĠ Ġ* Ġ Ġ- Ġj ars :// env . qa . conf ĊĠĠĠĠ Ġ* Ġ Ġ- Ġuser ://${ company . dir }/${ group . dir }/${ app . id }/ conf / env . qa . conf ĊĠĠĠĠ Ġ* Ġ Ġ- Ġfile :// c :/ s late kit /${ company . dir }/${ group . dir }/${ app . id }/ conf / env . qa . conf ĊĠĠĠĠ Ġ* Ġ Ġ- Ġfile :// ./ conf / env . qa . conf ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* Ġ@ param ĠfileName Ġ: Ġname Ġof Ġfile Ġe . g . Ġemail . conf ĊĠĠĠĠ Ġ* Ġ@ return ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġfun Ġload Properties From ( fileName : ĠString ?): ĠProperties Ġ{ ĊĊĠĠĠĠĠĠĠ Ġ// ĠNo Ġname Ġsupplied Ġ( Ġdefault Ġto Ġapplication . conf Ġ) ĊĠĠĠĠĠĠĠ Ġval Ġconfig Ġ= ĠfileName ?. let Ġ{ Ġname Ġ-> ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠCheck Ġfor Ġuri Ġ: Ġ( Ġ" jar ://" Ġ| Ġ" user ://" Ġ| Ġ" file ://" Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġparts Ġ= Ġname . sub String Pair (" :// ") ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġparts ?. let Ġ{ Ġ( uri , Ġpath ) Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġwhen Ġ( uri ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠU ris . URI _ PREFIX _ J ARS Ġ-> Ġload Properties From Resources ( path ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠU ris . URI _ PREFIX _ USER Ġ-> Ġload Properties ( File ( System . getProperty (" user . home "), Ġpath ). absolute Path ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠU ris . URI _ PREFIX _ CONF Ġ-> Ġload Properties ( File (" conf ", Ġpath ). absolute Path ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠU ris . URI _ PREFIX _ FILE Ġ-> Ġload Properties ( File ( path ). absolute Path ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġ-> Ġload Properties From Resources ( name ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġ?: Ġload Properties From Resources ( name ) ĊĠĠĠĠĠĠĠ Ġ} Ġ?: Ġload Properties From Resources ( CONFIG _ DEFAULT _ PROPERTIES ) ĊĠĠĠĠĠĠĠ Ġreturn Ġconfig ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġload Properties From Resources ( path : ĠString ): ĠProperties Ġ{ ĊĠĠĠĠĠĠĠ Ġ// ĠThis Ġis Ġhere Ġto Ġdebug Ġloading Ġapp Ġconf ĊĠĠĠĠĠĠĠ Ġval Ġfile Ġ= Ġthis . java Class . getResource ("/ " Ġ+ Ġpath ). file ĊĠĠĠĠĠĠĠ Ġval Ġinput Ġ= ĠFileInputStream ( file ) ĊĠĠĠĠĠĠĠ Ġval Ġconf Ġ= ĠProperties () ĊĠĠĠĠĠĠĠ Ġconf . load ( input ) ĊĠĠĠĠĠĠĠ Ġreturn Ġconf ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġload Properties ( path : ĠString ): ĠProperties Ġ{ ĊĠĠĠĠĠĠĠ Ġ// ĠThis Ġis Ġhere Ġto Ġdebug Ġloading Ġapp Ġconf ĊĠĠĠĠĠĠĠ Ġval Ġinput Ġ= ĠFileInputStream ( path ) ĊĠĠĠĠĠĠĠ Ġval Ġconf Ġ= ĠProperties () ĊĠĠĠĠĠĠĠ Ġconf . load ( input ) ĊĠĠĠĠĠĠĠ Ġreturn Ġconf ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* Ġcreates Ġa Ġfolder Ġinside Ġthe Ġapp Ġdirectory Ġof Ġthe Ġuser Ġhome Ġpath ĊĠĠĠĠ Ġ* Ġe . g . Ġ{ user . home }/{ appName } ĊĠĠĠĠ Ġ* ĠĠĠĠĠ Ġc :/ users / k re ddy / myapp / logs ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* Ġ@ param ĠappName Ġ: ĠThe Ġname Ġof Ġthe Ġapp Ġdirectory ĊĠĠĠĠ Ġ* Ġ@ return ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġfun Ġcreate File ( appName : ĠString , Ġname : ĠString , Ġcallback : Ġ() Ġ-> ĠString ): ĠString Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġuser Home Ġ= ĠSystem . getProperty (" user . home ") ĊĠĠĠĠĠĠĠ Ġrequire (! user Home . isNull OrEmpty ()) Ġ{ Ġ" Unable Ġto Ġload Ġuser Ġdirectory Ġfrom Ġ' user . home ' Ġsystem Ġproperty " Ġ} ĊĊĠĠĠĠĠĠĠ ĠFiles . mk User Dir ( appName ) ĊĊĠĠĠĠĠĠĠ Ġ// Ġ{ user }/{ app /{ file } ĊĠĠĠĠĠĠĠ Ġval Ġpath Ġ= Ġuser Home Ġ+ ĠFile . separator Ġ+ ĠappName Ġ+ ĠFile . separator Ġ+ Ġname ĊĠĠĠĠĠĠĠ Ġval Ġfile Ġ= ĠFile ( path ) ĊĠĠĠĠĠĠĠ Ġval Ġcontent Ġ= Ġcallback () ĊĠĠĠĠĠĠĠ Ġfile . write Text ( content ) ĊĠĠĠĠĠĠĠ Ġreturn Ġfile . absolute Path ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġcreate Section ( name : ĠString , Ġkeys : Ġ() Ġ-> ĠList < Pair < String , ĠString >> ): ĠString Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġcontent Ġ= Ġkeys (). fold ("", Ġ{ Ġacc , Ġc Ġ-> Ġacc Ġ+ Ġname Ġ+ Ġ"." Ġ+ Ġc . first Ġ+ Ġ" Ġ= Ġ" Ġ+ Ġc . second Ġ+ Ġnewline Ġ}) Ġ+ Ġnewline ĊĠĠĠĠĠĠĠ Ġreturn Ġcontent ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġkey ( name : ĠString , Ġvalue : ĠString , Ġenc : ĠEncrypt or ?): ĠPair < String , ĠString > Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn ĠPair ( name , Ġenc ?. encrypt ( value ) Ġ?: Ġvalue ) ĊĠĠĠ Ġ} Ċ } Ċ