package Ġcom . man zo . s lang . extensions Ċ Ċ import Ġcom . google . gson . Gson Ċ import Ġcom . google . gson . reflect . Type Token Ċ Ċ /** Ċ Ġ* ĠCreated Ġby ĠMan olo ĠD ' Ant onio Ġon Ġ 1 9 / 0 7 / 2 0 1 9 Ċ Ġ*/ ĊĊ Ċ /** Ċ Ġ* Ġconvert Ġa Ġdata Ġclass Ġto Ġa Ġmap Ġwhere Ġvalues Ġare Ġstrings Ċ Ġ*/ Ċ fun Ġ< T > ĠT . serialize ToString s Map (): ĠMap < String , ĠString > Ġ= Ġconvert () Ċ Ċ /** Ċ Ġ* Ġconvert Ġa Ġdata Ġclass Ġto Ġa Ġmap Ċ Ġ*/ Ċ fun Ġ< T > ĠT . serialize ToMap (): ĠMap < String , ĠAny > Ġ= Ġconvert () Ċ Ċ /*** Ċ Ġ* Ġconvert Ġa Ġmap Ġto Ġa Ġdata Ġclass Ċ Ġ*/ Ċ inline Ġfun Ġ< re ified ĠT > ĠMap < String , ĠAny >. to Data Class (): ĠT Ġ= Ġconvert () Ċ Ċ /** Ċ Ġ* Ġconvert Ġan Ġobject Ġof Ġtype ĠI Ġto Ġtype ĠO Ġvia ĠGson . Ċ Ġ* Ċ Ġ* ĠBy ĠCol on el Cust ard Ġfrom Ġhttps :// stackoverflow . com / a / 5 6 3 4 7 2 1 4 / 4 4 7 3 5 1 2 Ċ Ġ*/ Ċ inline Ġfun Ġ< I , Ġre ified ĠO > ĠI . convert (): ĠO Ġ= ĠGson (). toJson ( this ). fromJson () ĊĊ Ċ /** Ċ Ġ* ĠConverts Ġobject Ġto Ġjson Ġvia ĠG SON Ċ Ġ* Ġ@ receiver ĠT Ċ Ġ* Ġ@ param Ġpretty Print ĠBoolean Ċ Ġ* Ġ@ return ĠString Ċ Ġ*/ Ċ fun Ġ< T > ĠT . toJson ( pretty Print : ĠBoolean Ġ= Ġfalse ): ĠString Ġ= ĊĠĠĠ ĠGson (). toJson ( this ). run Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( pretty Print ) Ġjson Pretty Print () Ġelse Ġthis ĊĠĠĠ Ġ} ĊĊĊ Ċ /** Ċ Ġ* ĠConverts Ġstring Ġto Ġobject Ġvia ĠG SON Ġtype Ġtoken Ċ Ġ* Ġ@ receiver ĠString Ċ Ġ* Ġ@ return ĠT Ċ Ġ*/ Ċ inline Ġfun Ġ< re ified ĠT > ĠString . fromJson (): ĠT Ġ= ĊĠĠĠ ĠGson (). fromJson ( this , Ġobject Ġ: ĠType Token < T >() Ġ{} . type ) Ċ Ċ /** Ċ Ġ* ĠConverts Ġstring Ġto Ġobject Ġvia ĠG SON Ċ Ġ* Ġ@ receiver ĠString Ċ Ġ* Ġ@ param Ġmodel ĠClass < T > Ċ Ġ* Ġ@ return ĠT Ċ Ġ*/ Ċ inline Ġfun Ġ< re ified ĠT > ĠString . fromJson ( model : ĠClass < T >): ĠT Ġ= ĠGson (). fromJson ( this , Ġmodel ) Ċ Ċ // Ċ // /** Ċ // Ġ* ĠExec utes Ġblock Ġonly Ġif Ġreceiver Ġis Ġnot Ġnull . Ċ // Ġ* Ċ // Ġ* ĠExample : Ġmy String Ġif NotNull Ġ{ Ġdo My Stuff () Ġ} Ċ // Ġ* Ċ // Ġ* Ġ@ receiver ĠAny ? Ċ // Ġ* Ġ@ param Ġblock ĠFunction 0 < Unit > Ċ // Ġ*/ Ċ // infix Ġfun ĠAny ?. if NotNull ( block : Ġ() Ġ-> ĠUnit ) Ġ{ Ċ // ĠĠĠ Ġthis ?. let Ġ{ Ġblock . invoke () Ġ} Ċ //} Ċ // Ċ // /** Ċ // Ġ* ĠShort Ġfor Ġ[ if NotNull ] Ċ // Ġ* Ġ@ receiver ĠAny ? Ċ // Ġ* Ġ@ param Ġblock ĠFunction 0 < Unit > Ċ // Ġ*/ Ċ // infix Ġfun ĠAny ?. nn ( block : Ġ() Ġ-> ĠUnit ) Ġ= Ġthis Ġif NotNull Ġblock