package Ġai . d stack . server . j ersey . services Ċ Ċ import Ġai . d stack . server . model . Job Ċ import Ġai . d stack . server . services . Entity AlreadyExists Ċ import Ġai . d stack . server . services . JobService Ċ Ċ class ĠIn Memory JobService () Ġ: ĠJob Service Ġ{ ĊĠĠĠ Ġprivate Ġval Ġjobs Ġ= Ġmutable ListOf < Job >() ĊĊĠĠĠ Ġoverride Ġfun Ġget ( user : ĠString , Ġid : ĠString ): ĠJob ? Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġjobs . find Ġ{ Ġit . userName Ġ== Ġuser Ġ&& Ġit . id Ġ== Ġid Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠfindBy User ( user : ĠString , Ġconsistent : ĠBoolean ): ĠSequence < Job > Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġjobs . filter Ġ{ Ġit . userName Ġ== Ġuser Ġ}. as Sequence () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġcreate ( job : ĠJob ) Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( jobs . find Ġ{ Ġit . userName Ġ== Ġjob . userName Ġ&& Ġit . id Ġ== Ġjob . id Ġ} Ġ== Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġjobs . add ( job ) ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġthrow ĠEntity AlreadyExists () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġdelete ( job : ĠJob ) Ġ{ ĊĠĠĠĠĠĠĠ Ġjobs . remove If Ġ{ Ġit . userName Ġ== Ġjob . userName Ġ&& Ġit . id Ġ== Ġjob . id Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġupdate ( job : ĠJob ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġindex Ġ= Ġjobs . indexOf First Ġ{ Ġit . userName Ġ== Ġjob . userName Ġ&& Ġit . id Ġ== Ġjob . id Ġ} ĊĠĠĠĠĠĠĠ Ġif Ġ( index Ġ>= Ġ 0 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġjobs . set ( index , Ġjob ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ// ĠTODO : ĠThrow Ġexception Ġif Ġnot Ġupdated ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġget Job sBy Schedule ( schedule : ĠString ): ĠList < Job > Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġjobs . filter Ġ{ Ġit . schedule . code Ġ== Ġschedule Ġ}. toList () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġreset ( users : ĠList < Job > Ġ= Ġempty List ()) Ġ{ ĊĠĠĠĠĠĠĠ Ġthis . jobs . clear () ĊĠĠĠĠĠĠĠ Ġthis . jobs . addAll ( users ) ĊĠĠĠ Ġ} Ċ }