/* Ċ Ġ* ĠCopyright Ġ 2 0 1 9 ĠF rol lo Ċ Ġ* Ċ Ġ* Ġ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 Ġus . f rol lo . f rol lo sdk . base Ċ Ċ import Ġus . f rol lo . f rol lo sdk . error . F rol lo SDK Error Ċ Ċ /** Ċ Ġ* ĠA Ġvalue Ġthat Ġrepresents Ġeither Ġa Ġsuccess Ġor Ġa Ġfailure , Ġincluding Ġan Ġassociated Ġdata Ġon Ġsuccess Ġor Ġerror Ġon Ġfailure . Ċ Ġ*/ Ċ class ĠResource < out ĠT > Ġprivate Ġconstructor ( ĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠStatus Ġof Ġthe Ġfetch Ġresult ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġval Ġstatus : ĠStatus , ĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠF etched Ġdata . Ġnull Ġif Ġstate Ġis Ġ[ Status . ERROR ] ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġval Ġdata : ĠT ? Ġ= Ġnull , ĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠError Ġdetails Ġif Ġstate Ġis Ġ[ Status . ERROR ] ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġval Ġerror : ĠF rol lo SDK Error ? Ġ= Ġnull Ċ ) Ġ{ ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠEnum Ġof Ġfetch Ġresult Ġstates ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġenum Ġclass ĠStatus Ġ{ ĊĠĠĠĠĠĠĠ Ġ/** ĊĠĠĠĠĠĠĠĠ Ġ* ĠIndicates Ġdata Ġfetched Ġsuccessfully . ĊĠĠĠĠĠĠĠĠ Ġ*/ ĊĠĠĠĠĠĠĠ ĠSUCCESS , ĊĠĠĠĠĠĠĠ Ġ/** ĊĠĠĠĠĠĠĠĠ Ġ* ĠIndicates Ġerror Ġwhile Ġfetching Ġdata . ĊĠĠĠĠĠĠĠĠ Ġ*/ ĊĠĠĠĠĠĠĠ ĠERROR ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠMaps Ġthe Ġ[ Resource ] Ġdata Ġinto Ġa Ġnew Ġ[ Resource ] Ġobject Ġwith Ġnew Ġdata , Ġwhile Ġcopying Ġthe Ġother Ġproperties ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġfun Ġ< Y > Ġmap ( function : Ġ( T ?) Ġ-> ĠY ?): ĠResource < Y > Ġ= ĠResource ( status , Ġfunction ( data ), Ġerror ) ĊĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠ Ġ/** ĊĠĠĠĠĠĠĠĠ Ġ* ĠInstantiate ĠResource Ġwith Ġstatus ĠSuccess ĊĠĠĠĠĠĠĠĠ Ġ* ĊĠĠĠĠĠĠĠĠ Ġ* Ġ@ param Ġdata ĠAssoci ated Ġdata Ġ( Optional ) ĊĠĠĠĠĠĠĠĠ Ġ*/ ĊĠĠĠĠĠĠĠ Ġfun Ġ< T > Ġsuccess ( data : ĠT ?): ĠResource < T > Ġ= ĠResource ( Status . SUCCESS , Ġdata , Ġnull ) ĊĊĠĠĠĠĠĠĠ Ġ/** ĊĠĠĠĠĠĠĠĠ Ġ* ĠInstantiate ĠResource Ġwith Ġstatus ĠError ĊĠĠĠĠĠĠĠĠ Ġ* ĊĠĠĠĠĠĠĠĠ Ġ* Ġ@ param Ġerror ĠAssoci ated Ġerror Ġconform ing Ġ[ F rol lo SDK Error ] Ġ( Optional ) ĊĠĠĠĠĠĠĠĠ Ġ* Ġ@ param Ġdata ĠAssoci ated Ġdata Ġ( Optional ) ĊĠĠĠĠĠĠĠĠ Ġ*/ ĊĠĠĠĠĠĠĠ Ġfun Ġ< T > Ġerror ( error : ĠF rol lo SDK Error ?, Ġdata : ĠT ? Ġ= Ġnull ): ĠResource < T > Ġ= ĠResource ( Status . ERROR , Ġdata , Ġerror ) ĊĠĠĠ Ġ} Ċ } Ċ