package Ġfr . vs ct . to ck . bot . mongo Ċ Ċ import Ġcom . fasterxml . jackson . core . Json Parser Ċ import Ġcom . fasterxml . jackson . core . Json Token Ċ import Ġcom . fasterxml . jackson . core . type . Type Reference Ċ import Ġcom . fasterxml . jackson . databind . Deserialization Context Ċ import Ġcom . fasterxml . jackson . databind . de ser . std . Std Deserializer Ċ import Ġcom . fasterxml . jackson . databind . module . Simple Module Ċ import Ġfr . vs ct . to ck . bot . engine . dialog . Dialog Ċ import Ġjava . time . Instant Ċ import Ġkotlin . String Ċ import Ġorg . lit ote . jackson . Jack son Module Service Loader Ċ import Ġorg . lit ote . km ongo . Id Ċ Ċ internal Ġclass ĠDialog Text Col _ Deserializer Ġ: ĠStd Deserializer < Dialog Text Col >( Dialog Text Col :: class . java ), ĊĠĠĠĠĠĠĠ ĠJack son Module Service Loader Ġ{ ĊĠĠĠ Ġoverride Ġfun Ġmodule () Ġ= ĠSimple Module (). add Deserializer ( Dialog Text Col :: class . java , Ġthis ) ĊĊĠĠĠ Ġoverride Ġfun Ġdeserialize ( p : ĠJson Parser , Ġctxt : ĠDeserial ization Context ): ĠDialog Text Col Ġ{ ĊĠĠĠĠĠĠĠ Ġwith ( p ) Ġ{ ĊĠĠĠĠĠĠĠ Ġvar Ġtext : ĠString ? Ġ= Ġnull ĊĠĠĠĠĠĠĠ Ġvar Ġdialog Id : ĠId < Dialog >? Ġ= Ġnull ĊĠĠĠĠĠĠĠ Ġvar Ġdate : ĠInstant ? Ġ= Ġnull ĊĠĠĠĠĠĠĠ Ġwhile Ġ( current Token Ġ!= ĠJson Token . END _ OBJECT Ġ&& Ġcurrent Token Ġ!= ĠJson Token . END _ ARRAY ) Ġ{ ĠĊĠĠĠĠĠĠĠ Ġnext Token () ĠĊĠĠĠĠĠĠĠ Ġif Ġ( current Token Ġ== ĠJson Token . END _ OBJECT Ġ|| Ġcurrent Token Ġ== ĠJson Token . END _ ARRAY ) Ġ{ Ġbreak Ġ} ĠĊĠĠĠĠĠĠĠ Ġval ĠfieldName Ġ= Ġcurrent Name ĊĠĠĠĠĠĠĠ Ġnext Token () ĊĠĠĠĠĠĠĠ Ġif ( current Token Ġ!= ĠJson Token . VALUE _ NULL ) Ġwhen Ġ( fieldName ) Ġ{ ĊĠĠĠĠĠĠĠ Ġ" text " Ġ-> Ġtext Ġ= Ġp . text ĊĠĠĠĠĠĠĠ Ġ" dialog Id " Ġ-> Ġdialog Id Ġ= Ġp . readValue As ( dialog Id _ reference ) ĊĠĠĠĠĠĠĠ Ġ" date " Ġ-> Ġdate Ġ= Ġp . readValue As ( Instant :: class . java ) ĊĠĠĠĠĠĠĠ Ġelse Ġ-> Ġif Ġ( current Token Ġ== ĠJson Token . END _ OBJECT Ġ|| Ġcurrent Token Ġ== ĠJson Token . END _ ARRAY ) Ġ{ Ġp . skip Children () Ġ} Ġelse Ġ{ Ġnext Token () Ġ} ĊĠĠĠĠĠĠĠĠ Ġ} Ġ Ġ} ĊĠĠĠĠĠĠĠ Ġreturn ĠDialog Text Col ( text !! , Ġdialog Id !! , Ġdate !! ) Ġ} ĊĠĠĠ Ġ} ĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġdialog Id _ reference : ĠType Reference < Id < Dialog >> Ġ= Ġobject Ġ: ĠType Reference < Id < Dialog >>() Ġ{} ĊĠĠĠ Ġ} Ċ } Ċ