package Ġcc . ch ord flower . template . basic . application . utils Ċ Ċ import Ġcc . ch ord flower . template . basic . Template Modules Ċ import Ġjava . nio . file . Path Ċ import Ġjava . nio . file . Paths Ċ import Ġjava . util .* Ċ Ċ @ Suppress (" unused ") Ċ interface ĠEnv Path Ġ{ ĊĠ Ġenum Ġclass ĠEnv Paths ( override Ġval ĠuserData Path : ĠPath , Ġoverride Ġval Ġuser ConfigPath : ĠPath , Ġoverride Ġval Ġuser Cache Path : ĠPath , Ġoverride Ġval Ġuser Log Path : ĠPath , Ġoverride Ġval Ġsystem Data Path : ĠPath , Ġoverride Ġval Ġsystem ConfigPath : ĠPath , Ġoverride Ġval Ġsystem Cache Path : ĠPath , Ġoverride Ġval Ġsystem Log Path : ĠPath ) Ġ: ĠEnv Path Ġ{ ĊĠĠĠ ĠWINDO WS ( ĊĠĠĠĠĠ ĠuserData Path Ġ= ĠPaths . get ( Optional . of Nullable < String >( System . getenv (" LOCAL APP DATA ")). orElse ( Paths . get ( System . getenv (" USER PROFILE "), Ġ" AppData ", Ġ" Local "). to AbsolutePath (). normalize (). toString ()), ĠTemplate Modules . APP _ NAME , Ġ" Data "), ĊĠĠĠĠĠ Ġuser ConfigPath Ġ= ĠPaths . get ( Optional . of Nullable < String >( System . getenv (" APP DATA ")). orElse ( Paths . get ( System . getenv (" USER PROFILE "), Ġ" AppData ", Ġ" Roaming "). to AbsolutePath (). normalize (). toString ()), ĠTemplate Modules . APP _ NAME , Ġ" Config "), ĊĠĠĠĠĠ Ġuser Cache Path Ġ= ĠPaths . get ( Optional . of Nullable < String >( System . getenv (" LOCAL APP DATA ")). orElse ( Paths . get ( System . getenv (" USER PROFILE "), Ġ" AppData ", Ġ" Local "). to AbsolutePath (). normalize (). toString ()), ĠTemplate Modules . APP _ NAME , Ġ" Cache "), ĊĠĠĠĠĠ Ġuser Log Path Ġ= ĠPaths . get ( Optional . of Nullable < String >( System . getenv (" LOCAL APP DATA ")). orElse ( Paths . get ( System . getenv (" USER PROFILE "), Ġ" AppData ", Ġ" Local "). to AbsolutePath (). normalize (). toString ()), ĠTemplate Modules . APP _ NAME , Ġ" Log "), ĊĠĠĠĠĠ Ġsystem Data Path Ġ= ĠPaths . get ( System . getenv (" Program Data "), ĠTemplate Modules . APP _ NAME , Ġ" Data "), ĊĠĠĠĠĠ Ġsystem ConfigPath Ġ= ĠPaths . get ( System . getenv (" Program Data "), ĠTemplate Modules . APP _ NAME , Ġ" Config "), ĊĠĠĠĠĠ Ġsystem Cache Path Ġ= ĠPaths . get ( System . getenv (" Program Data "), ĠTemplate Modules . APP _ NAME , Ġ" Cache "), ĊĠĠĠĠĠ Ġsystem Log Path Ġ= ĠPaths . get ( System . getenv (" Program Data "), ĠTemplate Modules . APP _ NAME , Ġ" Log ")), ĊĠĠĠ ĠLIN UX ( ĊĠĠĠĠĠ ĠuserData Path Ġ= ĠPaths . get ( Optional . of Nullable < String >( System . getenv (" X DG _ DATA _ HOME ")). orElse ( Paths . get ( System . getProperty (" user . home "), Ġ". local ", Ġ" share "). to AbsolutePath (). normalize (). toString ()), ĠTemplate Modules . APP _ NAME ), ĊĠĠĠĠĠ Ġuser ConfigPath Ġ= ĠPaths . get ( Optional . of Nullable < String >( System . getenv (" X DG _ CONFIG _ HOME ")). orElse ( Paths . get ( System . getProperty (" user . home "), Ġ". config "). to AbsolutePath (). normalize (). toString ()), ĠTemplate Modules . APP _ NAME ), ĊĠĠĠĠĠ Ġuser Cache Path Ġ= ĠPaths . get ( Optional . of Nullable < String >( System . getenv (" X DG _ CACHE _ HOME ")). orElse ( Paths . get ( System . getProperty (" user . home "), Ġ". cache "). to AbsolutePath (). normalize (). toString ()), ĠTemplate Modules . APP _ NAME ), ĊĠĠĠĠĠ Ġuser Log Path Ġ= ĠPaths . get ( Optional . of Nullable < String >( System . getenv (" X DG _ STATE _ HOME ")). orElse ( Paths . get ( System . getProperty (" user . home "), Ġ". local ", Ġ" state "). to AbsolutePath (). normalize (). toString ()), ĠTemplate Modules . APP _ NAME ), ĊĠĠĠĠĠ Ġsystem Data Path Ġ= ĠPaths . get ("/", Ġ" usr ", Ġ" share ", ĠTemplate Modules . APP _ NAME ), ĊĠĠĠĠĠ Ġsystem ConfigPath Ġ= ĠPaths . get ("/", Ġ" etc ", ĠTemplate Modules . APP _ NAME ), ĊĠĠĠĠĠ Ġsystem Cache Path Ġ= ĠPaths . get ("/", Ġ" var ", Ġ" cache ", ĠTemplate Modules . APP _ NAME ), ĊĠĠĠĠĠ Ġsystem Log Path Ġ= ĠPaths . get ("/", Ġ" var ", Ġ" log ", ĠTemplate Modules . APP _ NAME )), ĊĠĠĠ ĠMAC OS ( ĊĠĠĠĠĠ ĠuserData Path Ġ= ĠPaths . get ( Paths . get ( System . getProperty (" user . home "), Ġ" Library "). to AbsolutePath (). normalize (). toString (), Ġ" Application ĠSupport ", ĠTemplate Modules . APP _ NAME ), ĊĠĠĠĠĠ Ġuser ConfigPath Ġ= ĠPaths . get ( Paths . get ( System . getProperty (" user . home "), Ġ" Library "). to AbsolutePath (). normalize (). toString (), Ġ" Preferences ", ĠTemplate Modules . APP _ NAME ), ĊĠĠĠĠĠ Ġuser Cache Path Ġ= ĠPaths . get ( Paths . get ( System . getProperty (" user . home "), Ġ" Library "). to AbsolutePath (). normalize (). toString (), Ġ" Caches ", ĠTemplate Modules . APP _ NAME ), ĊĠĠĠĠĠ Ġuser Log Path Ġ= ĠPaths . get ( Paths . get ( System . getProperty (" user . home "), Ġ" Library "). to AbsolutePath (). normalize (). toString (), Ġ" Logs ", ĠTemplate Modules . APP _ NAME ), ĊĠĠĠĠĠ Ġsystem Data Path Ġ= ĠPaths . get ("/", Ġ" Library ", Ġ" Application ĠSupport ", ĠTemplate Modules . APP _ NAME ), ĊĠĠĠĠĠ Ġsystem ConfigPath Ġ= ĠPaths . get ("/", Ġ" Library ", Ġ" Preferences ", ĠTemplate Modules . APP _ NAME ), ĊĠĠĠĠĠ Ġsystem Cache Path Ġ= ĠPaths . get ("/", Ġ" Library ", Ġ" Caches ", ĠTemplate Modules . APP _ NAME ), ĊĠĠĠĠĠ Ġsystem Log Path Ġ= ĠPaths . get ("/", Ġ" Library ", Ġ" Logs ", ĠTemplate Modules . APP _ NAME ), ĊĠĠĠ Ġ); ĊĠ Ġ} ĊĊĠ Ġ/** ĊĠĠ Ġ* ĠReturns Ġa Ġpath Ġused Ġfor Ġpl acing Ġgeneral Ġapplication Ġcache Ġdata . ĊĠĠ Ġ* ĊĠĠ Ġ* Ġ@ return ĠA Ġpath Ġused Ġfor Ġpl acing Ġgeneral Ġapplication Ġcache Ġdata . ĊĠĠ Ġ*/ ĊĠ Ġval Ġsystem Cache Path : ĠPath ĊĊĠ Ġ/** ĊĠĠ Ġ* ĠReturns Ġa Ġpath Ġused Ġfor Ġpl acing Ġgeneral Ġapplication Ġconfiguration Ġdata . ĊĠĠ Ġ* ĊĠĠ Ġ* Ġ@ return ĠA Ġpath Ġused Ġfor Ġpl acing Ġgeneral Ġapplication Ġconfiguration Ġdata . ĊĠĠ Ġ*/ ĊĠ Ġval Ġsystem ConfigPath : ĠPath ĊĊĠ Ġ/** ĊĠĠ Ġ* ĠReturns Ġa Ġpath Ġused Ġfor Ġpl acing Ġgeneral Ġapplication Ġdata . ĊĠĠ Ġ* ĊĠĠ Ġ* Ġ@ return ĠA Ġpath Ġused Ġfor Ġpl acing Ġgeneral Ġapplication Ġdata ĊĠĠ Ġ*/ ĊĠ Ġval Ġsystem Data Path : ĠPath ĊĊĠ Ġ/** ĊĠĠ Ġ* ĠReturns Ġa Ġpath Ġused Ġfor Ġpl acing Ġgeneral Ġapplication Ġlogs . ĊĠĠ Ġ* ĊĠĠ Ġ* Ġ@ return ĠA Ġpath Ġused Ġfor Ġpl acing Ġgeneral Ġapplication Ġlogs . ĊĠĠ Ġ*/ ĊĠ Ġval Ġsystem Log Path : ĠPath ĊĊĠ Ġ/** ĊĠĠ Ġ* ĠReturns Ġa Ġpath Ġused Ġfor Ġpl acing Ġuser Ġspecific Ġapplication Ġcache Ġdata . ĊĠĠ Ġ* ĊĠĠ Ġ* Ġ@ return ĠA Ġpath Ġused Ġfor Ġpl acing Ġuser Ġspecific Ġapplication Ġcache Ġdata . ĊĠĠ Ġ*/ ĊĠ Ġval Ġuser Cache Path : ĠPath ĊĊĠ Ġ/** ĊĠĠ Ġ* ĠReturns Ġa Ġpath Ġused Ġfor Ġpl acing Ġuser Ġspecific Ġapplication Ġconfiguration Ġdata . ĊĠĠ Ġ* ĊĠĠ Ġ* Ġ@ return ĠA Ġpath Ġused Ġfor Ġpl acing Ġuser Ġspecific Ġapplication Ġconfiguration Ġdata . ĊĠĠ Ġ*/ ĊĠ Ġval Ġuser ConfigPath : ĠPath ĊĊĠ Ġ/** ĊĠĠ Ġ* ĠReturns Ġa Ġpath Ġused Ġfor Ġpl acing Ġuser Ġspecific Ġapplication Ġdata . ĊĠĠ Ġ* ĊĠĠ Ġ* Ġ@ return ĠA Ġpath Ġused Ġfor Ġpl acing Ġuser Ġspecific Ġapplication Ġdata ĊĠĠ Ġ*/ ĊĠ Ġval ĠuserData Path : ĠPath ĊĊĠ Ġ/** ĊĠĠ Ġ* ĠReturns Ġa Ġpath Ġused Ġfor Ġpl acing Ġuser Ġspecific Ġapplication Ġlogs . ĊĠĠ Ġ* ĊĠĠ Ġ* Ġ@ return ĠA Ġpath Ġused Ġfor Ġpl acing Ġuser Ġspecific Ġapplication Ġlogs . ĊĠĠ Ġ*/ ĊĠ Ġval Ġuser Log Path : ĠPath ĊĊĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠ Ġinternal Ġval ĠOs Name Ġ= ĠSystem . getProperty (" os . name ") ĊĠ Ġ} Ċ } Ċ Ċ /** Ċ Ġ* ĠThis Ġmethod Ġreturns Ġan Ġenv Ġpath Ġaccording Ġto Ġthe Ġcurrent Ġoperating Ġsystem . Ċ Ġ* Ċ Ġ* ĠThis Ġmeans Ġthat Ġfor ĠLinux : Ċ Ġ* Ċ Ġ* Ġ* ĠUser ĠData Ġ=> ĠIt Ġis Ġgiven Ġby Ġ${ env . X DG _ DATA _ HOME }/ Dr ac p ond Ġor Ġ${ user . home }/. local / share / Dr ac p ond ; Ċ Ġ* Ġ* ĠUser ĠConfig Ġ=> ĠIt Ġis Ġgiven Ġby Ġ${ env . X DG _ CONFIG _ HOME }/ Dr ac p ond Ġor Ġ${ user . home }/. config / Dr ac p ond ; Ċ Ġ* Ġ* ĠUser ĠCache Ġ=> ĠIt Ġis Ġgiven Ġby Ġ${ env . X DG _ CACHE _ HOME }/ Dr ac p ond Ġor Ġ${ user . home }/. cache / Dr ac p ond ; Ċ Ġ* Ġ* ĠUser ĠLog Ġ=> ĠIt Ġis Ġgiven Ġby Ġ${ env . X DG _ STATE _ HOME }/ Dr ac p ond Ġor Ġ${ user . home }/. local / state / Dr ac p ond ; Ċ Ġ* Ġ* ĠSystem ĠData Ġ=> ĠIt Ġis Ġ/ usr / share / Dr ac p ond ; Ċ Ġ* Ġ* ĠSystem ĠConfig Ġ=> ĠIt Ġis Ġ/ etc / Dr ac p ond ; Ċ Ġ* Ġ* ĠSystem ĠCache Ġ=> ĠIt Ġis Ġ/ var / cache / Dr ac p ond ; Ċ Ġ* Ġ* ĠSystem ĠLog Ġ=> ĠIt Ġis Ġ/ var / log / Dr ac p ond ; Ċ Ġ* Ċ Ġ* ĠFor ĠmacOS : Ċ Ġ* Ċ Ġ* Ġ* Ġlibrary Ġ= ĠIt Ġis Ġgiven Ġby Ġ${ user . home }/ Library ; Ċ Ġ* Ġ* ĠUser ĠData Ġ=> ĠIt Ġis Ġgiven Ġby Ġ${ user . home }/ Library / Application ĠSupport / Dr ac p ond ; Ċ Ġ* Ġ* ĠUser ĠConfig Ġ=> ĠIt Ġis Ġgiven Ġby Ġ${ user . home }/ Library / Preferences / Dr ac p ond ; Ċ Ġ* Ġ* ĠUser ĠCache Ġ=> ĠIt Ġis Ġgiven Ġby Ġ${ user . home }/ Library / Caches / Dr ac p ond ; Ċ Ġ* Ġ* ĠUser ĠLog Ġ=> ĠIt Ġis Ġgiven Ġby Ġ${ user . home }/ Library / Logs / Dr ac p ond ; Ċ Ġ* Ġ* ĠSystem ĠData Ġ=> ĠIt Ġis Ġgiven Ġby Ġ/ Library / Application ĠSupport / Dr ac p ond ; Ċ Ġ* Ġ* ĠSystem ĠConfig Ġ=> ĠIt Ġis Ġgiven Ġby Ġ/ Library / Preferences / Dr ac p ond ; Ċ Ġ* Ġ* ĠSystem ĠCache Ġ=> ĠIt Ġis Ġgiven Ġby Ġ/ Library / Caches / Dr ac p ond ; Ċ Ġ* Ġ* ĠSystem ĠLog Ġ=> ĠIt Ġis Ġgiven Ġby Ġ/ Library / Logs / Dr ac p ond ; Ċ Ġ* Ċ Ġ* ĠFor ĠWindows : Ċ Ġ* Ċ Ġ* Ġ* Ġlocal AppData Ġ= ĠIt Ġis Ġgiven Ġby Ġthe Ġenvironment Ġvariable ĠLOCAL APP DATA Ġor Ġ${ user . home }/ AppData / Roaming ; Ċ Ġ* Ġ* Ġapp Data Ġ= ĠIt Ġis Ġgiven Ġby Ġthe Ġenvironment Ġvariable ĠAPP DATA Ġor Ġ${ user . home }/ AppData / Local ; Ċ Ġ* Ġ* ĠUser ĠData Ġ=> ĠIt Ġis Ġgiven Ġby Ġ${ local AppData }/ Dr ac p ond / Data ; Ċ Ġ* Ġ* ĠUser ĠConfig Ġ=> ĠIt Ġis Ġgiven Ġby Ġ${ app Data }/ Dr ac p ond / Config ; Ċ Ġ* Ġ* ĠUser ĠCache Ġ=> ĠIt Ġis Ġgiven Ġby Ġ${ local AppData }/ Dr ac p ond / Cache ; Ċ Ġ* Ġ* ĠUser ĠLog Ġ=> ĠIt Ġis Ġgiven Ġby Ġ${ local AppData }/ Dr ac p ond / Log ; Ċ Ġ* Ġ* ĠSystem ĠData Ġ=> ĠIt Ġis Ġgiven Ġby Ġ${ env . Program Data }/ Dr ac p ond / Data ; Ċ Ġ* Ġ* ĠSystem ĠConfig Ġ=> ĠIt Ġis Ġgiven Ġby Ġ${ env . Program Data }/ Dr ac p ond / Config ; Ċ Ġ* Ġ* ĠSystem ĠCache Ġ=> ĠIt Ġis Ġgiven Ġby Ġ${ env . Program Data }/ Dr ac p ond / Cache ; Ċ Ġ* Ġ* ĠSystem ĠLog Ġ=> ĠIt Ġis Ġgiven Ġby Ġ${ env . Program Data }/ Dr ac p ond / Log ; Ċ Ġ* Ċ Ġ* Ġ@ return ĠAn Ġenv Ġpath Ġcorresponding Ġto Ġthe Ġcurrent Ġoperating Ġsystem . Ċ Ġ*/ Ċ val Ġcurrent Env Path : ĠEnv Path ĊĠ Ġget () Ġ= Ġwhen Ġ{ ĊĠĠĠ ĠEnv Path . Os Name . startsWith (" Mac ĠOS ĠX ") Ġ-> Ġ{ ĊĠĠĠĠĠ ĠEnv Path . Env Paths . MAC OS ĊĠĠĠ Ġ} ĊĠĠĠ ĠEnv Path . Os Name . startsWith (" Windows ") Ġ-> Ġ{ ĊĠĠĠĠĠ ĠEnv Path . Env Paths . WINDOWS ĊĠĠĠ Ġ} ĊĠĠĠ Ġelse Ġ-> Ġ{ ĊĠĠĠĠĠ ĠEnv Path . Env Paths . LINUX ĊĠĠĠ Ġ} ĊĠ Ġ} Ċ