package Ġcom . har is . h oul is . mov iem aze . data . vo ĊĊ Ċ class ĠMovie Details ( ĊĠĠĠ Ġprivate Ġval Ġgen res : ĠList < String >, ĊĠĠĠ Ġval Ġoverview : ĠString , ĊĠĠĠ Ġprivate Ġval Ġcast : ĠList < String >, ĊĠĠĠ Ġval Ġdirector : ĠDirect or , ĊĠĠĠ Ġval Ġreviews : ĠMovie Reviews , ĊĠĠĠ Ġval Ġsimilar Movies : ĠSimilar Movies Ċ ) Ġ{ ĊĠĠĠ Ġfun Ġget Gen res (): ĠString Ġ= Ġgen res . get ListOf Strings As One String () ĊĊĠĠĠ Ġfun Ġget Cast (): ĠString Ġ= Ġcast . get ListOf Strings As One String () ĊĊĠĠĠ Ġprivate Ġfun ĠList < String >. get ListOf Strings As One String (): ĠString Ġ{ ĊĠĠĠĠĠĠĠ Ġval ĠstringBuilder Ġ= ĠStringBuilder () ĊĠĠĠĠĠĠĠ ĠforEach Indexed Ġ{ Ġindex , Ġitem Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ ĠstringBuilder . append ( item ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( index Ġ!= Ġsize Ġ- Ġ 1 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠstringBuilder . append (", Ġ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġreturn ĠstringBuilder . toString () ĊĠĠĠ Ġ} Ċ } Ċ Ċ class ĠMovie Review ( val Ġauthor : ĠString , Ġval Ġcontent : ĠString ) Ċ Ċ sealed Ġclass ĠDirect or Ġ{ ĊĠĠĠ Ġobject ĠEmpty Ġ: ĠDirect or () ĊĠĠĠ Ġclass ĠAvailable ( val Ġname : ĠString ) Ġ: ĠDirect or () Ċ } Ċ Ċ sealed Ġclass ĠMovie Reviews Ġ{ ĊĠĠĠ Ġobject ĠUn available Ġ: ĠMovie Reviews () ĊĠĠĠ Ġclass ĠAvailable ( val Ġreviews : ĠList < Movie Review >) Ġ: ĠMovie Reviews () Ċ } Ċ Ċ sealed Ġclass ĠSimilar Movies Ġ{ ĊĠĠĠ Ġobject ĠUn available Ġ: ĠSimilar Movies () ĊĠĠĠ Ġclass ĠAvailable ( val Ġpost ers : ĠList < String >) Ġ: ĠSimilar Movies () Ċ }