package Ġcom . pe tr ul ak . clean kotlin . domain . inter actor . base Ċ Ċ import Ġcom . pe tr ul ak . clean kotlin . domain . executor . Scheduler Provider Ċ import Ġio . reactivex . Single Ċ Ċ abstract Ġclass ĠSingle Interactor < T , ĠParameters >( ĊĠĠĠ Ġprivate Ġval Ġscheduler Provider : ĠScheduler Provider Ċ ) Ġ: ĠBase Interactor < T >() Ġ{ ĊĊĠĠĠ Ġabstract Ġfun Ġbuild UseCase ( parameters : ĠParameters ): ĠSingle < T > ĊĊĠĠĠ Ġfun Ġexecute ( onNext : Ġ( T ) Ġ-> ĠUnit , ĠonError : Ġ( Throwable ) Ġ-> ĠUnit Ġ= Ġ{}, Ġparams : ĠParameters ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġsingle Ġ= Ġbuild UseCase ( params ). subscribe On ( scheduler Provider . io ()). observe On ( scheduler Provider . ui ()) ĊĠĠĠĠĠĠĠ Ġval Ġdis posable Ġ= Ġsingle . subscribe With ( get Disposable Single Observer ( onNext , ĠonError )) ĊĠĠĠĠĠĠĠ Ġdis pos ables . add ( dis posable ) ĊĠĠĠ Ġ} Ċ Ċ } Ċ