package Ġpl . to uk . kr ush Ċ Ċ import Ġorg . jetbrains . ex posed . sql . Column Ċ import Ġorg . jetbrains . ex posed . sql . ColumnType Ċ import Ġorg . jetbrains . ex posed . sql . Table Ċ import Ġorg . jetbrains . ex posed . sql . statements . api . PreparedStatement Api Ċ import Ġorg . postgresql . util . PG object Ċ Ċ class ĠJson b ColumnType Ġ: ĠColumn Type () Ġ{ ĊĠĠĠ Ġoverride Ġfun Ġsql Type () Ġ= ĠJSON B ĊĊĠĠĠ Ġoverride Ġfun Ġset Parameter ( stmt : ĠPreparedStatement Api , Ġindex : ĠInt , Ġvalue : ĠAny ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . setParameter ( stmt , Ġindex , Ġvalue . let Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠPG object (). apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġthis . type Ġ= Ġsql Type () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġthis . value Ġ= Ġvalue Ġas ĠString ? ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ}) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġvalue From DB ( value : ĠAny ): ĠAny Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġif Ġ( value Ġis ĠPG object ) Ġvalue . toString () Ġelse Ġvalue ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġvalue ToString ( value : ĠAny ?): ĠString Ġ= Ġwhen Ġ( value ) Ġ{ ĊĠĠĠĠĠĠĠ Ġis ĠIterable < *> Ġ-> Ġnon NullValue ToString ( value ) ĊĠĠĠĠĠĠĠ Ġelse Ġ-> Ġsuper . value ToString ( value ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Suppress (" UN CHECK ED _ CAST ") ĊĠĠĠ Ġoverride Ġfun Ġnot NullValue To DB ( value : ĠAny ) Ġ= Ġvalue . toString () ĊĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠ Ġconst Ġval ĠJSON B Ġ= Ġ" JSON B " ĊĠĠĠ Ġ} Ċ } Ċ Ċ fun ĠTable . json b ( name : ĠString ): ĠColumn < String > Ġ= Ġregister Column ( name , ĠJson b ColumnType ()) Ċ