package Ġde . west erm ann . robots . datamodel . util Ċ Ċ import Ġcom . be ust . kl ax on . JsonObject Ċ import Ġcom . be ust . kl ax on . Parser Ċ Ċ /** Ċ Ġ* Ġ@ author Ġl ars Ċ Ġ*/ Ċ actual Ġclass ĠJson ( ĊĠĠĠĠĠĠĠ Ġval Ġobj : ĠJsonObject Ċ ) Ġ{ ĊĠĠĠ Ġactual Ġoperator Ġfun Ġget ( propertyName : ĠString ): ĠAny ? Ġ= Ġobj [ propertyName ] ĊĊĠĠĠ Ġactual Ġoperator Ġfun Ġset ( propertyName : ĠString , Ġvalue : ĠAny ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġobj [ propertyName ] Ġ= Ġvalue ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġactual Ġfun Ġvalue ( propertyName : ĠString , Ġinit : Ġ() Ġ-> ĠAny ?) Ġ= Ġset ( propertyName , Ġinit ()) ĊĠĠĠ Ġactual Ġfun Ġjson ( propertyName : ĠString ): ĠJson ? Ġ= Ġ( get ( propertyName ) Ġas ? ĠJsonObject )?. let Ġ{ ĠJson ( it ) Ġ} ĊĊĠĠĠ Ġactual Ġfun Ġjson ( propertyName : ĠString , Ġinit : ĠJson . () Ġ-> ĠUnit ) Ġ= Ġset ( propertyName , Ġcreate ( init )) ĊĊĠĠĠ Ġactual Ġfun Ġstringify (): ĠString Ġ= Ġobj . toJson String ( false ) ĊĊĠĠĠ Ġoverride Ġfun ĠtoString (): ĠString Ġ= Ġstringify () ĊĊĠĠĠ Ġactual Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠ Ġactual Ġfun Ġcreate ( init : ĠJson . () Ġ-> ĠUnit ): ĠJson Ġ= ĠJson ( JsonObject ()). also ( init ) ĊĊĠĠĠĠĠĠĠ Ġactual Ġfun Ġfrom String ( data : ĠString ): ĠJson Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠJson ( Parser (). parse ( StringBuilder ( data )) Ġas ĠJsonObject ) ĊĊĠĠĠ Ġ} Ċ Ċ }