/* Ċ Ġ* ĠCopyright Ġ 2 0 2 1 ĠSquare ĠInc . Ċ Ġ* Ċ Ġ* Ġ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 Ġapp . cash . temp est 2 Ċ Ċ import Ġsoftware . amazon . aw ssdk . en hanced . dynamodb . Expression Ċ Ċ interface ĠSc ann able < K Ġ: ĠAny , ĠI Ġ: ĠAny > Ġ{ ĊĠ Ġ/** ĊĠĠ Ġ* ĠSc ans Ġup Ġto Ġthe Ġ[ pageSize ] Ġitems Ġor Ġa Ġmaximum Ġof Ġ 1 ĠMB Ġof Ġdata . ĠThis Ġlimit Ġapplies Ġbefore Ġthe ĊĠĠ Ġ* Ġfilter Ġexpression Ġis Ġevaluated . ĊĠĠ Ġ*/ ĊĠ Ġfun Ġscan ( ĊĠĠĠ ĠpageSize : ĠInt Ġ= Ġ 1 0 0 , ĊĠĠĠ Ġconsistent Read : ĠBoolean Ġ= Ġfalse , ĊĠĠĠ Ġfilter Expression : ĠExpression ? Ġ= Ġnull , ĊĠĠĠ Ġinitial Offset : ĠOffset < K >? Ġ= Ġnull ĊĠ Ġ): ĠPage < K , ĠI > ĊĊĠ Ġ// ĠOver loaded Ġfunctions Ġfor ĠJava Ġcall ers Ġ( Kotlin Ġinterfaces Ġdo Ġnot Ġsupport Ġ`@ Jvm Over loads `). ĊĊĠ Ġfun Ġscan () Ġ= Ġscan ( ĊĠĠĠ ĠScan Config . Builder (). build (), ĊĠĠĠ Ġinitial Offset Ġ= Ġnull ĊĠ Ġ) ĊĊĠ Ġfun Ġscan ( initial Offset : ĠOffset < K > ?) Ġ= Ġscan ( ĊĠĠĠ ĠScan Config . Builder (). build (), ĊĠĠĠ Ġinitial Offset Ġ= Ġinitial Offset ĊĠ Ġ) ĊĊĠ Ġfun Ġscan ( config : ĠScan Config ) Ġ= Ġscan ( ĊĠĠĠ Ġconfig , ĊĠĠĠ Ġinitial Offset Ġ= Ġnull ĊĠ Ġ) ĊĊĠ Ġfun Ġscan ( config : ĠScan Config , Ġinitial Offset : ĠOffset < K > ?) Ġ= Ġscan ( ĊĠĠĠ Ġconfig . pageSize , ĊĠĠĠ Ġconfig . consistent Read , ĊĠĠĠ Ġconfig . filter Expression , ĊĠĠĠ Ġinitial Offset ĊĠ Ġ) Ċ } Ċ Ċ data Ġclass ĠScan Config Ġinternal Ġconstructor ( ĊĠ Ġval ĠpageSize : ĠInt , ĊĠ Ġval Ġconsistent Read : ĠBoolean , ĊĠ Ġval Ġfilter Expression : ĠExpression ? Ċ ) Ġ{ ĊĠ Ġclass ĠBuilder Ġ{ ĊĠĠĠ Ġprivate Ġvar ĠpageSize Ġ= Ġ 1 0 0 ĊĠĠĠ Ġprivate Ġvar Ġconsistent Read Ġ= Ġfalse ĊĠĠĠ Ġprivate Ġvar Ġfilter Expression : ĠExpression ? Ġ= Ġnull ĊĊĠĠĠ Ġfun ĠpageSize ( pageSize : ĠInt ) Ġ= Ġapply Ġ{ Ġthis . pageSize Ġ= ĠpageSize Ġ} ĊĊĠĠĠ Ġfun Ġconsistent Read ( consistent Read : ĠBoolean ) Ġ= Ġapply Ġ{ Ġthis . consistent Read Ġ= Ġconsistent Read Ġ} ĊĊĠĠĠ Ġfun Ġfilter Expression ( filter Expression : ĠExpression ) Ġ= ĊĠĠĠĠĠ Ġapply Ġ{ Ġthis . filter Expression Ġ= Ġfilter Expression Ġ} ĊĊĠĠĠ Ġfun Ġbuild () Ġ= ĠScan Config ( ĊĠĠĠĠĠ ĠpageSize , ĊĠĠĠĠĠ Ġconsistent Read , ĊĠĠĠĠĠ Ġfilter Expression ĊĠĠĠ Ġ) ĊĠ Ġ} Ċ } Ċ