package Ġno . nav . pto . ve ilar b filter . db Ċ Ċ import Ġno . nav . pto . ve ilar b filter . ObjectMapper Provider . Companion . object Mapper Ċ import Ġorg . jetbrains . ex posed . sql .* Ċ import Ġorg . jetbrains . ex posed . sql . statements . api . PreparedStatement Api Ċ import Ġorg . postgresql . util . PG object Ċ Ċ fun Ġ< T Ġ: ĠAny > ĠTable . json b ( name : ĠString , Ġklass : ĠClass < T >): ĠColumn < T > ĊĠĠĠĠĠĠĠ Ġ= Ġregister Column ( name , ĠJson ( klass )) Ċ Ċ private Ġclass ĠJson < out ĠT Ġ: ĠAny >( private Ġval Ġklass : ĠClass < T >) Ġ: ĠColumn Type () Ġ{ ĊĠĠĠ Ġoverride Ġfun Ġsql Type () Ġ= Ġ" json b " ĊĊĠĠĠ Ġoverride Ġfun Ġset Parameter ( stmt : ĠPreparedStatement Api , Ġindex : ĠInt , Ġvalue : ĠAny ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġobj Ġ= ĠPG object () ĊĠĠĠĠĠĠĠ Ġobj . type Ġ= Ġ" json b " ĊĠĠĠĠĠĠĠ Ġobj . value Ġ= Ġvalue Ġas ĠString ĊĠĠĠĠĠĠĠ Ġstmt [ index ] Ġ= Ġobj ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġvalue From DB ( value : ĠAny ): ĠAny Ġ{ ĊĠĠĠĠĠĠĠ Ġvalue Ġas ĠPG object ĊĠĠĠĠĠĠĠ Ġreturn Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠobjectMapper . readValue ( value . value , Ġklass ) ĊĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( e : ĠException ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġe . printStackTrace () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġthrow ĠRuntimeException (" Can 't Ġparse ĠJSON : Ġ$ value ") ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĊĠĠĠ Ġoverride Ġfun Ġnot NullValue To DB ( value : ĠAny ): ĠAny Ġ= ĠobjectMapper . writeValue AsString ( value ) ĊĠĠĠ Ġoverride Ġfun Ġnon NullValue ToString ( value : ĠAny ): ĠString Ġ= Ġ"' ${ object Mapper . writeValue AsString ( value )} '" Ċ }