package Ġme . or ih are l . series manager . api . broadcast Ċ Ċ import Ġme . or ih are l . series manager . dao . broadcast . Search Type Ċ import Ġme . or ih are l . series manager . model . content . Broadcast Ċ import Ġme . or ih are l . series manager . model . content . User Serialized Broadcast Ċ import Ġme . or ih are l . series manager . security . CurrentUser Ċ import Ġme . or ih are l . series manager . service . Broadcast Service Ċ import Ġme . or ih are l . series manager . service . UserService Ċ import Ġorg . springframework . web . bind . annotation . PathVariable Ċ import Ġorg . springframework . web . bind . annotation . RequestParam Ċ Ċ abstract Ġclass ĠRecommend ations Controller Ġconstructor ( ĊĠĠĠĠĠĠĠ Ġprivate Ġval ĠuserService : ĠUserService , ĊĠĠĠĠĠĠĠ Ġprivate Ġval Ġbroadcast Service : ĠBroadcast Service , ĊĠĠĠĠĠĠĠ Ġprivate Ġval Ġsearch Type : ĠSearch Type , Ċ ) Ġ{ ĊĠĠĠ Ġprotected Ġopen Ġfun Ġget Recommend ations ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġsimilar : ĠBoolean ? Ġ= Ġfalse , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġsimilar Page : ĠInt ? Ġ= Ġ 1 , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġrecommendations : ĠBoolean ? Ġ= Ġfalse , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġrecommendations Page : ĠInt ? Ġ= Ġ 1 , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtop : ĠBoolean ? Ġ= Ġfalse , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtop Page : ĠInt ? Ġ= Ġ 1 , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġpopular : ĠBoolean ? Ġ= Ġfalse , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġpopular Page : ĠInt ? Ġ= Ġ 1 , ĊĠĠĠ Ġ): ĠMutable Map < Int , ĠMutable Map < String , ĠList < Broadcast >>> Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġserialized Broadcast s Ġ= ĠuserService . get Broadcast s ( CurrentUser . current UserId Must Be LoggedIn ). get () ĊĠĠĠĠĠĠĠ Ġval Ġrecommendation Results : ĠMutable Map < Int , ĠMutable Map < String , ĠList < Broadcast >>> Ġ= Ġmutable Map Of () ĊĊĠĠĠĠĠĠĠ Ġserialized Broadcast s . forEach Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġrecommendation Results [ it . id !! ] Ġ= Ġget Recommend ations By Serialized ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġit , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtop , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsimilar , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġrecommendations , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpopular , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsimilar Page , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġrecommendations Page , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtop Page , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpopular Page ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġreturn Ġrecommendation Results ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprotected Ġopen Ġfun Ġget Recommend ations ById ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbroadcast Id : ĠInt , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġsimilar : ĠBoolean ? Ġ= Ġfalse , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġsimilar Page : ĠInt ? Ġ= Ġ 1 , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġrecommendations : ĠBoolean ? Ġ= Ġfalse , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġrecommendations Page : ĠInt ? Ġ= Ġ 1 , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtop : ĠBoolean ? Ġ= Ġfalse , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtop Page : ĠInt ? Ġ= Ġ 1 , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġpopular : ĠBoolean ? Ġ= Ġfalse , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġpopular Page : ĠInt ? Ġ= Ġ 1 , ĊĠĠĠ Ġ): ĠMap < String , ĠList < Broadcast >> Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġserialized Broadcast Ġ= ĠUser Serialized Broadcast ( broadcast Id , Ġsearch Type ) ĊĠĠĠĠĠĠĠ Ġreturn Ġget Recommend ations By Serialized ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġserialized Broadcast , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtop , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsimilar , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġrecommendations , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpopular , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsimilar Page , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġrecommendations Page , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtop Page , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpopular Page ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġget Recommend ations By Serialized ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġserialized Broadcast : ĠUser Serialized Broadcast , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtop : ĠBoolean ?, ĊĠĠĠĠĠĠĠĠĠĠĠ Ġsimilar : ĠBoolean ?, ĊĠĠĠĠĠĠĠĠĠĠĠ Ġrecommendations : ĠBoolean ?, ĊĠĠĠĠĠĠĠĠĠĠĠ Ġpopular : ĠBoolean ?, ĊĠĠĠĠĠĠĠĠĠĠĠ Ġsimilar Page : ĠInt ?, ĊĠĠĠĠĠĠĠĠĠĠĠ Ġrecommendations Page : ĠInt ?, ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtop Page : ĠInt ?, ĊĠĠĠĠĠĠĠĠĠĠĠ Ġpopular Page : ĠInt ?, ĊĠĠĠ Ġ): ĠMutable Map < String , ĠList < Broadcast >> Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġrecommendation Result : ĠMutable Map < String , ĠList < Broadcast >> Ġ= Ġmutable Map Of () ĊĊĠĠĠĠĠĠĠ Ġif Ġ( similar Ġ== Ġtrue ) Ġrecommendation Result [" similar "] Ġ= Ġbroadcast Service . get Similar ( serialized Broadcast , Ġsimilar Page !! ) ĊĠĠĠĠĠĠĠ Ġif Ġ( recommend ations Ġ== Ġtrue ) Ġrecommendation Result [" recommend ations "] Ġ= Ġbroadcast Service . get Recommended ( serialized Broadcast , Ġrecommendations Page !! ) ĊĠĠĠĠĠĠĠ Ġif Ġ( top Ġ== Ġtrue ) Ġrecommendation Result [" top "] Ġ= Ġbroadcast Service . get Top R ated ( serialized Broadcast , Ġtop Page !! ) ĊĠĠĠĠĠĠĠ Ġif Ġ( popular Ġ== Ġtrue ) Ġrecommendation Result [" popular "] Ġ= Ġbroadcast Service . get Pop ular ( serialized Broadcast , Ġpopular Page !! ) ĊĊĠĠĠĠĠĠĠ Ġreturn Ġrecommendation Result ĊĠĠĠ Ġ} Ċ Ċ }