package Ġxyz . cut ec loud s . earth chan . data . config Ċ Ċ import Ġcom . fasterxml . jackson . databind . ObjectMapper Ċ import Ġcom . fasterxml . jackson . module . kotlin . register Kotlin Module Ċ import Ġxyz . cut ec loud s . earth chan . extensions . class Of Ċ import Ġxyz . cut ec loud s . hun ger . loader . string Ċ import Ġxyz . cut ec loud s . hun ger . loader . write Ċ import Ġjava . io . File Ċ import Ġjava . io . IOException Ċ import Ġjavax . inject . Provider Ċ Ċ object ĠConfig Manager Ġ: ĠProvider < Config > Ġ{ ĊĠĠĠ Ġoverride Ġfun Ġget () Ġ= Ġconfig ĊĊĠĠĠ Ġval Ġconfig : ĠConfig Ġby Ġlazy Ġ{ ĊĠĠĠĠĠĠĠ Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġmapper . readValue < Config >( path . string (), Ġclass Of ()) ĊĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( e : ĠIOException ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġsave ( Config ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġthrow Ġe ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġsave () Ġ= Ġsave ( config ) ĊĊĠĠĠ Ġprivate Ġval Ġmapper Ġ= ĠObjectMapper (). register Kotlin Module () ĊĠĠĠ Ġprivate Ġval Ġpath Ġ= ĠFile (" config . json "). to Path () ĊĊĠĠĠ Ġprivate Ġfun Ġsave ( config : ĠConfig ) Ġ= Ġpath . write ( mapper . writer WithDefault PrettyPrinter (). writeValue AsString ( config )) Ċ } Ċ