package Ġio . mar lon . clean architecture . domain . use case Ċ Ċ import Ġio . reactivex . Comp letable Ċ import Ġio . reactivex . Flow able Ċ import Ġio . reactivex . Observable Ċ import Ġio . reactivex . Single Ċ import Ġio . reactivex . android . schedul ers . Android Schedulers Ċ import Ġio . reactivex . dis pos ables . Composite Disposable Ċ import Ġio . reactivex . schedul ers . Schedulers Ċ Ċ abstract Ġclass ĠUse Case < out ĠType , Ġin ĠParams > Ġwhere ĠType Ġ: ĠAny Ġ{ ĊĠĠĠ Ġinternal Ġval Ġdis pos ables Ġ= ĠComposite Disposable () ĊĊĠĠĠ Ġfun Ġclear () Ġ= Ġdis pos ables . clear () ĊĊĠĠĠ Ġabstract Ġfun Ġbuild ( params : ĠParams ?): ĠType ĊĊĠĠĠ Ġabstract Ġclass ĠRx Single < T , Ġin ĠP > Ġ: ĠUse Case < Single < T >, ĠP >() Ġ{ ĊĊĠĠĠĠĠĠĠ Ġfun Ġexecute ( observer : ĠUse Case Observer . Rx Single < T >, Ġparams : ĠP ? Ġ= Ġnull ) Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdis pos ables . add ( build ( params ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. subscribe On ( Schedulers . io ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. observe On ( Android Schedulers . main Thread ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. subscribe With ( observer )) ĊĊĠĠĠĠĠĠĠ Ġfun Ġexecute ( on Success : Ġ( T ) Ġ-> ĠUnit , ĠonError : Ġ( Throwable ) Ġ-> ĠUnit , Ġparams : ĠP ? Ġ= Ġnull ) Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdis pos ables . add ( build ( params ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. subscribe On ( Schedulers . io ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. observe On ( Android Schedulers . main Thread ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. subscribe ( on Success , ĠonError )) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġabstract Ġclass ĠRx Observable < T , Ġin ĠP > Ġ: ĠUse Case < Observable < T >, ĠP >() Ġ{ ĊĠĠĠĠĠĠĠ Ġfun Ġexecute ( observer : ĠUse Case Observer . Rx Observable < T >, Ġparams : ĠP ? Ġ= Ġnull ) Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdis pos ables . add ( build ( params ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. subscribe On ( Schedulers . io ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. observe On ( Android Schedulers . main Thread ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. subscribe With ( observer )) ĊĊĠĠĠĠĠĠĠ Ġfun Ġexecute ( onNext : Ġ( T ) Ġ-> ĠUnit , ĠonError : Ġ( Throwable ) Ġ-> ĠUnit , ĠonComplete : Ġ() Ġ-> ĠUnit Ġ= Ġ{}, Ġparams : ĠP ? Ġ= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdis pos ables . add ( build ( params ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. subscribe On ( Schedulers . io ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. observe On ( Android Schedulers . main Thread ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. subscribe ( onNext , ĠonError , ĠonComplete )) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġabstract Ġclass ĠRx Flow able < T , Ġin ĠP > Ġ: ĠUse Case < Flow able < T >, ĠP >() Ġ{ ĊĠĠĠĠĠĠĠ Ġfun Ġexecute ( subscriber : ĠUse Case Observer . Rx Flow able < T >, Ġparams : ĠP ? Ġ= Ġnull ) Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdis pos ables . add ( build ( params ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. subscribe On ( Schedulers . io ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. observe On ( Android Schedulers . main Thread ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. subscribe With ( subscriber )) ĊĊĠĠĠĠĠĠĠ Ġfun Ġexecute ( onNext : Ġ( T ) Ġ-> ĠUnit , ĠonError : Ġ( Throwable ) Ġ-> ĠUnit , ĠonComplete : Ġ() Ġ-> ĠUnit Ġ= Ġ{}, Ġparams : ĠP ? Ġ= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdis pos ables . add ( build ( params ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. subscribe On ( Schedulers . io ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. observe On ( Android Schedulers . main Thread ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. subscribe ( onNext , ĠonError , ĠonComplete )) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġabstract Ġclass ĠRx Comp letable < in ĠP > Ġ: ĠUse Case < Comp letable , ĠP >() Ġ{ ĊĠĠĠĠĠĠĠ Ġfun Ġexecute ( params : ĠP ? Ġ= Ġnull ) Ġ= Ġexecute ({}, Ġparams ) ĊĊĠĠĠĠĠĠĠ Ġfun Ġexecute ( onComplete : Ġ() Ġ-> ĠUnit Ġ= Ġ{}, Ġparams : ĠP ? Ġ= Ġnull ) Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdis pos ables . add ( build ( params ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. subscribe On ( Schedulers . io ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. observe On ( Android Schedulers . main Thread ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. subscribe ( onComplete )) ĊĠĠĠ Ġ} Ċ Ċ }