package Ġcom . bug sn ag . android Ċ Ċ import Ġjava . util . Locale Ċ Ċ internal Ġclass ĠEvent Deserializer ( ĊĠĠĠ Ġprivate Ġval Ġclient : ĠClient Ċ ) Ġ: ĠMap Deserializer < Event > Ġ{ ĊĊĠĠĠ Ġprivate Ġval Ġapp Deserializer Ġ= ĠApp Deserializer () ĊĠĠĠ Ġprivate Ġval Ġdevice Deserializer Ġ= ĠDevice Deserializer () ĊĠĠĠ Ġprivate Ġval Ġstack frame Deserializer Ġ= ĠStack frame Deserializer () ĊĠĠĠ Ġprivate Ġval Ġerror Deserializer Ġ= ĠError Deserializer ( stack frame Deserializer , Ġclient . getLogger ()) ĊĠĠĠ Ġprivate Ġval Ġthread Deserializer Ġ= ĠThread Deserializer ( stack frame Deserializer , Ġclient . getLogger ()) ĊĠĠĠ Ġprivate Ġval Ġbreadcrumb Deserializer Ġ= ĠB readcrumb Deserializer ( client . getLogger ()) ĊĊĠĠĠ Ġ@ Suppress (" UN CHECK ED _ CAST ") ĊĠĠĠ Ġoverride Ġfun Ġdeserialize ( map : ĠMutable Map < String , ĠAny ?> ): ĠEvent Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġseverity Reason Ġ= Ġmap [" severity Reason "] Ġas ĠMap < String , ĠAny > ĊĠĠĠĠĠĠĠ Ġval Ġtype Ġ= Ġseverity Reason [" type "] Ġas ĠString ĊĠĠĠĠĠĠĠ Ġval Ġhandled State : ĠHand led State Ġ= ĠHand led State . newInstance ( type ) ĊĠĠĠĠĠĠĠ Ġval Ġunhandled Ġ= Ġmap [" un handled "] Ġas ĠBoolean ĊĠĠĠĠĠĠĠ Ġhandled State . is Unhandled Ġ= Ġunhandled ĊĊĠĠĠĠĠĠĠ Ġ// Ġconstruct Ġevent ĊĠĠĠĠĠĠĠ Ġval Ġevent Ġ= ĠNative Interface . create Event ( null , Ġclient , Ġhandled State ) ĊĠĠĠĠĠĠĠ Ġevent . context Ġ= Ġmap [" context "] Ġas ĠString ? ĊĠĠĠĠĠĠĠ Ġevent . grouping Hash Ġ= Ġmap [" grouping Hash "] Ġas ĠString ? ĊĠĠĠĠĠĠĠ Ġval Ġseverity Ġ= Ġmap [" severity "] Ġas ĠString ĊĠĠĠĠĠĠĠ Ġevent . update Severity Internal ( Severity . valueOf ( severity . toUpperCase ( Locale . US ))) ĊĊĠĠĠĠĠĠĠ Ġ// Ġapp / device ĊĠĠĠĠĠĠĠ Ġevent . app Ġ= Ġapp Deserializer . deserialize ( map [" app "] Ġas ĠMutable Map < String , ĠAny >) ĊĠĠĠĠĠĠĠ Ġevent . device Ġ= Ġdevice Deserializer . deserialize ( map [" device "] Ġas ĠMutable Map < String , ĠAny >) ĊĊĠĠĠĠĠĠĠ Ġ// Ġuser ĊĠĠĠĠĠĠĠ Ġval Ġuser Ġ= ĠUser Deserializer (). deserialize ( map [" user "] Ġas ĠMutable Map < String , ĠAny >) ĊĠĠĠĠĠĠĠ Ġevent . setUser ( user . id , Ġuser . email , Ġuser . name ) ĊĊĠĠĠĠĠĠĠ Ġ// Ġerrors ĊĠĠĠĠĠĠĠ Ġval Ġerrors Ġ= Ġmap [" errors "] Ġas ĠList < Map < String , ĠAny ? >> ĊĠĠĠĠĠĠĠ Ġevent . errors . clear () ĊĠĠĠĠĠĠĠ Ġevent . errors . addAll ( errors . map ( error Deserializer :: deserialize )) ĊĊĠĠĠĠĠĠĠ Ġ// Ġthreads ĊĠĠĠĠĠĠĠ Ġval Ġthreads Ġ= Ġmap [" threads "] Ġas ĠList < Map < String , ĠAny ? >> ĊĠĠĠĠĠĠĠ Ġevent . threads . clear () ĊĠĠĠĠĠĠĠ Ġevent . threads . addAll ( threads . map ( thread Deserializer :: deserialize )) ĊĊĠĠĠĠĠĠĠ Ġ// Ġbreadcrumb s ĊĠĠĠĠĠĠĠ Ġval Ġbreadcrumb s Ġ= Ġmap [" breadcrumbs "] Ġas ĠList < Map < String , ĠAny ? >> ĊĠĠĠĠĠĠĠ Ġevent . breadcrumbs . clear () ĊĠĠĠĠĠĠĠ Ġevent . breadcrumbs . addAll ( breadcrumbs . map ( breadcrumb Deserializer :: deserialize )) ĊĊĠĠĠĠĠĠĠ Ġ// Ġmetadata ĊĠĠĠĠĠĠĠ Ġval Ġmetadata Ġ= Ġmap [" metadata "] Ġas ĠMap < String , ĠAny ?> ĊĠĠĠĠĠĠĠ Ġmetadata . forEach Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġevent . add Metadata ( it . key , Ġit . value Ġas ĠMap < String , ĠAny >) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġreturn Ġevent ĊĠĠĠ Ġ} Ċ } Ċ