package Ġm ary k . datastore . ro cksdb . processors . helpers Ċ Ċ import Ġm ary k . core . extensions . bytes . to Var Bytes Ċ import Ġm ary k . core . extensions . bytes . write Bytes Ċ import Ġm ary k . core . properties . definitions . Is Storage Bytes En codable Ċ import Ġm ary k . core . properties . references . List Reference Ċ import Ġm ary k . core . properties . types . Key Ċ import Ġm ary k . datastore . ro cksdb . TableColumn F amilies Ċ import Ġm ary k . datastore . ro cksdb . processors . NO _ TYPE _ IND IC ATOR Ċ import Ġm ary k . datastore . ro cksdb . Transaction Ċ Ċ /** Ċ Ġ* ĠSet Ġa Ġlist Ġvalue Ġin Ġ[ transaction ] Ġfor Ġ[ reference ] Ġwith Ġa Ġ[ new List ] Ġat Ġnew Ġ[ version ]. Ċ Ġ* ĠWith Ġ[ original Count ] Ġit Ġis Ġdetermined Ġif Ġitems Ġneed Ġto Ġbe Ġdeleted . Ċ Ġ* ĠUse Ġ[ keep All Versions ] Ġon Ġtrue Ġto Ġkeep Ġold Ġversions Ċ Ġ* ĠReturns Ġtrue Ġif Ġchanged Ċ Ġ*/ Ċ internal Ġfun Ġ< T Ġ: ĠAny > Ġset List Value ( ĊĠĠĠ Ġtransaction : ĠTransaction , ĊĠĠĠ Ġcolumn F amilies : ĠTable Column F amilies , ĊĠĠĠ Ġkey : ĠKey <* >, ĊĠĠĠ Ġreference : ĠList Reference < T , Ġ* >, ĊĠĠĠ Ġnew List : ĠList < T >, ĊĠĠĠ Ġoriginal Count : ĠInt , ĊĠĠĠ Ġversion : ĠByteArray Ċ ): ĠBoolean Ġ{ ĊĠĠĠ Ġval Ġkey And Reference As Bytes Ġ= Ġreference . to Storage ByteArray ( key . bytes ) ĊĠĠĠ Ġ@ Suppress (" UN CHECK ED _ CAST ") ĊĠĠĠ Ġval Ġvalue Definition Ġ= Ġreference . property Definition . value Definition Ġas ĠIs Storage Bytes En codable < T > ĊĊĠĠĠ Ġ// ĠSet Ġthe Ġcount ĊĠĠĠ ĠsetValue ( transaction , Ġcolumn F amilies , Ġkey And Reference As Bytes , Ġversion , Ġnew List . size . to Var Bytes ()) ĊĊĠĠĠ Ġ// ĠWhere Ġis Ġlast Ġaddition ĊĠĠĠ Ġvar Ġchanged Ġ= Ġfalse ĊĊĠĠĠ Ġval Ġto Delete Count Ġ= Ġoriginal Count Ġ- Ġnew List . size ĊĠĠĠ Ġif Ġ( to Delete Count Ġ> Ġ 0 ) Ġ{ ĊĠĠĠĠĠĠĠ Ġfor Ġ( i Ġin Ġ 0 .. to Delete Count ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġvar Ġbyte Index Ġ= Ġkey And Reference As Bytes . size ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġref ToDelete Ġ= Ġkey And Reference As Bytes . copyOf ( byte Index Ġ+ Ġ 4 ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ( i Ġ+ Ġnew List . size ). to UInt (). write Bytes ({ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġref ToDelete [ byte Index ++] Ġ= Ġit ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ}) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdelete Value ( transaction , Ġcolumn F amilies , Ġref ToDelete , Ġversion ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġchanged Ġ= Ġtrue ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ// ĠWalk Ġall Ġnew Ġvalues Ġto Ġstore ĊĠĠĠ Ġnew List . forEach Indexed Ġ{ Ġindex , Ġitem Ġ-> ĊĠĠĠĠĠĠĠ Ġvar Ġbyte Index Ġ= Ġkey And Reference As Bytes . size ĊĠĠĠĠĠĠĠ Ġval Ġnew Ref Ġ= Ġkey And Reference As Bytes . copyOf ( byte Index Ġ+ Ġ 4 ) ĊĠĠĠĠĠĠĠ Ġindex . to UInt (). write Bytes ({ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġnew Ref [ byte Index ++] Ġ= Ġit ĊĠĠĠĠĠĠĠ Ġ}) ĊĊĠĠĠĠĠĠĠ ĠsetValue ( transaction , Ġcolumn F amilies , Ġnew Ref , Ġversion , Ġvalue Definition . to Storage Bytes ( item , ĠNO _ TYPE _ IND IC ATOR )) ĊĠĠĠĠĠĠĠ Ġchanged Ġ= Ġtrue ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġreturn Ġchanged Ċ } Ċ