package com.datascience.datastoring.adapters.memory; import com.datascience.datastoring.IBackend; import com.datascience.datastoring.adapters.kv.IKVStorage; import com.datascience.datastoring.adapters.kv.MemoryKVStorage; import com.datascience.datastoring.datamodels.kv.IBackendKVFactory; import java.util.HashMap; import java.util.List; import java.util.Map; public class MemoryKVFactory<V> implements IBackendKVFactory<V>, IBackend{ protected Map<String, IKVStorage<V>> kvs = new HashMap<String, IKVStorage<V>>(); @Override public IKVStorage<V> getKV(String id) { IKVStorage<V> kv = kvs.get(id); if (kv == null) { kv = new MemoryKVStorage<V>(); kvs.put(id, kv); } return kv; } @Override public void remove(String kvId) { kvs.remove(kvId); } @Override public void rebuild() throws Exception { kvs = new HashMap<String, IKVStorage<V>>(); } @Override public void test(List<String> kvs) throws Exception {} @Override public IBackend getBackend() { return this; } @Override public String getID() { return "MEMORY"; } @Override public void test() {} @Override public void stop() { kvs.clear(); } }