@Override public void save() { current.save(); if (current.logChunkSize() > LOG_CHUNK_MAX_SIZE) { current.close(); current = new LogChunkMap<>(id++, name, keyType, valueType, config); } }
@Override public V get(K key) { V v = current.get(key); if (v == null && chunks.isEmpty()) { // TODO read old LogChunkMap<K, V> chunk = new LogChunkMap<>(id, name, keyType, valueType, config); chunks.add(chunk); v = chunks.get(0).get(key); } return v; }
@Override public void remove() { current.remove(); }
@Override public void clear() { current.clear(); }
@Override public boolean replace(K key, V oldValue, V newValue) { return current.replace(key, oldValue, newValue); }
@Override public DataType getKeyType() { return current.getKeyType(); }
@Override public int getId() { return current.getId(); }
@Override public K ceilingKey(K key) { return current.ceilingKey(key); }
@Override public boolean areValuesEqual(Object a, Object b) { return current.areValuesEqual(a, b); }
@Override public K floorKey(K key) { return current.floorKey(key); }
@Override public K higherKey(K key) { return current.higherKey(key); }
@Override public K lowerKey(K key) { return current.lowerKey(key); }
@Override public K lastKey() { return current.lastKey(); }
@Override public K firstKey() { return current.firstKey(); }
@Override public boolean isClosed() { return current.isClosed(); }
@Override public long size() { return current.size(); }
@Override public void close() { current.close(); }
@Override public boolean containsKey(K key) { return current.containsKey(key); }
public Set<Entry<K, V>> entrySet() { return current.entrySet(); }
@Override public boolean isEmpty() { return current.isEmpty(); }
@Override public String getName() { return current.getName(); }
@Override public boolean isInMemory() { return current.isInMemory(); }
@Override public DataType getValueType() { return current.getValueType(); }
@Override public StorageMapCursor<K, V> cursor(K from) { return current.cursor(from); }
@Override public V putIfAbsent(K key, V value) { return current.putIfAbsent(key, value); }
@Override public V remove(K key) { return current.remove(key); }