/**
* Copyright (C) 2009 - present by OpenGamma Inc. and the OpenGamma group of companies
*
* Please see distribution for license.
*/
package com.opengamma.engine.function.config;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.threeten.bp.Instant;
import com.opengamma.engine.function.FunctionRepository;
import com.opengamma.util.ArgumentChecker;
import com.opengamma.util.SingletonFactoryBean;
/**
* Bean for constructing a {@link FunctionRepository} from a {@link FunctionConfigurationSource} using the {@link FunctionRepositoryFactory}.
*
* @deprecated The {@code FunctionConfigurationSource} requires a version to deliver a reliable repository; configuration using this will not be able to work correctly with dynamically changing
* function repositories
*/
@Deprecated
public class FunctionRepositoryFactoryBean extends SingletonFactoryBean<FunctionRepository> {
private static final Logger s_logger = LoggerFactory.getLogger(FunctionRepositoryFactoryBean.class);
private FunctionConfigurationSource _functionConfigurationSource;
private Instant _configurationVersion = Instant.now();
public void setFunctionConfigurationSource(final FunctionConfigurationSource functionConfigurationSource) {
_functionConfigurationSource = functionConfigurationSource;
}
public FunctionConfigurationSource getRepositoryConfigurationSource() {
return _functionConfigurationSource;
}
public void setConfigurationVersion(final Instant configurationVersion) {
_configurationVersion = configurationVersion;
}
public Instant getConfigurationVersion() {
return _configurationVersion;
}
@Override
protected FunctionRepository createObject() {
s_logger.error("Deprecated configuration: pass the FunctionConfigurationSource directly - don't use this factory bean");
final FunctionConfigurationSource functionConfigurationSource = getRepositoryConfigurationSource();
final Instant configurationVersion = getConfigurationVersion();
ArgumentChecker.notNull(functionConfigurationSource, "functionConfigurationSource");
ArgumentChecker.notNull(configurationVersion, "configurationVersion");
final FunctionConfigurationBundle repositoryConfiguration = functionConfigurationSource.getFunctionConfiguration(configurationVersion);
return FunctionRepositoryFactory.constructRepository(repositoryConfiguration);
}
}