package Ġcom . de h box tur tle . domain . use cases . base Ċ Ċ import Ġio . reactivex . rx java 3 . core . Comp letable Ċ Ċ /** Ċ Ġ* ĠCopyright Ġ( C ) Ġ 2 0 2 0 ĠSal v ador ĠMart ine z Ċ Ġ* ĠLicensed Ġunder Ġthe ĠApache ĠLicense ĠVersion Ġ 2 . 0 Ċ Ġ*/ Ċ abstract Ġclass ĠComp letable UseCase < in ĠP > Ċ constructor ( ĊĠĠĠ Ġprivate Ġval Ġuse Case Scheduler : ĠUse Case Scheduler ?, ĊĠĠĠ Ġprivate Ġval Ġlogger : ĠLogger ? Ċ ) Ġ: ĠUse Case < Comp letable , ĠP >( logger ) Ġ{ ĊĊĠĠĠ Ġoverride Ġfun Ġexecute ( param : ĠP , Ġfrom UseCase : ĠBoolean ): ĠComp letable Ġ= ĊĠĠĠĠĠĠĠ Ġsuper . execute ( param , Ġfrom UseCase ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. compose Ġ{ Ġtransformer Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġuse Case Scheduler ?. let Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( from UseCase ) Ġtransformer ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġtransformer . subscribe On ( it . run ). observe On ( it . post ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġ?: Ġtransformer ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. do OnError Ġ{ Ġlogger ?. log Error Ġ{ Ġit Ġ} Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. do On Complete Ġ{ Ġlogger ?. log Ġ{ Ġ"${ java Class . simple Name } Ġ: Ġ$ param Ġ=> Ġcompleted " Ġ} Ġ} Ċ Ċ } Ċ