package Ġcom . example . alex ey gl ush kov . quiz let service . de serializers Ċ Ċ import Ġcom . example . alex ey gl ush kov . jackson lib . Custom Deserializer Ċ import Ġcom . example . alex ey gl ush kov . quiz let service . entities . Quiz let Set Ċ import Ġcom . example . alex ey gl ush kov . quiz let service . entities . Quiz let Term Ċ import Ġcom . example . alex ey gl ush kov . quiz let service . entities . Quiz let User Ċ import Ġcom . fasterxml . jackson . core . Json Parser Ċ import Ġcom . fasterxml . jackson . databind . Deserialization Context Ċ import Ġcom . fasterxml . jackson . databind . ObjectMapper Ċ import Ġjava . io . IOException Ċ import Ġjava . util .* Ċ import Ġkotlin . collections . ArrayList Ċ Ċ /** Ċ Ġ* ĠCreated Ġby Ġa lex ey gl ush kov Ġon Ġ 2 7 . 0 3 . 1 6 . Ċ Ġ*/ Ċ class ĠQu iz let Set Deserializer ( vc : ĠClass < Quiz let Set >) Ġ: ĠCustom Deserializer < Quiz let Set >( vc ) Ġ{ ĊĠĠĠ Ġoverride Ġfun Ġcreate Object (): ĠQu iz let Set Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn ĠQu iz let Set () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Throws ( IOException :: class ) ĊĠĠĠ Ġprotected Ġoverride Ġfun Ġhandle ( p : ĠJson Parser , Ġctxt : ĠDeserial ization Context , Ġset : ĠQu iz let Set ): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġmapper Ġ= Ġp . codec Ġas ĠObjectMapper ĊĠĠĠĠĠĠĠ Ġval Ġname Ġ= Ġp . current Name ĊĠĠĠĠĠĠĠ Ġvar Ġis Handled Ġ= Ġfalse ĊĠĠĠĠĠĠĠ Ġif Ġ( name Ġ== Ġ" id ") Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġset . id Ġ= Ġ_ parse Long Primitive ( p , Ġctxt ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġis Handled Ġ= Ġtrue ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġif Ġ( name Ġ== Ġ" title ") Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġset . title Ġ= Ġ_ parse String ( p , Ġctxt ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġis Handled Ġ= Ġtrue ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġif Ġ( name Ġ== Ġ" created _ date ") Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġset . create Date Ġ= Ġ_ parse Long ( p , Ġctxt ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġis Handled Ġ= Ġtrue ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġif Ġ( name Ġ== Ġ" modified _ date ") Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġset . modified Date Ġ= Ġ_ parse Long ( p , Ġctxt ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġis Handled Ġ= Ġtrue ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġif Ġ( name Ġ== Ġ" published _ date ") Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġset . published Date Ġ= Ġ_ parse Long ( p , Ġctxt ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġis Handled Ġ= Ġtrue ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġif Ġ( name Ġ== Ġ" has _ images ") Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġset . is Has Images Ġ= Ġ_ parse Boolean Primitive ( p , Ġctxt ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġis Handled Ġ= Ġtrue ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġif Ġ( name Ġ== Ġ" can _ edit ") Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġset . is Can Edit Ġ= Ġ_ parse Boolean Primitive ( p , Ġctxt ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġis Handled Ġ= Ġtrue ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġif Ġ( name Ġ== Ġ" has _ access ") Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġset . is Has Access Ġ= Ġ_ parse Boolean Primitive ( p , Ġctxt ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġis Handled Ġ= Ġtrue ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġif Ġ( name Ġ== Ġ" description ") Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġset . description Ġ= Ġ_ parse String ( p , Ġctxt ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġis Handled Ġ= Ġtrue ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġif Ġ( name Ġ== Ġ" lang _ terms ") Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġset . lang Terms Ġ= Ġ_ parse String ( p , Ġctxt ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġis Handled Ġ= Ġtrue ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġif Ġ( name Ġ== Ġ" lang _ definitions ") Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġset . lang Defs Ġ= Ġ_ parse String ( p , Ġctxt ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġis Handled Ġ= Ġtrue ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġif Ġ( name Ġ== Ġ" creator ") Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġcreator Ġ= Ġmapper . readValue ( p , ĠQu iz let User :: class . java ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġset . creator Ġ= Ġcreator ĊĠĠĠĠĠĠĠĠĠĠĠ Ġis Handled Ġ= Ġtrue ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġif Ġ( name Ġ== Ġ" terms ") Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġterms Ġ= Ġmapper . readValue ( p , ĠArray < Quiz let Term >:: class . java ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġset . terms Ġ= ĠArrayList ( Arrays . asList (* terms )) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfor Ġ( term Ġin Ġterms ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġterm . setId Ġ= Ġset . id ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġis Handled Ġ= Ġtrue ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġreturn Ġis Handled ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠ Ġprivate Ġconst Ġval ĠserialVersionUID Ġ= Ġ 1 6 0 0 4 7 2 6 8 4 1 1 3 6 9 0 5 6 1 L ĊĠĠĠ Ġ} Ċ }