package mil.nga.giat.geowave.core.store.memory;
import java.util.HashMap;
import java.util.Map;
import mil.nga.giat.geowave.core.store.DataStore;
import mil.nga.giat.geowave.core.store.StoreFactoryOptions;
public class MemoryDataStoreFactory extends
AbstractMemoryStoreFactory<DataStore>
{
private static final Map<String, DataStore> DATA_STORE_CACHE = new HashMap<String, DataStore>();
@Override
public DataStore createStore(
StoreFactoryOptions configOptions ) {
return createStore(configOptions.getGeowaveNamespace());
}
protected static synchronized DataStore createStore(
final String namespace ) {
DataStore store = DATA_STORE_CACHE.get(namespace);
if (store == null) {
store = new MemoryDataStore(
MemoryAdapterStoreFactory.createStore(namespace),
MemoryIndexStoreFactory.createStore(namespace),
MemoryDataStatisticsStoreFactory.createStore(namespace),
MemorySecondaryIndexStoreFactory.createStore(namespace),
MemoryAdapterIndexMappingStoreFactory.createStore(namespace));
DATA_STORE_CACHE.put(
namespace,
store);
}
return store;
}
}