/* Ċ Ġ* ĠCopyright Ġ( C ) Ġ 2 0 1 3 Ġy vol k Ġ( Y uri ĠVol kov ), Ġhttp :// y ur iv olk ov . com Ċ Ġ* Ċ Ġ* ĠLicensed Ġunder Ġthe ĠApache ĠLicense , ĠVersion Ġ 2 . 0 Ġ( the Ġ" License "); Ċ Ġ* Ġyou Ġmay Ġnot Ġuse Ġthis Ġfile Ġexcept Ġin Ġcompliance Ġwith Ġthe ĠLicense . Ċ Ġ* ĠYou Ġmay Ġobtain Ġa Ġcopy Ġof Ġthe ĠLicense Ġat Ċ Ġ* Ċ Ġ* ĠĠĠĠĠ Ġhttp :// www . apache . org / licenses / LICENSE - 2 . 0 Ċ Ġ* Ċ Ġ* ĠUnless Ġrequired Ġby Ġapplicable Ġlaw Ġor Ġagreed Ġto Ġin Ġwriting , Ġsoftware Ċ Ġ* Ġdistributed Ġunder Ġthe ĠLicense Ġis Ġdistributed Ġon Ġan Ġ" AS ĠIS " ĠBASIS , Ċ Ġ* ĠWITHOUT ĠWARRANTIES ĠOR ĠCONDITIONS ĠOF ĠANY ĠKIND , Ġeither Ġexpress Ġor Ġimplied . Ċ Ġ* ĠSee Ġthe ĠLicense Ġfor Ġthe Ġspecific Ġlanguage Ġgoverning Ġpermissions Ġand Ċ Ġ* Ġlimitations Ġunder Ġthe ĠLicense . Ċ Ġ*/ Ċ package Ġorg . and status . app . net . social . pump io Ċ Ċ import Ġorg . and status . app . util . Json Utils Ċ import Ġorg . json . JSONObject Ċ Ċ /** Ġ@ see Ġ[ Object ĠTypes ]( https :// www . w 3 . org / TR / activity streams - vocabulary /. activity - types ) Ċ Ġ* Ċ Ġ*/ Ċ internal Ġenum Ġclass ĠP ObjectType ( val Ġid : ĠString , Ġcompatible Type : ĠP ObjectType ?) Ġ{ ĊĠĠĠ ĠACT IVITY (" activity ", Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠ Ġoverride Ġfun Ġis TypeOf ( js o : ĠJSONObject ?): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġvar Ġ` is ` Ġ= Ġfalse ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( js o Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ` is ` Ġ= Ġif Ġ( js o . has (" object type ")) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsuper . is TypeOf ( js o ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠIt Ġmay Ġnot Ġhave Ġthe Ġ" object Type " Ġfield Ġas Ġin Ġthe Ġspecification : ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠĠ Ġhttp :// activity st rea . ms / specs / json / 1 . 0 / ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġj so . has (" verb ") Ġ&& Ġj so . has (" object ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġ` is ` ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ}, ĊĠĠĠ ĠAP PLICATION (" application ", Ġnull ), ĠPER SON (" person ", Ġnull ), ĠCOMMENT (" comment ", Ġnull ), ĠIMAGE (" image ", ĠCOMMENT ), ĠV IDE O (" video ", ĠCOMMENT ), ĠNOTE (" note ", ĠCOMMENT ), ĠCOL LECTION (" collection ", Ġnull ), ĠUNKNOWN (" unknown ", Ġnull ); ĊĊĠĠĠ Ġprivate Ġval Ġcompatible Type : ĠP ObjectType Ġ= Ġcompatible Type Ġ?: Ġthis ĊĊĠĠĠ Ġopen Ġfun Ġis TypeOf ( js o : ĠJSONObject ?): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġvar Ġ` is ` Ġ= Ġfalse ĊĠĠĠĠĠĠĠ Ġif Ġ( js o Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ` is ` Ġ= Ġid . equals ( Json Utils . opt String ( js o , Ġ" object Type "), Ġignore Case Ġ= Ġtrue ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġreturn Ġ` is ` ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠ Ġfun Ġcompatible With ( js o : ĠJSONObject ?): ĠP ObjectType Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġtype Ġ= Ġfrom Json ( js o ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġtype . compatible Type ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġfun Ġfrom Json ( js o : ĠJSONObject ?): ĠP ObjectType Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfor Ġ( type Ġin Ġvalues ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( type . is TypeOf ( js o )) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġtype ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĠUNKNOWN ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ Ġ} Ċ