/** * Copyright (C) 2012 - present by OpenGamma Inc. and the OpenGamma group of companies * * Please see distribution for license. */ package com.opengamma.financial.analytics.volatility.cube; 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; /** * A source of volatility cube specifications that come from a {@link ConfigSource} */ public class ConfigDBVolatilityCubeSpecificationSource implements VolatilityCubeSpecificationSource { /** The query */ private final ConfigSourceQuery<VolatilityCubeSpecification> _query; /** * @param configSource The config source, not null * @param versionCorrection The version correction, not null */ public ConfigDBVolatilityCubeSpecificationSource(final ConfigSource configSource, final VersionCorrection versionCorrection) { this(new ConfigSourceQuery<>(configSource, VolatilityCubeSpecification.class, versionCorrection)); } /** * @param query The query, not null */ private ConfigDBVolatilityCubeSpecificationSource(final ConfigSourceQuery<VolatilityCubeSpecification> query) { _query = query; } /** * @param context The function compilation context, not null * @param function The function definition, not null * @return The cube specification source */ public static ConfigDBVolatilityCubeSpecificationSource init(final FunctionCompilationContext context, final FunctionDefinition function) { return new ConfigDBVolatilityCubeSpecificationSource(ConfigSourceQuery.init(context, function, VolatilityCubeSpecification.class)); } @Override public VolatilityCubeSpecification getSpecification(final String name) { return _query.get(name); } @Override public VolatilityCubeSpecification getSpecification(final String name, final VersionCorrection versionCorrection) { return _query.get(name, versionCorrection); } }