/** Ċ Ġ* ĠCopyright Ġ( c ) Ġ 2 0 1 9 ĠSK ĠTele com ĠCo ., ĠLtd . ĠAll Ġrights Ġreserved . Ċ Ġ* Ċ Ġ* Ġ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 Ġcom . sk t . n ugu . sdk . platform . android . login . auth Ċ Ċ import Ġorg . json . JSONException Ċ import Ġorg . json . JSONObject Ċ import Ġjava . util .* Ċ Ċ /** Ċ Ġ* Ġ Ġbase Ġclass Ġfor Ġan Ġauthorized Ġidentity Ċ Ġ**/ Ċ data Ġclass ĠCredentials ( ĊĠĠĠ Ġ/** ĠThe ĠNU GU Ġauth Ġtoken Ġ**/ ĊĠĠĠ Ġvar ĠaccessToken : ĠString , ĊĠĠĠ Ġ/** ĠThe ĠNU GU Ġrefresh Ġtoken Ġ**/ ĊĠĠĠ Ġvar Ġrefresh Token : ĠString , ĊĠĠĠ Ġ/** ĠThe Ġlifetime Ġin Ġseconds Ġof Ġthe Ġaccess Ġtoken Ġ**/ ĊĠĠĠ Ġvar Ġexpires In : ĠLong , ĊĠĠĠ Ġ/** ĠThe Ġissued ĠTime Ġ**/ ĊĠĠĠ Ġvar Ġissued Time : ĠLong , ĊĠĠĠ Ġ/** ĠThe Ġaccess ĠToken ĠType Ġ**/ ĊĠĠĠ Ġvar Ġtoken Type : ĠString , ĊĠĠĠ Ġ/** ĠThe Ġscope Ġstring Ġ**/ ĊĠĠĠ Ġvar Ġscope : ĠString ? Ċ ) Ġ{ ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* Ġclear Ġall Ġof Ġthe Ġelements Ġfrom Ġthis Ġlist . ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġfun Ġclear () Ġ{ ĊĠĠĠĠĠĠĠ ĠaccessToken Ġ= Ġ"" ĊĠĠĠĠĠĠĠ Ġrefresh Token Ġ= Ġ"" ĊĠĠĠĠĠĠĠ Ġexpires In Ġ= Ġ 0 ĊĠĠĠĠĠĠĠ Ġissued Time Ġ= Ġ 0 ĊĠĠĠĠĠĠĠ Ġtoken Type Ġ= Ġ"" ĊĠĠĠĠĠĠĠ Ġscope Ġ= Ġnull ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠReturns Ġa Ġstring Ġrepresentation Ġof Ġthe Ġobject . ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġoverride Ġfun ĠtoString (): ĠString Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġjson Ġ= ĠJSONObject () ĊĠĠĠĠĠĠĠ Ġjson . put (" access _ token ", ĠaccessToken ) ĊĠĠĠĠĠĠĠ Ġjson . put (" token _ type ", Ġtoken Type ) ĊĠĠĠĠĠĠĠ Ġjson . put (" expires _ in ", Ġexpires In ) ĊĠĠĠĠĠĠĠ Ġjson . put (" iss ued _ time ", Ġissued Time ) ĊĠĠĠĠĠĠĠ Ġjson . put (" refresh _ token ", Ġrefresh Token ) ĊĠĠĠĠĠĠĠ Ġjson . put (" scope ", Ġscope ) ĊĠĠĠĠĠĠĠ Ġreturn Ġjson . toString () ĊĠĠĠ Ġ} ĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠComp anion Ġobjects ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠ Ġ/** ĊĠĠĠĠĠĠĠĠ Ġ* ĠDefault Ġconstructor Ġof ĠCredentials ĊĠĠĠĠĠĠĠĠ Ġ**/ ĊĠĠĠĠĠĠĠ Ġfun ĠDEFAULT () Ġ= ĠCredentials ( ĊĠĠĠĠĠĠĠĠĠĠĠ ĠaccessToken Ġ= Ġ"", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġrefresh Token Ġ= Ġ"", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġexpires In Ġ= Ġ 0 , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġissued Time Ġ= Ġ 0 , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtoken Type Ġ= Ġ"", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġscope Ġ= Ġnull ĊĠĠĠĠĠĠĠ Ġ) ĊĊĠĠĠĠĠĠĠ Ġ/** ĊĠĠĠĠĠĠĠĠ Ġ* ĠParse Ġto Ġa ĠCredentials ĊĠĠĠĠĠĠĠĠ Ġ* Ġ@ param Ġstring Ġis Ġjson Ġformat ĊĠĠĠĠĠĠĠĠ Ġ* Ġ@ return Ġa ĠCredentials ĊĠĠĠĠĠĠĠĠ Ġ* Ġ@ throws ĠJSON Exception Ġif Ġthe Ġparse Ġfails Ġor Ġdoesn 't Ġyield Ġa ĠJSONObject ĊĠĠĠĠĠĠĠĠ Ġ*/ ĊĠĠĠĠĠĠĠ Ġ@ Throws ( JSONException :: class ) ĊĠĠĠĠĠĠĠ Ġfun Ġparse ( string : ĠString ): ĠCredentials Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( string . isBlank ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĠDEFAULT () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ ĠJSONObject ( string ). apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĠCredentials ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠaccessToken Ġ= ĠgetString (" access _ token "), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġexpires In Ġ= Ġget Long (" expires _ in "), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġissued Time Ġ= Ġif (! has (" iss ued _ time ")) ĠDate (). time Ġelse Ġget Long (" iss ued _ time "), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtoken Type Ġ= ĠgetString (" token _ type "), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġrefresh Token Ġ= Ġif Ġ(! has (" refresh _ token ")) Ġ"" Ġelse ĠgetString (" refresh _ token "), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġscope Ġ= Ġ Ġif Ġ(! has (" scope ")) Ġnull Ġelse ĠgetString (" scope ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠConstructs Ġa Ġnew Ġ[ Credentials ] Ġbuilder , ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġclass ĠBuilder Ġ{ ĊĠĠĠĠĠĠĠ Ġ/** ĊĠĠĠĠĠĠĠĠ Ġ* ĠThe ĠNU GU Ġauth Ġtoken . ĊĠĠĠĠĠĠĠĠ Ġ*/ ĊĠĠĠĠĠĠĠ Ġprivate Ġvar ĠaccessToken : ĠString Ġ= Ġ"" ĊĠĠĠĠĠĠĠ Ġ/** ĊĠĠĠĠĠĠĠĠ Ġ* ĠThe ĠNU GU Ġrefresh Ġtoken . ĊĠĠĠĠĠĠĠĠ Ġ*/ ĊĠĠĠĠĠĠĠ Ġprivate Ġvar Ġrefresh Token : ĠString Ġ= Ġ"" ĊĠĠĠĠĠĠĠ Ġ/** ĊĠĠĠĠĠĠĠĠ Ġ* ĠThe Ġlifetime Ġin Ġseconds Ġof Ġthe Ġaccess Ġtoken . ĊĠĠĠĠĠĠĠĠ Ġ* ĠA Ġtime Ġwhen Ġcredentials Ġshould Ġbe Ġconsidered Ġexpired . ĊĠĠĠĠĠĠĠĠ Ġ*/ ĊĠĠĠĠĠĠĠ Ġprivate Ġvar Ġexpires In : ĠLong Ġ= Ġ 0 ĊĠĠĠĠĠĠĠ Ġ/** ĊĠĠĠĠĠĠĠĠ Ġ* ĠThe Ġissue Ġtime Ġassociated Ġwith Ġthe Ġaccess Ġtoken . ĊĠĠĠĠĠĠĠĠ Ġ*/ ĊĠĠĠĠĠĠĠ Ġprivate Ġvar Ġissued Time : ĠLong Ġ= Ġ 0 ĊĠĠĠĠĠĠĠ Ġ/** ĊĠĠĠĠĠĠĠĠ Ġ* ĠOAuth ĠAccess ĠToken ĠType ĊĠĠĠĠĠĠĠĠ Ġ* Ġ@ see Ġ[ https :// tools . ietf . org / html / rfc 6 7 5 0 ] ĊĠĠĠĠĠĠĠĠ Ġ*/ ĊĠĠĠĠĠĠĠ Ġprivate Ġvar Ġtoken Type : ĠString Ġ= Ġ"" ĊĊĠĠĠĠĠĠĠ Ġ/** ĊĠĠĠĠĠĠĠĠ Ġ* ĠA Ġspace - de limited Ġset Ġof Ġscopes Ġused Ġto Ġdetermine Ġthe Ġscope Ġof Ġany Ġreturned Ġtokens . ĊĠĠĠĠĠĠĠĠ Ġ* Ġ@ see Ġ[ https :// tools . ietf . org / html / rfc 6 7 4 9 # section - 3 . 3 ] ĊĠĠĠĠĠĠĠĠ Ġ*/ ĊĠĠĠĠĠĠĠ Ġprivate Ġvar Ġscope : ĠString ? Ġ= Ġnull ĊĊĠĠĠĠĠĠĠ Ġ/** ĊĠĠĠĠĠĠĠĠ Ġ* ĠReturns Ġa Ġnew Ġinstance Ġof Ġan ĠCredentials Ġbased Ġon Ġthis Ġbuilder . ĊĠĠĠĠĠĠĠĠ Ġ*/ ĊĠĠĠĠĠĠĠ Ġfun Ġbuild () Ġ= ĠCredentials ( ĊĠĠĠĠĠĠĠĠĠĠĠ ĠaccessToken , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġrefresh Token , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġexpires In , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġissued Time , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtoken Type , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġscope ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ} Ċ }