package Ġgray matter . sec . common Ċ Ċ import Ġcom . fasterxml . jackson . databind . node . Object Node Ċ import Ġgray matter . sec . common . document . Document Format Ċ import Ġgray matter . sec . common . document . write Tree Ċ import Ġjava . io .* Ċ import Ġjava . net . URL Ċ import Ġjava . nio . charset . Charset Ċ import Ġjava . util .* Ċ Ċ fun ĠProperties . load ( bytes : ĠByteArray , Ġcharset : ĠCharset Ġ= ĠChar sets . UTF _ 8 ) Ġ{ ĊĠĠĠ ĠByteArrayInputStream ( bytes ). reader ( charset ). use Ġ{ Ġload ( it ) Ġ} Ċ } Ċ Ċ fun ĠProperties . load ( text : ĠString ) Ġ= ĠString Reader ( text ). use ( this :: load ) Ċ fun ĠProperties . load ( bytes : ĠByteArrayOutputStream ) Ġ= Ġload ( bytes . toByteArray ()) Ċ fun ĠProperties . load ( text : ĠString Writer ) Ġ= Ġload ( text . toString ()) Ċ fun ĠProperties . load ( text : ĠStringBuilder ) Ġ= Ġload ( text . toString ()) ĊĊ Ċ fun ĠProperties ( tree : ĠObject Node ): ĠProperties Ġ{ ĊĠĠĠ Ġval Ġsource Ġ= ĠByteArrayOutputStream (). apply Ġ{ Ġuse Ġ{ Ġit . write Tree ( tree , ĠDocument Format . JAVA _ PROPERTIES ) Ġ} Ġ} ĊĠĠĠ Ġreturn ĠProperties (). apply Ġ{ Ġload ( source ) Ġ} Ċ } ĊĊ Ċ fun ĠProperties ( url : ĠURL ): ĠProperties Ġ= Ġurl . open Stream (). use Ġ{ ĠProperties ( it ) Ġ} Ċ fun ĠProperties ( input : ĠInputStream ): ĠProperties Ġ= ĠProperties (). apply Ġ{ Ġload ( input ) Ġ} Ċ fun ĠProperties ( text : ĠString ): ĠProperties Ġ= ĠProperties (). apply Ġ{ Ġload ( text ) Ġ} Ċ fun ĠProperties ( map : ĠMap < String , ĠString ?> ): ĠProperties Ġ= ĠProperties (). apply Ġ{ Ġput All ( map ) Ġ} Ċ fun ĠProperties ( var arg Ġpairs : ĠPair < String , ĠString ?> ): ĠProperties Ġ= Ġjava . util . Properties (). apply Ġ{ ĊĠĠĠ Ġpairs . forEach Ġ{ Ġ( k , Ġv ) Ġ-> Ġput ( k , Ġv ) Ġ} Ċ } Ċ Ċ fun ĠProperties . to Properties Map (): ĠMap < String , ĠString ?> Ġ{ ĊĠĠĠ Ġreturn Ġentries . as Sequence (). map Ġ{ Ġ( k , Ġv ) Ġ-> Ġk Ġas ĠString Ġto Ġv Ġas ĠString ? Ġ}. toMap () Ċ } Ċ Ċ fun ĠProperties ( bytes : ĠByteArray , Ġcharset : ĠCharset Ġ= ĠChar sets . UTF _ 8 ) Ġ= ĊĠĠĠ ĠProperties (). also Ġ{ Ġit . load ( ByteArray InputStream ( bytes ). reader ( charset )) Ġ} Ċ Ċ fun ĠProperties ( file : ĠFile ) Ġ= ĠProperties (). apply Ġ{ Ġfile . buffered Reader ( Charsets . UTF _ 8 ). use Ġ{ Ġload ( it ) Ġ} Ġ} Ċ fun ĠProperties ( source : ĠByteArrayOutputStream ) Ġ= ĠProperties ( source . toByteArray ()) Ċ