/**
* Copyright (C) 2012 - present by OpenGamma Inc. and the OpenGamma group of companies
*
* Please see distribution for license.
*/
package com.opengamma.financial;
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.aggregation.AggregationFunctions;
import com.opengamma.financial.analytics.AnalyticsFunctions;
import com.opengamma.financial.currency.CurrencyFunctions;
import com.opengamma.financial.property.PropertyFunctions;
import com.opengamma.financial.target.TargetFunctions;
import com.opengamma.financial.value.ValueFunctions;
import com.opengamma.financial.view.ViewFunctions;
/**
* Function repository configuration source for the functions contained in this package and sub-packages.
*/
public class FinancialFunctions 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 FinancialFunctions().getObjectCreating();
}
@Override
protected void addAllConfigurations(final List<FunctionConfiguration> functions) {
// Nothing in this package, just the sub-packages
}
protected FunctionConfigurationSource aggregationFunctionConfiguration() {
return AggregationFunctions.instance();
}
protected FunctionConfigurationSource analyticsFunctionConfiguration() {
return AnalyticsFunctions.instance();
}
protected FunctionConfigurationSource currencyFunctionConfiguration() {
return CurrencyFunctions.instance();
}
protected FunctionConfigurationSource propertyFunctionConfiguration() {
return PropertyFunctions.instance();
}
protected FunctionConfigurationSource targetFunctionConfiguration() {
return TargetFunctions.instance();
}
protected FunctionConfigurationSource valueFunctionConfiguration() {
return ValueFunctions.instance();
}
protected FunctionConfigurationSource viewFunctionConfiguration() {
return ViewFunctions.instance();
}
@Override
protected FunctionConfigurationSource createObject() {
return CombiningFunctionConfigurationSource.of(super.createObject(), aggregationFunctionConfiguration(), analyticsFunctionConfiguration(), currencyFunctionConfiguration(),
propertyFunctionConfiguration(), targetFunctionConfiguration(), valueFunctionConfiguration(), viewFunctionConfiguration());
}
}