/**
* Copyright (C) 2013 - present by OpenGamma Inc. and the OpenGamma group of companies
*
* Please see distribution for license.
*/
package com.opengamma.financial.analytics.curve;
import com.opengamma.core.config.ConfigSource;
import com.opengamma.engine.function.FunctionCompilationContext;
import com.opengamma.engine.function.FunctionDefinition;
import com.opengamma.financial.config.ConfigSourceQuery;
import com.opengamma.id.VersionCorrection;
import com.opengamma.util.ArgumentChecker;
/**
* Supplies {@link CurveConstructionConfiguration}s stored in a {@link ConfigSource}
*/
public class ConfigDBCurveConstructionConfigurationSource implements CurveConstructionConfigurationSource {
/** The config source */
private final ConfigSourceQuery<CurveConstructionConfiguration> _query;
/**
* @param configSource The config source, not null
* @deprecated Use {@link #ConfigDBCurveConstructionConfigurationSource(ConfigSource,VersionCorrection)}, {@link #ConfigDBCurveConstructionConfigurationSource(ConfigSourceQuery)} or {@link #init}
* instead
*/
@Deprecated
public ConfigDBCurveConstructionConfigurationSource(final ConfigSource configSource) {
this(configSource, VersionCorrection.LATEST);
}
/**
* @param configSource The config source, not null
* @param versionCorrection The version correction to query at, not null
*/
public ConfigDBCurveConstructionConfigurationSource(final ConfigSource configSource, final VersionCorrection versionCorrection) {
this(new ConfigSourceQuery<CurveConstructionConfiguration>(configSource, CurveConstructionConfiguration.class, versionCorrection));
}
public ConfigDBCurveConstructionConfigurationSource(final ConfigSourceQuery<CurveConstructionConfiguration> query) {
_query = ArgumentChecker.notNull(query, "query");
}
public static ConfigDBCurveConstructionConfigurationSource init(final FunctionCompilationContext context, final FunctionDefinition function) {
return new ConfigDBCurveConstructionConfigurationSource(ConfigSourceQuery.init(context, function, CurveConstructionConfiguration.class));
}
@Override
public CurveConstructionConfiguration getCurveConstructionConfiguration(final String name) {
ArgumentChecker.notNull(name, "name");
return _query.get(name);
}
@Override
public CurveConstructionConfiguration getCurveConstructionConfiguration(final String name, final VersionCorrection versionCorrection) {
ArgumentChecker.notNull(name, "name");
ArgumentChecker.notNull(versionCorrection, "version correction");
return _query.get(name, versionCorrection);
}
}