/**
* 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 org.fudgemsg.FudgeContext;
import com.opengamma.util.SingletonFactoryBean;
import com.sleepycat.je.Environment;
/**
*
*/
public class BerkeleyDBIdentifierMapFactoryBean extends SingletonFactoryBean<BerkeleyDBIdentifierMap> {
private static final String DEFAULT_IDENTIFIER_FOLDER = "BerkeleyDBIdentifierMap";
private String _identifierBaseFolder;
private String _identifierFolder;
private FudgeContext _fudgeContext;
public BerkeleyDBIdentifierMapFactoryBean() {
final String temp = System.getProperty("java.io.tmpdir");
setIdentifierBaseFolder(temp);
setIdentifierFolder(DEFAULT_IDENTIFIER_FOLDER);
}
public void setIdentifierBaseFolder(final String identifierBaseFolder) {
_identifierBaseFolder = identifierBaseFolder;
}
public String getIdentifierBaseFolder() {
return _identifierBaseFolder;
}
public void setIdentifierFolder(final String identifierFolder) {
_identifierFolder = identifierFolder;
}
public String getIdentifierFolder() {
return _identifierFolder;
}
public void setFudgeContext(final FudgeContext fudgeContext) {
_fudgeContext = fudgeContext;
}
public FudgeContext getFudgeContext() {
return _fudgeContext;
}
private File getFolder(final String base, final String folder) {
return new File(new File(base), folder);
}
@Override
protected BerkeleyDBIdentifierMap createObject() {
final File identifier = getFolder(getIdentifierBaseFolder(), getIdentifierFolder());
final Environment identifierEnvironment = BerkeleyDBViewComputationCacheSource.constructDatabaseEnvironment(identifier, true);
return new BerkeleyDBIdentifierMap(identifierEnvironment, getFudgeContext());
}
}