package Ġm ary k . core . query . requests Ċ Ċ import Ġm ary k . core . aggreg ations . Ag greg ations Ċ import Ġm ary k . core . exceptions . RequestException Ċ import Ġm ary k . core . models . Is Root Values DataModel Ċ import Ġm ary k . core . models . Query DataModel Ċ import Ġm ary k . core . properties . ObjectProperty Definitions Ċ import Ġm ary k . core . properties . Property Definitions Ċ import Ġm ary k . core . properties . definitions . boolean Ċ import Ġm ary k . core . properties . definitions . embed Object Ċ import Ġm ary k . core . properties . definitions . number Ċ import Ġm ary k . core . properties . graph . Root Prop Ref Graph Ċ import Ġm ary k . core . properties . types . Key Ċ import Ġm ary k . core . properties . types . numeric . UInt 3 2 Ċ import Ġm ary k . core . properties . types . numeric . UInt 6 4 Ċ import Ġm ary k . core . query . filters . Is Filter Ċ import Ġm ary k . core . query . orders . Is Order Ċ import Ġm ary k . core . query . orders . Order Ċ import Ġm ary k . core . query . orders . Orders Ċ import Ġm ary k . core . query . requests . RequestType . Scan Changes Ċ import Ġm ary k . core . query . responses . Changes Response Ċ import Ġm ary k . core . values . Object Values Ċ Ċ /** Ċ Ġ* ĠCreates Ġa Ġrequest Ġto Ġscan ĠData Objects Ġby Ġkey Ġfrom Ġ[ start Key ] Ġuntil Ġ[ limit ] Ċ Ġ* ĠIt Ġwill Ġonly Ġfetch Ġthe Ġchanges Ġ[ from Version ] Ġ( Inclusive ) Ġuntil Ġ[ max Versions ] Ġ( Default = 1 ) Ġis Ġreached . Ċ Ġ* ĠCan Ġalso Ġcontain Ġa Ġ[ where ] Ġfilter , Ġ[ filter Soft Deleted ], Ġ[ to Version ] Ġto Ġfurther Ġlimit Ġresults . Ċ Ġ* ĠResults Ġcan Ġbe Ġordered Ġwith Ġan Ġ[ order ] Ċ Ġ*/ Ċ fun Ġ< DM Ġ: ĠIs Root Values DataModel < P >, ĠP Ġ: ĠProperty Definitions > ĠDM . scan Changes ( ĊĠĠĠ Ġstart Key : ĠKey < DM >? Ġ= Ġnull , ĊĠĠĠ Ġwhere : ĠIs Filter ? Ġ= Ġnull , ĊĠĠĠ Ġorder : ĠIs Order ? Ġ= Ġnull , ĊĠĠĠ Ġlimit : ĠUInt Ġ= Ġ 1 0 0 u , ĊĠĠĠ Ġinclude Start : ĠBoolean Ġ= Ġtrue , ĊĠĠĠ Ġfrom Version : ĠU Long Ġ= Ġ 0 u L , ĊĠĠĠ Ġto Version : ĠU Long ? Ġ= Ġnull , ĊĠĠĠ Ġmax Versions : ĠUInt Ġ= Ġ 1 u , ĊĠĠĠ Ġselect : ĠRoot Prop Ref Graph < P >? Ġ= Ġnull , ĊĠĠĠ Ġfilter Soft Deleted : ĠBoolean Ġ= Ġtrue Ċ ) Ġ= ĊĠĠĠ ĠScan Changes Request ( ĊĠĠĠĠĠĠĠ Ġthis , ĊĠĠĠĠĠĠĠ Ġstart Key , ĊĠĠĠĠĠĠĠ Ġwhere , ĊĠĠĠĠĠĠĠ Ġorder , ĊĠĠĠĠĠĠĠ Ġlimit , ĊĠĠĠĠĠĠĠ Ġinclude Start , ĊĠĠĠĠĠĠĠ Ġfrom Version , ĊĠĠĠĠĠĠĠ Ġto Version , ĊĠĠĠĠĠĠĠ Ġmax Versions , ĊĠĠĠĠĠĠĠ Ġselect , ĊĠĠĠĠĠĠĠ Ġfilter Soft Deleted ĊĠĠĠ Ġ) Ċ Ċ /** Ċ Ġ* ĠA ĠRequest Ġto Ġscan ĠData Objects Ġby Ġkey Ġfrom Ġ[ start Key ] Ġuntil Ġ[ limit ] Ġfor Ġspecific Ġ[ data Model ] Ċ Ġ* ĠIt Ġwill Ġonly Ġfetch Ġthe Ġchanges Ġ[ from Version ] Ġ( Inclusive ) Ġuntil Ġ[ max Versions ] Ġ( Default = 1 ) Ġis Ġreached . Ċ Ġ* ĠCan Ġalso Ġcontain Ġa Ġ[ where ] Ġfilter , Ġ[ filter Soft Deleted ], Ġ[ to Version ] Ġto Ġfurther Ġlimit Ġresults . Ċ Ġ* ĠResults Ġcan Ġbe Ġordered Ġwith Ġan Ġ[ order ] Ġand Ġonly Ġselected Ġproperties Ġcan Ġbe Ġreturned Ġwith Ġa Ġ[ select ] Ġgraph Ċ Ġ*/ Ċ data Ġclass ĠScan Changes Request < DM Ġ: ĠIs Root Values DataModel < P >, ĠP Ġ: ĠProperty Definitions > Ġinternal Ġconstructor ( ĊĠĠĠ Ġoverride Ġval Ġdata Model : ĠDM , ĊĠĠĠ Ġoverride Ġval Ġstart Key : ĠKey < DM >? Ġ= Ġnull , ĊĠĠĠ Ġoverride Ġval Ġwhere : ĠIs Filter ? Ġ= Ġnull , ĊĠĠĠ Ġoverride Ġval Ġorder : ĠIs Order ? Ġ= Ġnull , ĊĠĠĠ Ġoverride Ġval Ġlimit : ĠUInt Ġ= Ġ 1 0 0 u , ĊĠĠĠ Ġoverride Ġval Ġinclude Start : ĠBoolean Ġ= Ġtrue , ĊĠĠĠ Ġoverride Ġval Ġfrom Version : ĠU Long Ġ= Ġ 0 u L , ĊĠĠĠ Ġoverride Ġval Ġto Version : ĠU Long ? Ġ= Ġnull , ĊĠĠĠ Ġoverride Ġval Ġmax Versions : ĠUInt Ġ= Ġ 1 u , ĊĠĠĠ Ġoverride Ġval Ġselect : ĠRoot Prop Ref Graph < P >? Ġ= Ġnull , ĊĠĠĠ Ġoverride Ġval Ġfilter Soft Deleted : ĠBoolean Ġ= Ġtrue Ċ ) Ġ: ĠIs Scan Request < DM , ĠP , ĠChanges Response < DM , ĠP >>, ĠIs Changes Request < DM , ĠP , ĠChanges Response < DM , ĠP >>, ĠIs Transport able Request < Changes Response < DM , ĠP >> Ġ{ ĊĠĠĠ Ġoverride Ġval Ġrequest Type Ġ= ĠScan Changes ĊĠĠĠ Ġoverride Ġval Ġresponse Model Ġ= ĠChanges Response ĊĊĠĠĠ Ġ// ĠDo Ġchecks Ġif Ġthe Ġscan Ġchanges Ġhas Ġno Ġorder Ġor Ġwhere Ġfilter Ġon Ġmutable Ġvalues ĊĠĠĠ Ġ// Ġwhich Ġcan Ġlead Ġto Ġun predict able Ġresults ĊĠĠĠ Ġinit Ġ{ ĊĠĠĠĠĠĠĠ Ġ// ĠDon 't Ġallow Ġfilters Ġwith Ġmutable Ġvalues ĊĠĠĠĠĠĠĠ Ġ// ĠSince Ġmutable Ġvalues Ġcan Ġchange Ġthe Ġchanges Ġwould Ġnot Ġbe Ġreturned Ġleading ĊĠĠĠĠĠĠĠ Ġ// Ġto Ġun reli able Ġpatterns ĊĠĠĠĠĠĠĠ Ġwhere ?. let Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġwhere . single Reference Ġ{ Ġref Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ! ref . property Definition . required Ġ|| Ġ! ref . property Definition . final ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ?. let Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġthrow ĠRequest Exception (" Property Ġ`$ it ` Ġis Ġmutable Ġwhich Ġare Ġnot Ġsupported Ġon Ġfilters Ġin Ġchange Ġlisteners .") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ// ĠOnly Ġallow Ġorders Ġon Ġthe Ġdefault Ġkey Ġsorting Ġor Ġwhen Ġthey Ġare Ġdone Ġon Ġrequired Ġand Ġfinal Ġvalues ĊĠĠĠĠĠĠĠ Ġ// ĠOtherwise Ġvalues Ġcould Ġmove Ġout Ġof Ġrange Ġwhich Ġcould Ġlead Ġto Ġun reli able Ġresults ĊĠĠĠĠĠĠĠ Ġorder ?. let Ġ{ Ġorder Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( order Ġis ĠOrders Ġ|| ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġorder Ġis ĠOrder Ġ&& Ġ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġorder . property Reference Ġ!= Ġnull Ġ&& Ġ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ! order . property Reference . property Definition . required Ġ|| ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ! order . property Reference . property Definition . final ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġthrow ĠRequest Exception ("$ order Ġcan Ġonly Ġbe Ġdone Ġon Ġthe Ġmain Ġindex Ġor Ġon Ġrequired Ġand Ġfinal Ġproperties ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ// ĠAg greg ations Ġare Ġnot Ġallowed Ġon Ġa Ġscan Ġchanges Ġrequest ĊĠĠĠ Ġoverride Ġval Ġaggreg ations : ĠAg greg ations ? Ġ= Ġnull ĊĊĠĠĠ Ġ@ Suppress (" unused ") ĊĠĠĠ Ġobject ĠProperties Ġ: ĠObject Property Definitions < Scan Changes Request < *, Ġ* >>() Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġfrom Ġby Ġadd DataModel ( Scan Changes Request < *, Ġ* >:: data Model ) ĊĠĠĠĠĠĠĠ Ġval Ġstart Key Ġby Ġadd Start Key ( Scan Changes Request < *, Ġ* >:: start Key ) ĊĠĠĠĠĠĠĠ Ġval Ġselect Ġby Ġembed Object ( 3 u , ĠScan Changes Request < *, Ġ* >:: select , Ġdata Model Ġ= Ġ{ ĠRoot Prop Ref Graph Ġ}) ĊĠĠĠĠĠĠĠ Ġval Ġwhere Ġby Ġadd Filter ( Scan Changes Request < *, Ġ* >:: where ) ĊĠĠĠĠĠĠĠ Ġval Ġto Version Ġby Ġnumber ( 5 u , ĠScan Changes Request < *, Ġ* >:: to Version , ĠUInt 6 4 , Ġrequired Ġ= Ġfalse ) ĊĠĠĠĠĠĠĠ Ġval Ġfilter Soft Deleted Ġ Ġby Ġboolean ( 6 u , ĠScan Changes Request < *, Ġ* >:: filter Soft Deleted , Ġdefault Ġ= Ġtrue ) ĊĠĠĠĠĠĠĠ Ġval Ġorder Ġby Ġadd Order ( Scan Changes Request < *, Ġ* >:: order ) ĊĠĠĠĠĠĠĠ Ġval Ġlimit Ġby Ġnumber ( 9 u , ĠScan Changes Request < *, Ġ* >:: limit , Ġtype Ġ= ĠUInt 3 2 , Ġdefault Ġ= Ġ 1 0 0 u ) ĊĠĠĠĠĠĠĠ Ġval Ġinclude Start Ġby Ġboolean ( 1 0 u , ĠScan Changes Request < *, Ġ* >:: include Start , Ġdefault Ġ= Ġtrue ) ĊĠĠĠĠĠĠĠ Ġval Ġfrom Version Ġby Ġnumber ( 1 1 u , ĠScan Changes Request < *, Ġ* >:: from Version , ĠUInt 6 4 ) ĊĠĠĠĠĠĠĠ Ġval Ġmax Versions Ġby Ġnumber ( 1 2 u , ĠScan Changes Request < *, Ġ* >:: max Versions , ĠUInt 3 2 , ĠmaxValue Ġ= Ġ 1 u ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġcompanion Ġobject Ġ: ĠQuery DataModel < Scan Changes Request < *, Ġ* >, ĠProperties >( ĊĠĠĠĠĠĠĠ Ġproperties Ġ= ĠProperties ĊĠĠĠ Ġ) Ġ{ ĊĠĠĠĠĠĠĠ Ġoverride Ġfun Ġinvoke ( values : ĠObject Values < Scan Changes Request < *, Ġ* >, ĠProperties >) Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠ ĠScan Changes Request < Is Root Values DataModel < Property Definitions >, ĠProperty Definitions >( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdata Model Ġ= Ġvalues ( 1 u ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġstart Key Ġ= Ġvalues ( 2 u ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġselect Ġ= Ġvalues ( 3 u ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġwhere Ġ= Ġvalues ( 4 u ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġto Version Ġ= Ġvalues ( 5 u ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfilter Soft Deleted Ġ= Ġvalues ( 6 u ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġorder Ġ= Ġvalues ( 8 u ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlimit Ġ= Ġvalues ( 9 u ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġinclude Start Ġ= Ġvalues ( 1 0 u ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfrom Version Ġ= Ġvalues ( 1 1 u ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmax Versions Ġ= Ġvalues ( 1 2 u ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ} Ċ } Ċ