/* - Ċ Ġ* Ġ#% L Ċ Ġ* ĠBig Ben : lib Ċ Ġ* Ġ================================= ====== Ċ Ġ* ĠCopyright Ġ( C ) Ġ 2 0 1 6 Ġ- Ġ 2 0 1 8 ĠW al mart Ġ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 . Ċ Ġ* Ġ# L % Ċ Ġ*/ Ċ package Ġcom . wal mart labs . big ben . entities Ċ Ċ import Ġcom . google . common . util . concurrent . List enable Future Ċ import Ġcom . wal mart labs . big ben . ext ns . epoch Ċ import Ġjava . time . Z onedDateTime Ċ Ċ /** Ċ Ġ* ĠCreated Ġby Ġsm al ik 3 Ġon Ġ 2 / 2 5 / 1 8 Ċ Ġ*/ Ċ interface ĠEntity Provider < T > Ġ{ ĊĠĠĠ Ġfun Ġselector ( type : ĠClass < T >): ĠT ĊĠĠĠ Ġfun Ġraw ( selector : ĠT ): ĠT ĊĠĠĠ Ġfun Ġfetch ( selector : ĠT ): ĠList enable Future < T ?> ĊĠĠĠ Ġfun Ġk vs ( selector : ĠK V ): ĠList enable Future < List < KV >> ĊĠĠĠ Ġfun Ġsave ( selector : ĠT ): ĠList enable Future < T > ĊĠĠĠ Ġfun Ġremove ( selector : ĠT ): ĠList enable Future < T > ĊĠĠĠ Ġfun Ġunwrap (): ĠAny ? Ċ } Ċ Ċ interface ĠEvent Loader Ġ{ ĊĠĠĠ Ġfun Ġload ( bucket Id : ĠZ onedDateTime , Ġshard : ĠInt , Ġfetch Size : ĠInt , Ġevent Time : ĠZ onedDateTime Ġ= Ġepoch (), Ġevent Id : ĠString Ġ= Ġ"", Ġcontext : ĠAny ? Ġ= Ġnull ): ĠList enable Future < Pair < Any ?, ĠList < Event >>> Ċ } Ċ