package Ġcom . pe ter le . ped ro . domain . inter actors čĊč Ċ import Ġcom . pe ter le . ped ro . domain . Observable UseCase č Ċ import Ġcom . pe ter le . ped ro . domain . executor . Post Execution Thread č Ċ import Ġcom . pe ter le . ped ro . domain . model . Film č Ċ import Ġcom . pe ter le . ped ro . domain . model . Film Details č Ċ import Ġcom . pe ter le . ped ro . domain . repository . SW API Repository č Ċ import Ġio . reactivex . Observable č Ċ import Ġjavax . inject . Inject čĊč Ċ class ĠGet Film Details Ġ@ Inject Ġconstructor ( čĊĠĠĠĠĠĠĠ Ġprivate Ġval Ġrepository : ĠSW API Repository , čĊĠĠĠĠĠĠĠ Ġpost Execution Thread : ĠPost Execution Thread č Ċ ): ĠObservable UseCase < Film Details , ĠGet Film Details . Params >( post Execution Thread ){ čĊčĊĠĠĠ Ġoverride Ġfun Ġbuild UseCase Observable ( params : ĠParams ?): ĠObservable < Film Details > Ġ{ čĊĠĠĠĠĠĠĠ Ġif Ġ( params Ġ== Ġnull ) Ġthrow ĠIllegalArgumentException (" Params Ġcan Ġnot Ġbe Ġnull ") čĊčĊĠĠĠĠĠĠĠ Ġreturn Ġrepository . get Film Details ( params . id ) čĊĠĠĠ Ġ} čĊčĊĠĠĠ Ġclass ĠParams ( val Ġid : ĠString ) č Ċ }