package Ġcom . che ise _ proj . presentation . vo Ċ Ċ enum Ġclass ĠSTATUS Ġ{ ĊĠĠĠ ĠLO ADING , ĠSUCCESS , ĠERROR Ċ } Ċ Ċ data Ġclass ĠResource < out ĠT >( val Ġstatus : ĠSTATUS , Ġval Ġdata : ĠT ?, Ġval Ġmessage : ĠString ?) Ġ{ ĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠ Ġfun Ġ< T > Ġon Loading (): ĠResource < T > Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĠResource ( STATUS . LOADING , Ġnull , Ġnull ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġfun Ġ< T > ĠonSuccess ( data : ĠT , Ġmessage : ĠString ? Ġ= Ġnull ): ĠResource < T > Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĠResource ( STATUS . SUCCESS , Ġdata , Ġmessage ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġfun Ġ< T > ĠonError ( message : ĠString ?, Ġdata : ĠT ? Ġ= Ġnull ): ĠResource < T > Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĠResource ( STATUS . ERROR , Ġdata , Ġmessage ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ Ċ }