blob: 0f9aeaf475d1fc8b61687239f1f77dab104ebc40 [file] [log] [blame]
package accord.impl.list;
import java.util.Map;
import java.util.NavigableMap;
import java.util.TreeMap;
import accord.api.Key;
import accord.api.KeyRange;
import accord.api.Store;
import accord.api.Write;
import accord.topology.KeyRanges;
import accord.txn.Timestamp;
import accord.utils.Timestamped;
public class ListWrite extends TreeMap<Key, int[]> implements Write
{
@Override
public void apply(KeyRanges ranges, Timestamp executeAt, Store store)
{
ListStore s = (ListStore) store;
for (KeyRange range : ranges)
{
NavigableMap<Key, int[]> selection = subMap(range.start(), range.startInclusive(),
range.end(), range.endInclusive());
for (Map.Entry<Key, int[]> e : selection.entrySet())
s.data.merge(e.getKey(), new Timestamped<>(executeAt, e.getValue()), Timestamped::merge);
}
}
}