package Ġfr . vs ct . to ck . nlp . front . shared . config Ċ Ċ 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 Ġkotlin . Int Ċ import Ġkotlin . String Ċ import Ġkotlin . collections . List Ċ import Ġorg . lit ote . jackson . Jack son Module Service Loader Ċ Ċ class ĠClass ified Entity _ Deserializer Ġ: ĠStd Deserializer < Class ified Entity >( Class ified Entity :: class . java ), ĊĠĠĠĠĠĠĠ ĠJack son Module Service Loader Ġ{ ĊĠĠĠ Ġoverride Ġfun Ġmodule () Ġ= ĠSimple Module (). add Deserializer ( Class ified Entity :: class . java , Ġthis ) ĊĊĠĠĠ Ġoverride Ġfun Ġdeserialize ( p : ĠJson Parser , Ġctxt : ĠDeserial ization Context ): ĠClass ified Entity Ġ{ ĊĠĠĠĠĠĠĠ Ġwith ( p ) Ġ{ ĊĠĠĠĠĠĠĠ Ġvar Ġtype : ĠString ? Ġ= Ġnull ĊĠĠĠĠĠĠĠ Ġvar Ġrole : ĠString ? Ġ= Ġnull ĊĠĠĠĠĠĠĠ Ġvar Ġstart : ĠInt ? Ġ= Ġnull ĊĠĠĠĠĠĠĠ Ġvar Ġend : ĠInt ? Ġ= Ġnull ĊĠĠĠĠĠĠĠ Ġvar Ġsub Entities : ĠList < Class ified Entity >? Ġ= Ġ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 ) Ġ{ ĊĠĠĠĠĠĠĠ Ġ" type " Ġ-> Ġtype Ġ= Ġp . text ĊĠĠĠĠĠĠĠ Ġ" role " Ġ-> Ġrole Ġ= Ġp . text ĊĠĠĠĠĠĠĠ Ġ" start " Ġ-> Ġstart Ġ= Ġp . readValue As ( Int :: class . java ) ĊĠĠĠĠĠĠĠ Ġ" end " Ġ-> Ġend Ġ= Ġp . readValue As ( Int :: class . java ) ĊĠĠĠĠĠĠĠ Ġ" sub Entities " Ġ-> Ġsub Entities Ġ= Ġp . readValue As ( sub Entities _ reference ) ĊĠĠĠĠĠĠĠ Ġelse Ġ-> Ġif Ġ( current Token Ġ== ĠJson Token . END _ OBJECT Ġ|| Ġcurrent Token Ġ== ĠJson Token . END _ ARRAY ) Ġ{ Ġp . skip Children () Ġ} Ġelse Ġ{ Ġnext Token () Ġ} ĊĠĠĠĠĠĠĠĠ Ġ} Ġ Ġ} ĊĠĠĠĠĠĠĠ Ġreturn ĠClass ified Entity ( type !! , Ġrole !! , Ġstart !! , Ġend !! , Ġsub Entities !! ) Ġ} ĊĠĠĠ Ġ} ĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġsub Entities _ reference : ĠType Reference < List < Class ified Entity >> Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġobject Ġ: ĠType Reference < List < Class ified Entity >>() Ġ{} ĊĠĠĠ Ġ} Ċ } Ċ