package Ġio . github . war ri or zz . kt ify . model Ċ Ċ import Ġio . github . war ri or zz . kt ify . model . util . ObjectType Ċ import Ġkotlinx . serialization . Deserialization Strategy Ċ import Ġkotlinx . serialization . Serializable Ċ import Ġkotlinx . serialization . json . Json Content Pol ymorphic Serializer Ċ import Ġkotlinx . serialization . json . Json Element Ċ import Ġkotlinx . serialization . json . jsonObject Ċ import Ġkotlinx . serialization . json . json Primitive Ċ Ċ @ Serializable Ċ sealed Ġclass ĠK t ify Object Ġ{ ĊĊĠĠĠ Ġabstract Ġval Ġtype : ĠObjectType Ċ } Ċ Ċ @ Serializable Ċ data Ġclass ĠRaw Kt ify Object ( ĊĠĠĠ Ġoverride Ġval Ġtype : ĠObjectType Ċ ) Ġ: ĠK t ify Object () Ċ Ċ object ĠK t ify Object Serializer Ġ: ĠJson Content Pol ymorphic Serializer < Kt ify Object >( Kt ify Object :: class ) Ġ{ ĊĠĠĠ Ġoverride Ġfun Ġselect Deserializer ( element : ĠJson Element ): ĠDeserial ization Strategy < out ĠK t ify Object > Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġwhen Ġ( element . jsonObject [" item "] ?. jsonObject ?. get (" type ") ?. json Primitive ?. content ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" track " Ġ-> ĠTrack . serializer () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" album " Ġ-> ĠAlbum . serializer () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" artist " Ġ-> ĠArtist . serializer () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" user " Ġ-> ĠPublic User . serializer () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" episode " Ġ-> ĠEp isode . serializer () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" show " Ġ-> ĠShow . serializer () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġ-> ĠRaw Kt ify Object . serializer () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } Ċ