/**
* Copyright (C) 2009 - present by OpenGamma Inc. and the OpenGamma group of companies
*
* Please see distribution for license.
*/
package com.opengamma.engine.cache;
import java.io.File;
import com.opengamma.util.SingletonFactoryBean;
import com.sleepycat.je.Environment;
/**
*
*/
public class BerkeleyDBBinaryDataStoreFactoryFactoryBean extends SingletonFactoryBean<BerkeleyDBBinaryDataStoreFactory> {
private static final String DEFAULT_DATASTORE_FOLDER = "BerkeleyDBBinaryDataStore";
private String _dataStoreBaseFolder;
private String _dataStoreFolder;
public BerkeleyDBBinaryDataStoreFactoryFactoryBean() {
final String temp = System.getProperty("java.io.tmpdir");
setDataStoreBaseFolder(temp);
setDataStoreFolder(DEFAULT_DATASTORE_FOLDER);
}
public void setDataStoreBaseFolder(final String dataStoreBaseFolder) {
_dataStoreBaseFolder = dataStoreBaseFolder;
}
public String getDataStoreBaseFolder() {
return _dataStoreBaseFolder;
}
public void setDataStoreFolder(final String dataStoreFolder) {
_dataStoreFolder = dataStoreFolder;
}
public String getDataStoreFolder() {
return _dataStoreFolder;
}
private File getFolder(final String base, final String folder) {
return new File(new File(base), folder);
}
protected Environment createDataStoreEnvironment() {
final File dataStore = getFolder(getDataStoreBaseFolder(), getDataStoreFolder());
final Environment dataStoreEnvironment = BerkeleyDBViewComputationCacheSource.constructDatabaseEnvironment(dataStore, false);
return dataStoreEnvironment;
}
@Override
protected BerkeleyDBBinaryDataStoreFactory createObject() {
return new BerkeleyDBBinaryDataStoreFactory(createDataStoreEnvironment());
}
}