/* Ċ Ġ* ĠCopyright Ġ 2 0 1 9 ĠRed ĠHat , ĠInc . Ċ Ġ* Ċ Ġ* ĠAll Ġrights Ġreserved . ĠThis Ġprogram Ġand Ġthe Ġaccompanying Ġmaterials Ċ Ġ* Ġare Ġmade Ġavailable Ġunder Ġthe Ġterms Ġof Ġthe ĠEclipse ĠPublic ĠLicense Ġv 1 . 0 Ċ Ġ* Ġand ĠApache ĠLicense Ġv 2 . 0 Ġwhich Ġaccomp anies Ġthis Ġdistribution . Ċ Ġ* Ċ Ġ* ĠThe ĠEclipse ĠPublic ĠLicense Ġis Ġavailable Ġat Ċ Ġ* Ġhttp :// www . eclipse . org / legal / e pl - v 1 0 . html Ċ Ġ* Ċ Ġ* ĠThe ĠApache ĠLicense Ġv 2 . 0 Ġis Ġavailable Ġat Ċ Ġ* Ġhttp :// www . opensource . org / licenses / apache 2 . 0 . php Ċ Ġ* Ċ Ġ* ĠYou Ġmay Ġelect Ġto Ġredistribute Ġthis Ġcode Ġunder Ġeither Ġof Ġthese Ġlicenses . Ċ Ġ*/ Ċ package Ġio . vertx . kotlin . core . json Ċ Ċ import Ġio . vertx . core . json . JsonArray Ċ import Ġio . vertx . core . json . JsonObject Ċ import Ġjava . time . Instant Ċ import Ġjava . time . format . DateTime Formatter Ċ import Ġjava . util . Base 6 4 Ċ Ċ object ĠJson Ċ Ċ /** Ċ Ġ* ĠA Ġfunction Ġproviding Ġa ĠDSL Ġfor Ġbuilding Ġ[ io . vertx . core . json . JsonObject ] Ċ Ġ* Ċ Ġ* Ġ@ param Ġfields Ġkey : value Ġpairs Ġto Ġcreate Ġthe Ġinstance Ċ Ġ* Ġ@ return Ġ[ JsonObject ] Ċ Ġ*/ Ċ fun ĠjsonObject Of ( var arg Ġfields : ĠPair < String , ĠAny ?> ): ĠJsonObject Ġ{ ĊĠĠĠ Ġval Ġprocessed Cases Ġ= Ġfields . map Ġ{ ĊĠĠĠĠĠĠĠ Ġwhen Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġ@ See Ġio . vertx . core . json . JsonObject . put ( java . lang . String , Ġjava . time . Instant ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġit . second Ġis ĠInstant Ġ-> Ġreturn @ map Ġ( Pair ( it . first , ĠDateTime Formatter . ISO _ INST ANT . format ( it . second Ġas ĠInstant ))) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġ@ See ĠĠ Ġio . vertx . core . json . JsonObject . put ( java . lang . String , Ġbyte []) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġit . second Ġis ĠByteArray Ġ-> Ġreturn @ map ( Pair ( it . first , ĠBase 6 4 . get Encoder (). encode ToString ( it . second Ġas ĠByteArray ))) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġ-> Ġreturn @ map Ġit ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠ Ġ}. to Typed Array () ĊĊĠĠĠ Ġreturn ĠJsonObject ( linked Map Of (* processed Cases )) Ċ } Ċ Ċ /** Ċ Ġ* ĠA Ġfunction Ġproviding Ġa ĠDSL Ġfor Ġbuilding Ġ[ io . vertx . core . json . JsonObject ] Ċ Ġ* Ċ Ġ* Ġ@ param Ġfields Ġkey : value Ġpairs Ġto Ġcreate Ġthe Ġinstance Ċ Ġ* Ġ@ return Ġ[ JsonObject ] Ċ Ġ*/ Ċ @ Deprecated ( ĊĠ Ġmessage Ġ= Ġ" This Ġfunction Ġwill Ġbe Ġremoved Ġin Ġa Ġfuture Ġversion ", ĊĠ Ġreplace With Ġ= ĠReplace With (" jsonObject Of (* fields )") Ċ ) Ċ fun ĠJsonObject ( var arg Ġfields : ĠPair < String , ĠAny ?> ): ĠJsonObject Ġ{ ĊĠ Ġreturn ĠjsonObject Of (* fields ) Ċ } Ċ Ċ /** Ċ Ġ* ĠA Ġfunction Ġproviding Ġa ĠDSL Ġfor Ġbuilding Ġ[ io . vertx . core . json . JsonArray ] Ċ Ġ* Ċ Ġ* Ġ@ param Ġvalues Ġobjects Ġthat Ġshould Ġbe Ġpart Ġof Ġthe Ġarray Ċ Ġ* Ġ@ return Ġ[ JsonArray ] Ċ Ġ*/ Ċ fun Ġjson ArrayOf ( var arg Ġvalues : ĠAny ?): ĠJson Array Ġ= Ġio . vertx . core . json . JsonArray ( array ListOf (* values )) Ċ Ċ /** Ċ Ġ* ĠA Ġfunction Ġproviding Ġa ĠDSL Ġfor Ġbuilding Ġ[ io . vertx . core . json . JsonArray ] Ċ Ġ* Ċ Ġ* Ġ@ param Ġvalues Ġobjects Ġthat Ġshould Ġbe Ġpart Ġof Ġthe Ġarray Ċ Ġ* Ġ@ return Ġ[ JsonArray ] Ċ Ġ*/ Ċ @ Deprecated ( ĊĠ Ġmessage Ġ= Ġ" This Ġfunction Ġwill Ġbe Ġremoved Ġin Ġa Ġfuture Ġversion ", ĊĠ Ġreplace With Ġ= ĠReplace With (" json ArrayOf (* values )") Ċ ) Ċ fun ĠJson Array ( var arg Ġvalues : ĠAny ?): ĠJson Array Ġ= Ġjson ArrayOf (* values ) Ċ Ċ /** Ċ Ġ* ĠThe Ġjson Ġbuilder Ġfor Ġcreating Ġ[ io . vertx . core . json . JsonObject ] Ġor Ġ[ io . vertx . core . json . JsonArray ] Ċ Ġ* Ċ Ġ* Ġ@ param Ġblock Ġthe Ġjson Ġbuilding Ġblock Ċ Ġ* Ġ@ return Ġa ĠJSON Ġobject Ġor Ġarray Ġreturned Ġby Ġthe Ġbuilding Ġblock Ċ Ġ*/ Ċ inline Ġfun Ġ< T > Ġjson ( block : ĠJson . () Ġ-> ĠT ): ĠT Ġ= ĠJson . block () Ċ Ċ /** Ċ Ġ* ĠA Ġ[ io . vertx . core . json . JsonObject ] Ġbuilder Ġfrom Ġa Ġvar args Ġof Ġfields , Ġi . e Ġa Ġvar args Ġof Ġ` Pair < String , ĠAny ?> ` Ċ Ġ* Ċ Ġ* Ġ@ param Ġfields Ġthe Ġvar args Ġof Ġjson Ġfields Ċ Ġ* Ġ@ return Ġa Ġ[ io . vertx . core . json . JsonObject ] Ċ Ġ*/ Ċ fun ĠJson . obj ( var arg Ġfields : ĠPair < String , ĠAny ?> ): ĠJsonObject Ġ= ĠjsonObject Of (* fields ) Ċ Ċ /** Ċ Ġ* ĠA Ġ[ io . vertx . core . json . JsonArray ] Ġbuilder Ġfrom Ġa Ġvar args Ġof Ġvalues , Ġi . e Ġa Ġvar args Ġof Ġ` Any ?` Ċ Ġ* Ċ Ġ* Ġ@ param Ġvalues Ġthe Ġvar args Ġof Ġjson Ġvalues Ċ Ġ* Ġ@ return Ġa Ġ[ io . vertx . core . json . JsonArray ] Ċ Ġ*/ Ċ fun ĠJson . array ( var arg Ġvalues : ĠAny ?): ĠJson Array Ġ= Ġjson ArrayOf (* values ) Ċ Ċ /** Ċ Ġ* ĠA Ġ[ io . vertx . core . json . JsonObject ] Ġbuilder Ġfrom Ġan Ġ[ Iterable ] Ġof Ġfields , Ġi . e Ġan Ġ[ Iterable ] Ġof Ġ` Pair < String , ĠAny ?> ` Ċ Ġ* Ċ Ġ* Ġ@ param Ġfields Ġthe Ġ[ Iterable ] Ġof Ġjson Ġfields Ċ Ġ* Ġ@ return Ġa Ġ[ io . vertx . core . json . JsonObject ] Ċ Ġ*/ Ċ fun ĠJson . obj ( fields : ĠIterable < Pair < String , ĠAny ? >> ): ĠJsonObject Ġ= ĠjsonObject Of (* fields . toList (). to Typed Array ()) Ċ Ċ /** Ċ Ġ* ĠA Ġ[ io . vertx . core . json . JsonObject ] Ġbuilder Ġfrom Ġan Ġ[ Map ] Ġof Ġfields , Ġi . e Ġa Ġ` Map < String , ĠAny ?> ` Ċ Ġ* Ċ Ġ* Ġ@ param Ġfields Ġthe Ġ[ Map ] Ġof Ġjson Ġfields Ċ Ġ* Ġ@ return Ġa Ġ[ io . vertx . core . json . JsonObject ] Ċ Ġ*/ Ċ fun ĠJson . obj ( fields : ĠMap < String , ĠAny ?> ): ĠJsonObject Ġ= ĠJsonObject ( fields ) Ċ Ċ /** Ċ Ġ* ĠA Ġ[ io . vertx . core . json . JsonArray ] Ġbuilder Ġfrom Ġan Ġ[ Iterable ] Ġof Ġvalues , Ġi . e Ġan Ġ[ Iterable ] Ġof Ġ` Any ?` Ċ Ġ* Ċ Ġ* Ġ@ param Ġvalues Ġthe Ġ[ Iterable ] Ġof Ġjson Ġvalues Ċ Ġ* Ġ@ return Ġa Ġ[ io . vertx . core . json . JsonArray ] Ċ Ġ*/ Ċ fun ĠJson . array ( values : ĠIterable < Any ?> ): ĠJson Array Ġ= Ġjson ArrayOf (* values . toList (). to Typed Array ()) Ċ Ċ /** Ċ Ġ* ĠA Ġfunction Ġfor Ġapplying Ġa Ġblock Ġonto Ġa Ġ[ io . vertx . core . json . JsonObject ]. Ċ Ġ*/ Ċ fun ĠJson . obj ( block : ĠJsonObject . () Ġ-> ĠUnit ): ĠJsonObject Ġ= ĠjsonObject Of (). apply ( block ) Ċ Ċ /** Ċ Ġ* ĠA Ġfunction Ġfor Ġapplying Ġa Ġblock Ġonto Ġa Ġ[ io . vertx . core . json . JsonArray ]. Ċ Ġ*/ Ċ fun ĠJson . array ( block : ĠJson Array . () Ġ-> ĠUnit ): ĠJson Array Ġ= Ġjson ArrayOf (). apply ( block ) Ċ Ċ // ĠThose Ġare Ġneeded Ġfor Ġavoid Ġinference Ġmismatch Ċ fun ĠJson . array ( value : ĠJsonObject ): ĠJson Array Ġ= Ġjson ArrayOf ( value ) Ċ fun ĠJson . array ( value : ĠJson Array ): ĠJson Array Ġ= Ġjson ArrayOf ( value ) Ċ Ċ /** Ċ Ġ* ĠThe Ġpost script Ġoperator Ġfor Ġ[ JsonObject ]. Ċ Ġ*/ Ċ @ Suppress (" UN CHECK ED _ CAST ") Ġoperator Ġfun Ġ< T > ĠJsonObject . get ( key : ĠString ): ĠT Ġ= ĠgetValue ( key ) Ġas ĠT Ċ Ċ /** Ċ Ġ* ĠThe Ġpost script Ġoperator Ġfor Ġ[ JsonArray ]. Ċ Ġ*/ Ċ @ Suppress (" UN CHECK ED _ CAST ") Ġoperator Ġfun Ġ< T > ĠJson Array . get ( index : ĠInt ): ĠT Ġ= ĠgetValue ( index ) Ġas ĠT Ċ