package Ġcom . github . k ac so . android commons . network . models Ċ Ċ import Ġcom . github . k ac so . android commons . network . exceptions . Network Exception Ċ import Ġcom . github . k ac so . android commons . network . extensions . toMap Ċ import Ġcom . github . k ac so . android commons . network . factories . IN etwork Exception Factory Ċ import Ġokhttp 3 . Headers Ċ import Ġretrofit 2 . Response Ċ Ċ /** Ċ Ġ* ĠCommon Ġclass Ġused Ġby ĠAPI Ġresponses . Ċ Ġ* Ġ@ param Ġ< T > Ġthe Ġtype Ġof Ġthe Ġresponse Ġobject Ċ </ T > Ġ*/ Ċ sealed Ġclass ĠApiResponse < T > Ġ{ ĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠ Ġfun Ġ< T > Ġcreate ( error : ĠNetwork Exception ): ĠApi ErrorResponse < T > Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĠApi ErrorResponse ( error ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġfun Ġ< T > Ġcreate ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġresponse : ĠResponse < T >, ĊĠĠĠĠĠĠĠĠĠĠĠ Ġnetwork Exception Factory : ĠIN etwork Exception Factory ĊĠĠĠĠĠĠĠ Ġ): ĠApiResponse < T > Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġif Ġ( response . is Successful ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġbody Ġ= Ġresponse . body () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( body Ġ== Ġnull Ġ|| Ġresponse . code () Ġ== Ġ 2 0 4 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠApi Empty Response () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠApi Success Response ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbody Ġ= Ġbody , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġheaders Ġ= Ġresponse . headers () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠApi ErrorResponse ( network Exception Factory . from HttpResponse ( response )) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } Ċ Ċ /** Ċ Ġ* Ġseparate Ġclass Ġfor ĠHTTP Ġ 2 0 4 Ġresponses Ġso Ġthat Ġwe Ġcan Ġmake ĠApi Success Response 's Ġbody Ġnon - null . Ċ Ġ*/ Ċ class ĠApi Empty Response < T > Ġ: ĠApiResponse < T >() Ġ{ ĊĠĠĠ Ġ// All Ġempty Ġresponses Ġare Ġconsidered Ġequal ĊĠĠĠ Ġoverride Ġfun Ġequals ( other : ĠAny ?): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( other Ġ== Ġnull ) Ġreturn Ġfalse ĊĠĠĠĠĠĠĠ Ġif Ġ( other Ġ! is ĠApi Empty Response <* >) Ġreturn Ġfalse ĊĊĠĠĠĠĠĠĠ Ġreturn Ġtrue ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠhashCode (): ĠInt Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġ 1 ĊĠĠĠ Ġ} Ċ } Ċ Ċ data Ġclass ĠApi Success Response < T >( ĊĠĠĠ Ġval Ġbody : ĠT , ĊĠĠĠ Ġval Ġheaders : ĠMap < String , ĠString ?> Ċ ) Ġ: ĠApiResponse < T >() Ġ{ ĊĠĠĠ Ġconstructor ( body : ĠT , Ġheaders : ĠHeaders ?) Ġ: Ġthis ( ĊĠĠĠĠĠĠĠ Ġbody Ġ= Ġbody , ĊĠĠĠĠĠĠĠ Ġheaders Ġ= Ġheaders ?. toMap () Ġ?: Ġempty Map () ĊĠĠĠ Ġ) ĊĊĠĠĠ Ġoverride Ġfun Ġequals ( other : ĠAny ?): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( other Ġ== Ġnull ) Ġreturn Ġfalse ĊĠĠĠĠĠĠĠ Ġif Ġ( other Ġ! is ĠApi Success Response <* >) Ġreturn Ġfalse ĊĊĠĠĠĠĠĠĠ Ġif Ġ( body Ġ!= Ġother . body Ġ|| Ġheaders Ġ!= Ġother . headers ) Ġreturn Ġfalse ĊĊĠĠĠĠĠĠĠ Ġreturn Ġtrue ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠhashCode (): ĠInt Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġbody . hashCode () Ġ+ Ġheaders . hashCode () ĊĠĠĠ Ġ} Ċ } Ċ Ċ data Ġclass ĠApi ErrorResponse < T >( val Ġerror : ĠNetwork Exception ) Ġ: ĠApiResponse < T >() Ġ{ ĊĠĠĠ Ġoverride Ġfun Ġequals ( other : ĠAny ?): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( other Ġ== Ġnull ) Ġreturn Ġfalse ĊĠĠĠĠĠĠĠ Ġif Ġ( other Ġ! is ĠApi ErrorResponse <* >) Ġreturn Ġfalse ĊĊĠĠĠĠĠĠĠ Ġif Ġ( error Ġ!= Ġother . error ) Ġreturn Ġfalse ĊĊĠĠĠĠĠĠĠ Ġreturn Ġtrue ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠhashCode (): ĠInt Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġerror . hashCode () ĊĠĠĠ Ġ} Ċ }