package Ġcom . cod it ory . gradle . web jar . base Ċ Ċ import Ġjava . util . Properties Ċ Ċ object ĠSystem Properties Ġ{ ĊĠĠĠ Ġfun Ġ< T > Ġwith System Property ( key : ĠString , Ġvalue : ĠString , Ġcall : Ġ() Ġ-> ĠT ): ĠT Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġwith System Properties ( map Of ( key Ġto Ġvalue ), Ġcall ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġ< T > Ġwith System Properties ( properties : ĠMap < String , ĠString >, Ġcall : Ġ() Ġ-> ĠT ): ĠT Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġbackup Ġ= Ġto Map ( System . getProperties ()) ĊĠĠĠĠĠĠĠ Ġset System Properties ( properties ) ĊĠĠĠĠĠĠĠ Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġcall () ĊĠĠĠĠĠĠĠ Ġ} Ġfinally Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġset System Properties ( backup ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġ< T > Ġwithout System Properties ( call : Ġ() Ġ-> ĠT ): ĠT Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġbackup Ġ= Ġto Map ( System . getProperties ()) ĊĠĠĠĠĠĠĠ ĠSystem . getProperties (). clear () ĊĠĠĠĠĠĠĠ Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġcall () ĊĠĠĠĠĠĠĠ Ġ} Ġfinally Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġset System Properties ( backup ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġto Map ( properties : ĠProperties ): ĠMap < String , ĠString > Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġproperties . toMap () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. map Ġ{ Ġit . key . toString () Ġto Ġit . value . toString () Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. toMap () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġset System Properties ( map : ĠMap < String , ĠString >) Ġ{ ĊĠĠĠĠĠĠĠ Ġmap . forEach Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠSystem . getProperties (). setProperty ( it . key , Ġit . value ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } Ċ