package Ġcom . example . domain . use cases Ċ Ċ import Ġcom . example . domain . entities . Android Job Ċ import Ġcom . example . domain . repository . Android Jobs Repository Ċ import Ġcom . example . domain . responses . Result Required Ċ import Ġkotlinx . coroutines . flow . Flow Ċ import Ġkotlinx . coroutines . flow . map ĊĊ Ċ interface ĠGet Jobs Use Cases { ĊĠĠĠ Ġfun Ġget Jobs (): ĠFlow < Result Jobs > ĊĠĠĠ Ġfun Ġadd Job () ĊĊĠĠĠ Ġsealed Ġclass ĠResult Jobs Ġ{ ĊĠĠĠĠĠĠĠ Ġdata Ġclass ĠJobs ( val Ġlist : ĠList < Android Job >): ĠResult Jobs () ĊĠĠĠĠĠĠĠ Ġobject ĠNo Jobs : ĠResult Jobs () ĊĠĠĠĠĠĠĠ Ġobject ĠError : ĠResult Jobs () ĊĠĠĠ Ġ} Ċ } Ċ Ċ class ĠGet Jobs Use Cases Impl ( ĊĠĠĠ Ġprivate Ġval Ġrepository : ĠAndroid Jobs Repository Ċ ): ĠGet Jobs Use Cases Ġ{ ĊĊĠĠĠ Ġoverride Ġfun Ġget Jobs (): ĠFlow < Get Jobs Use Cases . Result Jobs > Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġrepository . get Jobs () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. map Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġwhen ( it ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġis ĠResult Required . Success Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġwhen Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġit . result . isEmpty () Ġ-> ĠGet Jobs Use Cases . Result Jobs . No Jobs ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġ-> ĠGet Jobs Use Cases . Result Jobs . Jobs ( Ġit . result . reversed ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġis ĠResult Required . Error Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġprintln ( it . throwable . message ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠGet Jobs Use Cases . Result Jobs . Error ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġadd Job () Ġ{ ĊĠĠĠĠĠĠĠ Ġrepository . add () ĊĠĠĠ Ġ} Ċ } ĊĊ