package Ġcom . x ur x ode v . movies kot link ata . domain . use case Ċ Ċ import Ġcom . x ur x ode v . movies kot link ata . domain . boundary . Executor Ċ import Ġcom . x ur x ode v . movies kot link ata . domain . boundary . Movie Repository Ċ import Ġcom . x ur x ode v . movies kot link ata . domain . common . functional . Either Ċ import Ġcom . x ur x ode v . movies kot link ata . domain . entity . Movie Ċ import Ġcom . x ur x ode v . movies kot link ata . domain . failures . Get Movie Failure Ċ Ċ class ĠGet Movie ById UseCase ( private Ġval Ġmovie Repository : ĠMovie Repository , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġprivate Ġval Ġexecutor : ĠExecutor ) Ġ: ĠUse Case ( executor ) Ġ{ ĊĊĠĠĠ Ġprivate Ġvar Ġid : ĠLong Ġ= Ġ 0 ĊĊĠĠĠ Ġfun Ġexecute ( id : ĠLong , Ġon Result : Ġ( Either < Get Movie Failure , ĠMovie >) Ġ-> ĠUnit ) Ġ{ ĊĠĠĠĠĠĠĠ Ġthis . id Ġ= Ġid ĊĊĠĠĠĠĠĠĠ Ġasync Execute Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġmovie Result Ġ= Ġmovie Repository . getById ( id ) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġui Execute Ġ{ Ġon Result ( movie Result ) Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ }