/**
* Copyright (C) 2013 - present by OpenGamma Inc. and the OpenGamma group of companies
*
* Please see distribution for license.
*/
package com.opengamma.financial.analytics.model.forex;
import java.util.List;
import com.opengamma.engine.function.config.AbstractFunctionConfigurationBean;
import com.opengamma.engine.function.config.CombiningFunctionConfigurationSource;
import com.opengamma.engine.function.config.FunctionConfiguration;
import com.opengamma.engine.function.config.FunctionConfigurationSource;
import com.opengamma.financial.analytics.model.forex.forward.ForwardFunctions;
import com.opengamma.financial.analytics.model.forex.option.OptionFunctions;
/**
* Function repository configuration source for the functions contained in this package and its sub-packages.
*/
public class ForexFunctions extends AbstractFunctionConfigurationBean {
/**
* Default instance of a repository configuration source exposing the functions from this package and its sub-packages.
*
* @return the configuration source exposing functions from this package and its sub-packages
*/
public static FunctionConfigurationSource instance() {
return new ForexFunctions().getObjectCreating();
}
@Override
protected void addAllConfigurations(final List<FunctionConfiguration> functions) {
functions.add(functionConfiguration(ConventionBasedFXRateFunction.class));
functions.add(functionConfiguration(SecurityFXHistoricalTimeSeriesFunction.class));
}
/**
* Adds deprecated FX forward functions to the repository
* @return The configuration source populated with FX forward functions.
* @deprecated The functions that are added are deprecated
*/
@Deprecated
protected FunctionConfigurationSource forwardFunctionConfiguration() {
return ForwardFunctions.instance();
}
protected FunctionConfigurationSource optionFunctionConfiguration() {
return OptionFunctions.instance();
}
@Override
protected FunctionConfigurationSource createObject() {
return CombiningFunctionConfigurationSource.of(super.createObject(), forwardFunctionConfiguration(), optionFunctionConfiguration());
}
}