package Ġtwitter 4 j Ċ Ċ import Ġjava . util .* Ċ Ċ data Ġclass ĠUser 2 ( ĊĠĠĠ Ġval Ġid : ĠLong , ĊĠĠĠ Ġval Ġlocation : ĠString ?, ĊĠĠĠ Ġval ĠcreatedAt : ĠDate ?, ĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠKnown Ġas Ġscreen - name ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġval Ġusername : ĠString , ĊĠĠĠ Ġval Ġprotected : ĠBoolean , ĊĠĠĠ Ġval Ġpublic Metrics : ĠPublic Metrics ?, ĊĠĠĠ Ġval Ġurl Entities : ĠList < Url Entity 2 >? Ġ= Ġmutable ListOf (), ĊĠĠĠ Ġval Ġdescription Entity : ĠDescription Entity ?, ĊĠĠĠ Ġval Ġdescription : ĠString ?, ĊĠĠĠ Ġval Ġurl : ĠString ?, ĊĠĠĠ Ġval Ġprofile ImageUrl : ĠString ?, ĊĠĠĠ Ġval Ġname : ĠString , ĊĠĠĠ Ġval Ġverified : ĠBoolean , ĊĠĠĠ Ġval Ġpinned Tweet Id : ĠLong ? Ċ ) Ġ{ ĊĠĠĠ Ġdata Ġclass ĠPublic Metrics ( ĊĠĠĠĠĠĠĠ Ġval Ġfollow ers Count : ĠInt , ĊĠĠĠĠĠĠĠ Ġval Ġfollowing Count : ĠInt , ĊĠĠĠĠĠĠĠ Ġval Ġtweet Count : ĠInt , ĊĠĠĠĠĠĠĠ Ġval Ġlisted Count : ĠInt ĊĠĠĠ Ġ) Ġ{ ĊĊĠĠĠĠĠĠĠ Ġconstructor ( json : ĠJSONObject ) Ġ: Ġthis ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfollow ers Count Ġ= ĠParse Util . getInt (" followers _ count ", Ġjson ), ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfollowing Count Ġ= ĠParse Util . getInt (" following _ count ", Ġjson ), ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtweet Count Ġ= ĠParse Util . getInt (" tweet _ count ", Ġjson ), ĊĠĠĠĠĠĠĠĠĠĠĠ Ġlisted Count Ġ= ĠParse Util . getInt (" listed _ count ", Ġjson ) ĊĠĠĠĠĠĠĠ Ġ) ĊĊĠĠĠ Ġ} ĊĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĊĠĠĠĠĠĠĠ Ġfun Ġparse ( json : ĠJSONObject ): ĠUser 2 Ġ{ ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġentities ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġentities Ġ= Ġjson . opt JSONObject (" entities ") ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġentities . url . urls ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġurl Entities : ĠMutable List < Url Entity 2 >? Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġentities ?. opt JSONObject (" url ") ?. opt JSONArray (" urls ") ?. let Ġ{ Ġurls Array Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmutable ListOf < Url Entity 2 >(). also Ġ{ ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfor Ġ( i Ġin Ġ 0 Ġuntil Ġurls Array . length ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġv Ġ= Ġurls Array . getJSONObject ( i ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġit . add ( Url Entity 2 ( v )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġentities . description . mentions ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġdescription Entity : ĠDescription Entity ? Ġ= Ġentities ?. opt JSONObject (" description ") ?. let Ġ{ Ġdescription Json Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠDescription Entity ( description Json ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĠUser 2 ( json . getLong (" id "), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlocation Ġ= Ġjson . opt String (" location ", Ġnull ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠcreatedAt Ġ= ĠV 2 Util . parse ISO 8 6 0 1 Date (" created _ at ", Ġjson ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġusername Ġ= Ġjson . getString (" username "), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġprotected Ġ= Ġjson . opt Boolean (" protected ", Ġfalse ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpublic Metrics Ġ= Ġjson . opt JSONObject (" public _ metrics ") ?. let Ġ{ ĠPublic Metrics ( it ) Ġ}, ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġurl Entities Ġ= Ġurl Entities , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdescription Entity Ġ= Ġdescription Entity , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdescription Ġ= Ġjson . opt String (" description ", Ġnull ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġurl Ġ= Ġjson . opt String (" url ", Ġnull ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġprofile ImageUrl Ġ= Ġjson . opt String (" profile _ image _ url ", Ġnull ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġname Ġ= Ġjson . getString (" name "), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġverified Ġ= Ġjson . opt Boolean (" verified ", Ġfalse ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpinned Tweet Id Ġ= Ġjson . opt Long OrNull (" pinned _ tweet _ id ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ Ċ } Ċ