/* Ċ Ġ* ĠCopyright Ġ 2 0 1 7 ĠF arb od ĠS alamat - Z ade h Ċ Ġ* Ċ Ġ* Ġ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 Ċ Ġ* Ċ Ġ* ĠĠĠĠ Ġhttp :// 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 Ġco . timetable app . data . query Ċ Ċ import Ġandroid . util . Log Ċ import Ġjava . util .* Ċ Ċ /** Ċ Ġ* ĠUsed Ġto Ġfilter Ġresults Ġwhen Ġperforming ĠSQL Ġqueries Ġon Ġthe Ġdatabase Ċ Ġ* Ċ Ġ* Ġ@ see ĠFilter Ċ Ġ*/ Ċ class ĠQuery ( val Ġfilter : ĠFilter ) Ġ{ ĊĊĠĠĠ Ġclass ĠBuilder Ġ{ ĊĊĠĠĠĠĠĠĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ@ Jvm Field Ġval ĠLOG _ TAG Ġ= Ġ" Query . Builder " ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġprivate Ġval Ġfilters : ĠArrayList < Filter > Ġ= ĠArrayList () ĊĊĠĠĠĠĠĠĠ Ġfun Ġadd Filter ( filter : ĠFilter ): ĠBuilder Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfilters . add ( filter ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠLog . v ( LOG _ TAG , Ġ" Added Ġfilter : Ġ${ filter . sql Statement }") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġthis ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġprivate Ġfun Ġcombine Filters (): ĠFilter Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġwhen Ġ( filters . size ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ 0 Ġ-> Ġthrow ĠIllegalStateException (" you Ġmust Ġadd Ġat Ġleast Ġone Ġfilter Ġto Ġthe Ġ" Ġ+ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" query Ġbuilder ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ 1 Ġ-> Ġreturn Ġfilters [ 0 ] ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ 2 Ġ-> Ġreturn ĠFilters . and ( filters [ 0 ], Ġfilters [ 1 ]) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠWe Ġneed Ġto Ġmake Ġan Ġarray Ġexcluding Ġthe Ġfirst Ġtwo Ġelements Ġfor Ġthe Ġvar arg ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġmore Filters Ġ= Ġfilters . slice ( Int Range ( 2 , Ġfilters . size Ġ- Ġ 1 )). to Typed Array () ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĠFilters . and ( filters [ 0 ], Ġfilters [ 1 ], Ġ* more Filters ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġfun Ġbuild (): ĠQuery Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĠQuery ( combine Filters ()) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠ Ġ} Ċ } Ċ