/** Ċ Ġ* ĠCopyright Ġ 2 0 2 0 ĠM ic hel ĠK re mer Ġ( k rem i 1 5 1 ) Ċ Ġ* Ċ Ġ* Ġ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 Ġlu . k rem i 1 5 1 . chat ster . core . plugin . util Ċ Ċ import Ġcom . fasterxml . jackson . databind . ObjectMapper Ċ import Ġlu . k rem i 1 5 1 . chat ster . api . plugin . Pre Init Plugin Context Ċ import Ġjava . io . File Ċ import Ġjava . io . FileReader Ċ import Ġjava . io . FileWriter Ċ Ċ open Ġclass ĠPre Init Plugin Context Impl ( ĊĠĠĠĠĠĠĠ Ġprivate Ġval Ġplugin Id : ĠString , ĊĠĠĠĠĠĠĠ Ġprivate Ġval Ġconfig Folder : ĠFile , ĊĠĠĠĠĠĠĠ Ġprivate Ġval ĠobjectMapper : ĠObjectMapper Ċ ): ĠPre Init Plugin Context Ġ{ ĊĊĠĠĠ Ġprivate Ġval Ġconfig File : ĠFile ĊĠĠĠĠĠĠĠ Ġget () Ġ= ĠFile ( config Folder , Ġ"$ plugin Id . json ") ĊĊĠĠĠ Ġoverride Ġfun Ġ< T > Ġload Config ( clazz : ĠClass < T >): ĠT ? Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġconfig File Ġ= Ġthis . configFile ĊĠĠĠĠĠĠĠ Ġif Ġ(! configFile . exists ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġnull ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġreturn ĠFileReader ( configFile ). use Ġ{ ĠobjectMapper . readValue ( it , Ġclazz ) Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġsave Config ( config : ĠAny ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġconfig File Ġ= Ġthis . configFile ĊĠĠĠĠĠĠĠ ĠFile Writer ( configFile ). use Ġ{ ĠobjectMapper . writeValue ( it , Ġconfig ) Ġ} ĊĠĠĠ Ġ} Ċ Ċ } Ċ