/* Ċ Ġ* ĠCopyright Ġ 2 0 1 8 ĠGoogle ĠLLC Ċ Ġ* Ċ Ġ* ĠLicensed Ġunder Ġthe ĠApache ĠLicense , ĠVersion Ġ 2 . 0 Ġ( the Ġ" License "); Ċ Ġ* Ġyou Ġmay Ġnot Ġuse Ġthis Ġfile Ġexcept Ġin Ġcompliance Ġwith Ġthe ĠLicense . Ċ Ġ* ĠYou Ġmay Ġobtain Ġa Ġcopy Ġof Ġthe ĠLicense Ġat Ċ Ġ* Ċ Ġ* ĠĠĠĠ Ġhttps :// www . apache . org / licenses / LICENSE - 2 . 0 Ċ Ġ* Ċ Ġ* ĠUnless Ġrequired Ġby Ġapplicable Ġlaw Ġor Ġagreed Ġto Ġin Ġwriting , Ġsoftware Ċ Ġ* Ġdistributed Ġunder Ġthe ĠLicense Ġis Ġdistributed Ġon Ġan Ġ" AS ĠIS " ĠBASIS , Ċ Ġ* ĠWITHOUT ĠWARRANTIES ĠOR ĠCONDITIONS ĠOF ĠANY ĠKIND , Ġeither Ġexpress Ġor Ġimplied . Ċ Ġ* ĠSee Ġthe ĠLicense Ġfor Ġthe Ġspecific Ġlanguage Ġgoverning Ġpermissions Ġand Ċ Ġ* Ġlimitations Ġunder Ġthe ĠLicense . Ċ Ġ*/ Ċ Ċ package Ġcom . s ree . one app . shared . domain . search Ċ Ċ import Ġcom . s ree . one app . model . Session Ċ import Ġcom . s ree . one app . shared . data . session . Session Repository Ċ import Ġcom . s ree . one app . shared . domain . UseCase Ċ import Ġtim ber . log . Tim ber Ċ import Ġjavax . inject . Inject Ċ Ċ /** Ċ Ġ* ĠPerforms Ġa Ġsearch Ġfrom Ġa Ġquery Ġstring . Ċ Ġ* Ċ Ġ* ĠA Ġsession Ġis Ġreturned Ġin Ġthe Ġresults Ġif Ġthe Ġtitle , Ġabstract , Ġor Ġtag Ġmatches Ġthe Ġquery Ġparameter . Ċ Ġ*/ Ċ class ĠSearch UseCase Ġ@ Inject Ġconstructor ( ĊĠĠĠ Ġprivate Ġval Ġrepository : ĠSession Repository Ċ ) Ġ: ĠUse Case < String , ĠList < Session >>() Ġ{ ĊĊĠĠĠ Ġoverride Ġfun Ġexecute ( parameters : ĠString ): ĠList < Session > Ġ{ ĊĠĠĠĠĠĠĠ ĠTim ber . d (" Perform ing Ġa Ġsearch Ġfor Ġany Ġsessions Ġthat Ġcontain Ġ`$ parameters ` ") ĊĠĠĠĠĠĠĠ Ġval Ġquery Ġ= Ġparameters . toLowerCase () ĊĠĠĠĠĠĠĠ Ġreturn Ġrepository . getS essions () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. filter Ġ{ Ġsession Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsession . title . toLowerCase (). contains ( query ) Ġ|| ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsession . abstract . toLowerCase (). contains ( query ) Ġ|| ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsession . tags . any Ġ{ Ġtag Ġ-> Ġquery . contains ( tag . name . toLowerCase ()) Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } Ċ