package Ġm ary k . datastore . memory . records Ċ Ċ import Ġm ary k . core . clock . H LC Ċ import Ġm ary k . core . models . Is Root Values DataModel Ċ import Ġm ary k . core . processors . datastore . matchers . F uzzy Match Result . MATCH Ċ import Ġm ary k . core . processors . datastore . matchers . F uzzy Match Result . NO _ MATCH Ċ import Ġm ary k . core . processors . datastore . matchers . F uzzy Match Result . OUT _ OF _ RANGE Ċ import Ġm ary k . core . processors . datastore . matchers . Is Qualifier Matcher Ċ import Ġm ary k . core . processors . datastore . matchers . Qualifier Exact Matcher Ċ import Ġm ary k . core . processors . datastore . matchers . Qualifier F uzzy Matcher Ċ import Ġm ary k . core . properties . Property Definitions Ċ import Ġm ary k . core . properties . definitions . Is Property Definition Ċ import Ġm ary k . core . properties . references . Is Property Reference Ċ import Ġm ary k . core . properties . types . Key Ċ import Ġm ary k . core . values . Is Values Getter Ċ import Ġm ary k . datastore . memory . processors . ch ang ers . getValue Ċ import Ġm ary k . datastore . memory . processors . ch ang ers . getValue AtIndex Ċ import Ġm ary k . datastore . memory . processors . object Soft Delete Qualifier Ċ import Ġm ary k . lib . extensions . compare . compareTo Ċ Ċ /** Ċ Ġ* ĠA ĠData Record Ġstored Ġat Ġ[ key ] Ġwith Ġ[ values ] Ċ Ġ* Ġ[ first Version ] Ġand Ġ[ last Version ] Ġsign ify Ġthe Ġversions Ġof Ġfirst Ġand Ġlast Ġchange Ċ Ġ* Ġ[ is Deleted ] Ġis Ġa Ġstate Ġswitch Ġto Ġsign ify Ġrecord Ġwas Ġdeleted Ċ Ġ*/ Ċ internal Ġdata Ġclass ĠData Record < DM Ġ: ĠIs Root Values DataModel < P >, ĠP Ġ: ĠProperty Definitions >( ĊĠĠĠ Ġval Ġkey : ĠKey < DM >, ĊĠĠĠ Ġvar Ġvalues : ĠList < Data Record Node >, ĊĠĠĠ Ġval Ġfirst Version : ĠH LC , ĊĠĠĠ Ġvar Ġlast Version : ĠH LC Ċ ) Ġ: ĠIs Values Getter Ġ{ ĊĠĠĠ Ġoverride Ġfun Ġ< T Ġ: ĠAny , ĠD Ġ: ĠIs Property Definition < T >, ĠC Ġ: ĠAny > Ġget ( ĊĠĠĠĠĠĠĠ Ġproperty Reference : ĠIs Property Reference < T , ĠD , ĠC > ĊĠĠĠ Ġ): ĠT ? Ġ= ĊĠĠĠĠĠĠĠ ĠgetValue < T >( this . values , Ġproperty Reference . to Storage ByteArray ()) ?. value ĊĊĠĠĠ Ġfun Ġis Deleted ( to Version : ĠH LC ?): ĠBoolean Ġ= ĊĠĠĠĠĠĠĠ ĠgetValue < Boolean >( this . values , Ġobject Soft Delete Qualifier , Ġto Version )?. value Ġ?: Ġfalse ĊĊĠĠĠ Ġfun Ġ< T Ġ: ĠAny > Ġmatch Qualifier ( ĊĠĠĠĠĠĠĠ Ġreference : ĠIs Property Reference < T , Ġ*, Ġ* >, ĊĠĠĠĠĠĠĠ Ġto Version : ĠH LC ?, ĊĠĠĠĠĠĠĠ Ġrecord Fetcher : Ġ( Is Root Values DataModel <* >, ĠKey <* >) Ġ-> ĠData Record < *, Ġ*> ?, ĊĠĠĠĠĠĠĠ Ġmatcher : Ġ( T ?) Ġ-> ĠBoolean ĊĠĠĠ Ġ) Ġ= Ġthis . match Qualifier ( reference . to Qualifier Matcher (), Ġto Version , Ġrecord Fetcher , Ġmatcher ) ĊĊĠĠĠ Ġprivate Ġfun Ġ< T Ġ: ĠAny > Ġmatch Qualifier ( ĊĠĠĠĠĠĠĠ Ġqualifier Matcher : ĠIs Qualifier Matcher , ĊĠĠĠĠĠĠĠ Ġto Version : ĠH LC ?, ĊĠĠĠĠĠĠĠ Ġrecord Fetcher : Ġ( Is Root Values DataModel <* >, ĠKey <* >) Ġ-> ĠData Record < *, Ġ*> ?, ĊĠĠĠĠĠĠĠ Ġmatcher : Ġ( T ?) Ġ-> ĠBoolean ĊĠĠĠ Ġ): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġwhen Ġ( qual ifier Matcher ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġis ĠQual ifier Exact Matcher Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġvalue Ġ= Ġget < T >( qual ifier Matcher . qual ifier , Ġto Version ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ?: Ġreturn Ġmatcher ( null ) ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġwhen Ġ( val Ġreferenced Matcher Ġ= Ġqualifier Matcher . referenced Qualifier Matcher ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġnull Ġ-> Ġmatcher ( value ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġrecord Fetcher ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreferenced Matcher . reference . property Definition . data Model Ġas ĠIs Root Values DataModel <* >, ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġvalue Ġas ĠKey < *> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ?. match Qualifier ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreferenced Matcher . qual ifier Matcher , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġto Version , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġrecord Fetcher , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmatcher ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) Ġ?: Ġfalse ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġis ĠQual ifier F uzzy Matcher Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġstart Ġ= Ġqualifier Matcher . first Possible () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġvalue Index Ġ= Ġvalues . binary Search Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġit . reference . compareTo ( start ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ}. let Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( it Ġ< Ġ 0 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġit Ġ* Ġ- 1 Ġ- Ġ 1 ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġit ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġqual ifiers @ for Ġ( index Ġin Ġ( value Index .. values . last Index )) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġvalue Ġ= ĠgetValue AtIndex < T >( this . values , Ġindex , Ġto Version ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ?: Ġcontinue @ qual ifiers ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġwhen Ġ( qual ifier Matcher . is Match ( value . reference , Ġ 0 )) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠNO _ MATCH Ġ-> Ġcontinue @ qual ifiers ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠMATCH Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġmatches Ġ= Ġwhen Ġ( val Ġreferenced Matcher Ġ= Ġqualifier Matcher . referenced Qualifier Matcher ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġnull Ġ-> Ġmatcher ( value . value ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġrecord Fetcher ( referenced Matcher . reference . comp arable Property Definition . data Model Ġas ĠIs Root Values DataModel <* >, Ġvalue . value Ġas ĠKey <* >) ?. ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmatch Qualifier ( referenced Matcher . qual ifier Matcher , Ġto Version , Ġrecord Fetcher , Ġmatcher ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ?: Ġfalse ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġif Ġ( matches ) Ġtrue Ġelse Ġcontinue @ qual ifiers ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠOUT _ OF _ RANGE Ġ-> Ġreturn Ġfalse ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġfalse ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĠGet Ġvalue Ġby Ġ[ reference ] Ġ*/ ĊĠĠĠ Ġoperator Ġfun Ġ< T Ġ: ĠAny > Ġget ( reference : ĠIs Property Reference < T , Ġ*, Ġ* >, Ġto Version : ĠH LC ? Ġ= Ġnull ): ĠT ? Ġ= ĊĠĠĠĠĠĠĠ Ġget ( reference . to Storage ByteArray (), Ġto Version ) ĊĊĠĠĠ Ġ/** ĠGet Ġvalue Ġby Ġ[ reference ] Ġ*/ ĊĠĠĠ Ġoperator Ġfun Ġ< T Ġ: ĠAny > Ġget ( reference : ĠByteArray , Ġto Version : ĠH LC ? Ġ= Ġnull ): ĠT ? Ġ= ĊĠĠĠĠĠĠĠ ĠgetValue < T >( this . values , Ġreference , Ġto Version )?. value Ċ } Ċ