package Ġorg . f azi ode v . say what starter . de serializers Ċ Ċ import Ġcom . google . gson . Json Deserialization Context Ċ import Ġcom . google . gson . Json Deserializer Ċ import Ġcom . google . gson . Json Element Ċ import Ġorg . f azi ode v . say what starter . types . messages .* Ċ import Ġjava . lang . reflect . Type Ċ Ċ class ĠMessage Deserializer : ĠJson Deserializer < Message ?> Ġ{ ĊĊĠĠĠ Ġoverride Ġfun Ġdeserialize ( json : ĠJson Element ?, ĠtypeOf T : ĠType ?, Ġcontext : ĠJson Deserialization Context ?): ĠMessage ? Ġ{ ĊĠĠĠĠĠĠĠ Ġval ĠjsonObject Ġ= Ġjson ?. as JsonObject Ġ?: Ġreturn Ġnull ĊĠĠĠĠĠĠĠ Ġif ( jsonObject . has (" text ")) Ġreturn Ġcontext ?. deserialize ( jsonObject , ĠText Message :: class . java ) ĊĠĠĠĠĠĠĠ Ġif ( jsonObject . has (" platform ")) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġplatform : ĠString ? Ġ= ĠjsonObject [" platform "] ?. asString ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif ( platform Ġ== Ġ" ACTION S _ ON _ GOOGLE ") Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġc Ġ= Ġwhen Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠjsonObject . has (" simple Responses ") Ġ-> ĠGoogle Simple Responses Message :: class . java ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠjsonObject . has (" basic Card ") Ġ-> ĠGoogle Basic Card Message :: class . java ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠjsonObject . has (" link Out Suggestion ") Ġ-> ĠGoogle Link Out Suggestion Message :: class . java ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġ-> Ġreturn Ġnull ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġcontext ?. deserialize ( jsonObject , Ġc ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġreturn Ġnull ĊĠĠĠ Ġ} Ċ }