/* Ċ Ġ* ĠCopyright Ġ( C ) Ġ 2 0 1 3 Ġy vol k Ġ( Y uri ĠVol kov ), Ġhttp :// y ur iv olk ov . com Ċ Ġ* Ċ Ġ* Ġ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 Ġorg . and status . app . data Ċ Ċ import Ġorg . and status . app . context . My Context Holder Ċ import Ġorg . and status . app . net . social . Actor Ċ import Ġorg . and status . app . timeline . meta . Timeline Ċ import Ġorg . and status . app . util . IsEmpty Ċ import Ġjava . util .* Ċ import Ġjava . util . stream . Collectors Ċ Ċ /** Ċ Ġ* ĠHelper Ġclass Ġto Ġconstruct Ġsql ĠWHERE Ġclause Ġselecting Ġby ĠI ds Ċ Ġ* Ġ@ author Ġy vol k @ y ur iv olk ov . com Ċ Ġ*/ Ċ class ĠSql Ids Ġ: ĠIs Empty Ġ{ ĊĠĠĠ Ġprivate Ġval Ġids : ĠMutable Set < Long > ĊĊĠĠĠ Ġprivate Ġconstructor ( ids : ĠCollection < Long >) Ġ{ ĊĠĠĠĠĠĠĠ Ġthis . ids Ġ= ĠHashSet ( ids ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġconstructor ( var arg Ġid : ĠLong ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġids Ġ= ĠHashSet ( Arrays . asList (* id )) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġsize (): ĠInt Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġids . size ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun ĠgetList (): ĠString Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġsb Ġ= ĠStringBuilder () ĊĠĠĠĠĠĠĠ Ġfor Ġ( id Ġin Ġids ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( sb . length Ġ> Ġ 0 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsb . append (", Ġ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġsb . append ( java . lang . Long . toString ( id )) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġreturn Ġsb . toString () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġget Sql (): ĠString Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġif Ġ( size () Ġ== Ġ 0 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġget In existent Id () ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġif Ġ( size () Ġ== Ġ 1 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ"=" Ġ+ Ġids . iterator (). next () ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" ĠIN Ġ(" Ġ+ ĠgetList () Ġ+ Ġ")" ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġget Not Sql (): ĠString Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġif Ġ( size () Ġ== Ġ 0 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ"" ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġif Ġ( size () Ġ== Ġ 1 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ"! =" Ġ+ Ġids . iterator (). next () ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" ĠNOT ĠIN Ġ(" Ġ+ ĠgetList () Ġ+ Ġ")" ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġval ĠisEmpty : ĠBoolean ĊĠĠĠĠĠĠĠ Ġget () Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġids . isEmpty () ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠ Ġval ĠEMPTY : ĠSql Ids Ġ= ĠSql Ids () ĊĊĠĠĠĠĠĠĠ Ġ/** ĠWe Ġmay Ġnot Ġhave Ġour Ġactor Ġin Ġsome Ġorigin ... Ġ? ! Ġ Ġ*/ ĊĠĠĠĠĠĠĠ Ġfun Ġnotified Actor Ids Of Timeline ( timeline : ĠTimeline ): ĠSql Ids Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġif Ġ( timeline . is Combined ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠEMPTY ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġactor Ids Of Timeline Actor ( timeline ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġfun Ġactor Ids Of Timeline Actor ( timeline : ĠTimeline ): ĠSql Ids Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġif Ġ( timeline . is Combined ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmy Act ors Ids () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġif Ġ( timeline . timeline Type . is At Origin ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠEMPTY ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfrom Ids ( timeline . actor . user . actor Ids ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġfun Ġmy Act ors Ids (): ĠSql Ids Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġfrom Ids ( ĠMy Context Holder . my Context Holder . get Now (). users . my Act ors . keys ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġfun Ġactor Ids Of Timeline Account ( timeline : ĠTimeline ): ĠSql Ids Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġif Ġ( timeline . is Combined Ġ|| Ġtimeline . timeline Type . is At Origin ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠEMPTY ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġfrom Ids ( timeline . actor . user . actor Ids ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġfun Ġactor Ids Of ( actors : ĠCollection < Actor >): ĠSql Ids Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĠSql Ids ( actors . stream (). map Ġ{ Ġactor : ĠActor Ġ-> Ġactor . actor Id Ġ}. collect ( Collectors . toList ())) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġfun Ġfrom Id ( id : ĠLong ): ĠSql Ids Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĠSql Ids ( set Of < Long >( id )) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġfun Ġfrom Ids ( ids : ĠCollection < Long >): ĠSql Ids Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĠSql Ids ( ids ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġfun Ġfrom Ids ( var arg Ġids : ĠLong ?): ĠSql Ids Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĠSql Ids (* ids ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġfun Ġget In existent Id (): ĠString Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġ"=" Ġ+ ĠLong . MIN _ VALUE ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } Ċ