/**
* Copyright (C) 2011 - present by OpenGamma Inc. and the OpenGamma group of companies
*
* Please see distribution for license.
*/
package com.opengamma.financial.analytics.volatility.surface;
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;
/**
*
*/
public class ConfigDBFuturePriceCurveDefinitionSource implements FuturePriceCurveDefinitionSource {
@SuppressWarnings("rawtypes")
private final ConfigSourceQuery<FuturePriceCurveDefinition> _query;
/**
* @param configSource the config source, not null
* @deprecated Use {@link #ConfigDBFuturePriceCurveDefinitionSource(ConfigSource,VersionCorrection)} or {@link #init} instead
*/
@Deprecated
public ConfigDBFuturePriceCurveDefinitionSource(final ConfigSource configSource) {
this(configSource, VersionCorrection.LATEST);
}
@SuppressWarnings("rawtypes")
public ConfigDBFuturePriceCurveDefinitionSource(final ConfigSource configSource, final VersionCorrection versionCorrection) {
this(new ConfigSourceQuery<FuturePriceCurveDefinition>(configSource, FuturePriceCurveDefinition.class, versionCorrection));
}
@SuppressWarnings("rawtypes")
private ConfigDBFuturePriceCurveDefinitionSource(final ConfigSourceQuery<FuturePriceCurveDefinition> query) {
_query = query;
}
public static ConfigDBFuturePriceCurveDefinitionSource init(final FunctionCompilationContext context, final FunctionDefinition function) {
return new ConfigDBFuturePriceCurveDefinitionSource(ConfigSourceQuery.init(context, function, FuturePriceCurveDefinition.class));
}
protected ConfigSource getConfigSource() {
return _query.getConfigSource();
}
@Override
public FuturePriceCurveDefinition<?> getDefinition(final String name, final String instrumentType) {
return _query.get(name + "_" + instrumentType);
}
@Override
public FuturePriceCurveDefinition<?> getDefinition(final String name, final String instrumentType, final VersionCorrection versionCorrection) {
return _query.get(name + "_" + instrumentType, versionCorrection);
}
}