package Ġcom . example . mov ied atabase . model Ċ Ċ import Ġcom . example . mov ied atabase . Build Config Ċ import Ġcom . example . mov ied atabase . base . Item Mapper Ċ import Ġcom . example . mov ied atabase . base . Model Item Ċ import Ġcom . example . mov ied atabase . domain . model . Movie Detail Ċ import Ġjava . text . SimpleDateFormat Ċ import Ġjava . util .* Ċ import Ġjavax . inject . Inject Ċ Ċ data Ġclass ĠMovie Detail Item ( ĊĠĠĠ Ġval Ġad ult : ĠBoolean ? Ġ= Ġnull , ĊĠĠĠ Ġval Ġback drop Path : ĠString ? Ġ= Ġnull , ĊĠĠĠ Ġval Ġbelongs To Collection : ĠAny ? Ġ= Ġnull , ĊĠĠĠ Ġval Ġbudget : ĠInt ? Ġ= Ġnull , ĊĠĠĠ Ġval Ġgen res : ĠList < Genre Item >? Ġ= Ġnull , ĊĠĠĠ Ġval Ġhomepage : ĠString ? Ġ= Ġnull , ĊĠĠĠ Ġval Ġid : ĠInt ? Ġ= Ġnull , ĊĠĠĠ Ġval Ġim db Id : ĠString ? Ġ= Ġnull , ĊĠĠĠ Ġval Ġoriginal Language : ĠString ? Ġ= Ġnull , ĊĠĠĠ Ġval Ġoriginal Title : ĠString ? Ġ= Ġnull , ĊĠĠĠ Ġval Ġoverview : ĠString ? Ġ= Ġnull , ĊĠĠĠ Ġval Ġpop ularity : ĠDouble ? Ġ= Ġnull , ĊĠĠĠ Ġval Ġposter Path : ĠString ? Ġ= Ġnull , ĊĠĠĠ Ġval Ġproduction Comp anies : ĠList < Production Company Item >? Ġ= Ġnull , ĊĠĠĠ Ġval Ġproduction Countries : ĠList < Production Country Item >? Ġ= Ġnull , ĊĠĠĠ Ġval Ġrelease Date : ĠDate ? Ġ= Ġnull , ĊĠĠĠ Ġval Ġre venue : ĠInt ? Ġ= Ġnull , ĊĠĠĠ Ġval Ġruntime : ĠInt ? Ġ= Ġnull , ĊĠĠĠ Ġval Ġspo ken Languages : ĠList < Spo ken Language Item >? Ġ= Ġnull , ĊĠĠĠ Ġval Ġstatus : ĠString ? Ġ= Ġnull , ĊĠĠĠ Ġval Ġtag line : ĠString ? Ġ= Ġnull , ĊĠĠĠ Ġval Ġtitle : ĠString ? Ġ= Ġnull , ĊĠĠĠ Ġval Ġvideo : ĠBoolean ? Ġ= Ġnull , ĊĠĠĠ Ġval Ġvote Average : ĠDouble ? Ġ= Ġnull , ĊĠĠĠ Ġval Ġvote Count : ĠInt ? Ġ= Ġnull Ċ ) Ġ: ĠModel Item () Ċ Ċ class ĠMovie Detail Item Mapper Ġ@ Inject Ġconstructor ( ĊĠĠĠ Ġprivate Ġval Ġgenre Item Mapper : ĠGen re Item Mapper , ĊĠĠĠ Ġprivate Ġval Ġproduction Company Item Mapper : ĠProduction Company Item Mapper , ĊĠĠĠ Ġprivate Ġval Ġproduction Country Item Mapper : ĠProduction Country Item Mapper , ĊĠĠĠ Ġprivate Ġval Ġspo ken Language Item Mapper : ĠS po ken Language Item Mapper Ċ ) Ġ: ĠItem Mapper < Movie Detail , ĠMovie Detail Item > Ġ{ ĊĊĠĠĠ Ġvar Ġsimple DateFormat Ġ= ĠSimpleDateFormat (" yyyy - MM - dd ", ĠLocale . getDefault ()) ĊĊĠĠĠ Ġoverride Ġfun Ġmap To Domain ( model Item : ĠMovie Detail Item ): ĠMovie Detail Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn ĠMovie Detail ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġad ult Ġ= Ġmodel Item . ad ult , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġback drop Path Ġ= Ġmodel Item . backdrop Path , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbelongs To Collection Ġ= Ġmodel Item . belongsTo Collection , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbudget Ġ= Ġmodel Item . budget , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġgen res Ġ= Ġmodel Item . genres ?. map Ġ{ Ġgenre Item Mapper . map To Domain ( it ) Ġ}, ĊĠĠĠĠĠĠĠĠĠĠĠ Ġhomepage Ġ= Ġmodel Item . homepage , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġid Ġ= Ġmodel Item . id , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġim db Id Ġ= Ġmodel Item . imdb Id , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġoriginal Language Ġ= Ġmodel Item . original Language , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġoriginal Title Ġ= Ġmodel Item . original Title , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverview Ġ= Ġmodel Item . overview , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġpop ularity Ġ= Ġmodel Item . pop ularity , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġposter Path Ġ= Ġmodel Item . poster Path , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġproduction Comp anies Ġ= Ġmodel Item . production Comp anies ?. map Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġproduction Company Item Mapper . map To Domain ( it ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ}, ĊĠĠĠĠĠĠĠĠĠĠĠ Ġproduction Countries Ġ= Ġmodel Item . production Countries ?. map Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġproduction Country Item Mapper . map To Domain ( it ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ}, ĊĠĠĠĠĠĠĠĠĠĠĠ Ġrelease Date Ġ= Ġif Ġ( model Item . release Date Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsimple DateFormat . format ( model Item . release Date ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġnull ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ}, ĊĠĠĠĠĠĠĠĠĠĠĠ Ġre venue Ġ= Ġmodel Item . re venue , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġruntime Ġ= Ġmodel Item . runtime , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġspo ken Languages Ġ= Ġmodel Item . spo ken Languages ?. map Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġspo ken Language Item Mapper . map To Domain ( it ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ}, ĊĠĠĠĠĠĠĠĠĠĠĠ Ġstatus Ġ= Ġmodel Item . status , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtag line Ġ= Ġmodel Item . tag line , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtitle Ġ= Ġmodel Item . title , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġvideo Ġ= Ġmodel Item . video , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġvote Average Ġ= Ġmodel Item . vote Average , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġvote Count Ġ= Ġmodel Item . vote Count ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġmap To Presentation ( model : ĠMovie Detail ): ĠMovie Detail Item Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn ĠMovie Detail Item ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġad ult Ġ= Ġmodel . ad ult , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġback drop Path Ġ= ĠBuild Config . URL _ IMAGE Ġ+ Ġ( model . backdrop Path Ġ?: Ġ""), ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbelongs To Collection Ġ= Ġmodel . belongsTo Collection , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbudget Ġ= Ġmodel . budget , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġgen res Ġ= Ġmodel . genres ?. map Ġ{ Ġgenre Item Mapper . map To Presentation ( it ) Ġ}, ĊĠĠĠĠĠĠĠĠĠĠĠ Ġhomepage Ġ= Ġmodel . homepage , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġid Ġ= Ġmodel . id , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġim db Id Ġ= Ġmodel . imdb Id , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġoriginal Language Ġ= Ġmodel . original Language , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġoriginal Title Ġ= Ġmodel . original Title , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverview Ġ= Ġmodel . overview , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġpop ularity Ġ= Ġmodel . pop ularity , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġposter Path Ġ= ĠBuild Config . URL _ IMAGE Ġ+ Ġ( model . poster Path Ġ?: Ġ""), ĊĠĠĠĠĠĠĠĠĠĠĠ Ġproduction Comp anies Ġ= Ġmodel . production Comp anies ?. map Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġproduction Company Item Mapper . map To Presentation ( it ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ}, ĊĠĠĠĠĠĠĠĠĠĠĠ Ġproduction Countries Ġ= Ġmodel . production Countries ?. map Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġproduction Country Item Mapper . map To Presentation ( it ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ}, ĊĠĠĠĠĠĠĠĠĠĠĠ Ġrelease Date Ġ= Ġif Ġ( model . release Date Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsimple DateFormat . parse ( model . release Date !! ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġnull ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ}, ĊĠĠĠĠĠĠĠĠĠĠĠ Ġre venue Ġ= Ġmodel . re venue , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġruntime Ġ= Ġmodel . runtime , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġspo ken Languages Ġ= Ġmodel . spo ken Languages ?. map Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġspo ken Language Item Mapper . map To Presentation ( it ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ}, ĊĠĠĠĠĠĠĠĠĠĠĠ Ġstatus Ġ= Ġmodel . status , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtag line Ġ= Ġmodel . tag line , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtitle Ġ= Ġmodel . title , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġvideo Ġ= Ġmodel . video , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġvote Average Ġ= Ġ( model . vote Average Ġ?: Ġ 0 . 0 ) Ġ/ Ġ 2 , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġvote Count Ġ= Ġmodel . vote Count ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ} Ċ Ċ } ĊĊ