/* Ċ Ġ* ĠCopyright Ġ 2 0 1 5 ĠN ich olas ĠB ily k Ċ Ġ* Ċ Ġ* Ġ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 . ac orn ui . core . request Ċ Ċ import Ġcom . ac orn ui . action . Progress Ċ import Ġcom . ac orn ui . async . Cancel able Deferred Ċ import Ġcom . ac orn ui . browser . Url Params Ċ import Ġcom . ac orn ui . recycle . Clear able Ċ import Ġcom . ac orn ui . core . di . D Key Ċ import Ġcom . ac orn ui . core . di . Injector Ċ import Ġcom . ac orn ui . core . di . Scoped Ċ import Ġcom . ac orn ui . core . di . inject Ċ import Ġcom . ac orn ui . io . Read ByteBuffer Ċ import Ġcom . ac orn ui . io . Native Read ByteBuffer Ċ Ċ /** Ċ Ġ* ĠA Ġmodel Ġwith Ġthe Ġnecessary Ġinformation Ġto Ġmake Ġan Ġhttp Ġrequest . Ċ Ġ* ĠThis Ġis Ġalso Ġused Ġfor Ġfile Ġrequests . Ċ Ġ* Ġ@ author Ġnb ily k Ċ Ġ*/ Ċ data Ġclass ĠUrl Request Data ( ĊĊĉ ĉ val Ġurl : ĠString Ġ= Ġ"", ĊĊĉ ĉ val Ġmethod : ĠString Ġ= ĠUrl Request Method . GET , ĊĊĉ ĉ val Ġheaders : ĠMap < String , ĠString > Ġ= ĠHashMap (), ĊĊĉ ĉ val Ġuser : ĠString ? Ġ= Ġnull , ĊĊĉ ĉ val Ġpassword : ĠString ? Ġ= Ġnull , ĊĊĉ ĉ val ĠformData : ĠMultip art FormData Ro ? Ġ= Ġnull , ĊĊĉ ĉ var Ġvariables : ĠUrl Params ? Ġ= Ġnull , ĊĊĉ ĉ var Ġbody : ĠString ? Ġ= Ġnull , ĊĊĉ ĉ /** Ċĉĉ Ġ* ĠThe Ġnumber Ġof Ġmilliseconds Ġa Ġrequest Ġcan Ġtake Ġbefore Ġautomatically Ġbeing Ġterminated . Ċĉĉ Ġ* ĠA Ġvalue Ġof Ġ 0 Ġ( which Ġis Ġthe Ġdefault ) Ġmeans Ġthere Ġis Ġno Ġtimeout . Ċĉĉ Ġ*/ Ċĉ ĉ val Ġtimeout : ĠLong Ġ= Ġ 0 L Ċ ) Ġ{ Ċ } Ċ Ċ /** Ċ Ġ* ĠThe Ġpossible Ġvalues Ġfor ĠUrl Request . method Ċ Ġ*/ Ċ object ĠUrl Request Method Ġ{ Ċ ĉ val ĠGET : ĠString Ġ= Ġ" GET " Ċ ĉ val ĠPOST : ĠString Ġ= Ġ" POST " Ċ ĉ val ĠPUT : ĠString Ġ= Ġ" PUT " Ċ ĉ val ĠDELETE : ĠString Ġ= Ġ" DELETE " Ċ } Ċ interface ĠRest Service Factory Ġ{ ĊĊ ĉ fun Ġcreate Text Request ( injector : ĠInject or , Ġrequest Data : ĠUrl Request Data ): ĠRequest < String > Ċ ĉ fun Ġcreate Binary Request ( injector : ĠInject or , Ġrequest Data : ĠUrl Request Data ): ĠRequest < Read ByteBuffer > ĊĊ ĉ comp anion Ġobject Ġ: ĠD Key < Rest Service Factory > Ċ } Ċ Ċ interface ĠRequest < out ĠT >: ĠProgress , ĠCancel able Deferred < T > Ċ Ċ fun ĠScoped . createText Request ( request Data : ĠUrl Request Data ): ĠRequest < String > Ġ{ Ċ ĉ return Ġinject ( Rest Service Factory ). createText Request ( injector , Ġrequest Data ) Ċ } Ċ Ċ fun ĠScoped . create Binary Request ( request Data : ĠUrl Request Data ): ĠRequest < Read ByteBuffer > Ġ{ Ċ ĉ return Ġinject ( Rest Service Factory ). create Binary Request ( injector , Ġrequest Data ) Ċ } Ċ Ċ open Ġclass ĠResponse Exception ( val Ġstatus : ĠShort , Ġmessage : ĠString ?, Ġval Ġdetail : ĠString ) Ġ: ĠThrowable ( message ) Ġ{ ĊĊ ĉ override Ġfun ĠtoString (): ĠString Ġ{ Ċĉ ĉ return Ġ" Response Exception ( status =$ status , Ġmessage =$ message , Ġdetail =$ detail )" Ċ ĉ } Ċ } Ċ Ċ interface ĠMultip art FormData Ro Ġ{ Ċ ĉ val Ġitems : ĠList < FormData Item > Ċ } Ċ Ċ class ĠMultip art FormData Ġ: ĠClear able , ĠMultip art FormData Ro Ġ{ ĊĊ ĉ private Ġval Ġ_ items Ġ= ĠArrayList < FormData Item >() Ċ ĉ override Ġval Ġitems : ĠList < FormData Item > Ċĉ ĉ get () Ġ= Ġ_ items ĊĊ ĉ fun Ġappend ( name : ĠString , Ġvalue : ĠNative Read ByteBuffer , Ġfilename : ĠString ? Ġ= Ġnull ) Ġ{ Ċĉ ĉ _ items . add ( ByteArray Form Item ( name , Ġvalue , Ġfilename )) Ċ ĉ } ĊĊ ĉ fun Ġappend ( name : ĠString , Ġvalue : ĠString ) Ġ{ Ċĉ ĉ _ items . add ( String Form Item ( name , Ġvalue )) Ċ ĉ } ĊĊ ĉ override Ġfun Ġclear () Ġ{ Ċĉ ĉ _ items . clear () Ċ ĉ } Ċ } Ċ Ċ /** Ċ Ġ* ĠA Ġmarker Ġinterface Ġfor Ġitems Ġthat Ġcan Ġbe Ġin Ġthe Ġlist Ġof Ġ[ Multipart FormData . items ] Ċ Ġ*/ Ċ interface ĠFormData Item Ġ{ Ċ ĉ val Ġname : ĠString Ċ } Ċ Ċ class ĠByteArray Form Item ( Ċĉ ĉ override Ġval Ġname : ĠString , Ċĉ ĉ val Ġvalue : ĠNative Read ByteBuffer , Ċĉ ĉ val Ġfilename : ĠString ? Ċ ) Ġ: ĠFormData Item Ċ Ċ class ĠString Form Item ( Ċĉ ĉ override Ġval Ġname : ĠString , Ċĉ ĉ val Ġvalue : ĠString Ċ ) Ġ: ĠFormData Item