package Ġcom . example . my application . domain . use case . base Ċ Ċ import Ġio . reactivex . dis pos ables . Composite Disposable Ċ import Ġio . reactivex . dis pos ables . Disposable Ċ Ċ abstract Ġclass ĠBase Rx UseCase < Params , ĠSource , ĠObserver > Ġ{ ĊĊĠĠĠ Ġabstract Ġfun Ġbuild UseCase Observable ( params : ĠParams ): ĠSource ĊĊĠĠĠ Ġabstract Ġfun Ġexecute ( observer : ĠObserver , Ġparams : ĠParams ) ĊĊĠĠĠ Ġprivate Ġval Ġcomposite Disposable Ġ= ĠComposite Disposable () ĊĊĠĠĠ Ġfun Ġclear () Ġ= Ġcomposite Disposable . apply Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ(! is Disposed ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġclear () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġdispose () Ġ= Ġcomposite Disposable . dispose () ĊĊĠĠĠ Ġfun Ġadd Disposable ( dis posable : ĠDis posable ) Ġ= Ġcomposite Disposable . add ( dis posable ) Ċ }