/** * Copyright (C) 2013 - present by OpenGamma Inc. and the OpenGamma group of companies * * Please see distribution for license. */ package com.opengamma.financial.currency; import java.util.List; import com.opengamma.engine.function.config.AbstractFunctionConfigurationBean; import com.opengamma.engine.function.config.FunctionConfiguration; import com.opengamma.engine.function.config.FunctionConfigurationSource; import com.opengamma.engine.value.ValueRequirementNames; /** * Function repository configuration source for the functions contained in this package. */ public class CurrencyFunctions extends AbstractFunctionConfigurationBean { /** * Default instance of a repository configuration source exposing the functions from this package. * * @return the configuration source exposing functions from this package */ public static FunctionConfigurationSource instance() { return new CurrencyFunctions().getObjectCreating(); } protected void addDefaultCurrencyFunction(final List<FunctionConfiguration> functions, final String requirementName) { functions.add(functionConfiguration(DefaultCurrencyFunction.Permissive.class, requirementName)); } public void addCurrencyConversionFunction(final List<FunctionConfiguration> functions, final String requirementName) { functions.add(functionConfiguration(CurrencyConversionFunction.class, requirementName)); addDefaultCurrencyFunction(functions, requirementName); } public void addCurrencySeriesConversionFunction(final List<FunctionConfiguration> functions, final String requirementName) { functions.add(functionConfiguration(CurrencySeriesConversionFunction.class, requirementName)); addDefaultCurrencyFunction(functions, requirementName); } @Override protected void addAllConfigurations(final List<FunctionConfiguration> functions) { functions.add(functionConfiguration(CurrencyMatrixSeriesSourcingFunction.class)); functions.add(functionConfiguration(CurrencyMatrixSpotSourcingFunction.class)); addCurrencyConversionFunction(functions, ValueRequirementNames.DAILY_PNL); addCurrencyConversionFunction(functions, ValueRequirementNames.DV01); addCurrencyConversionFunction(functions, ValueRequirementNames.CS01); addCurrencyConversionFunction(functions, ValueRequirementNames.GAMMA_CS01); addCurrencyConversionFunction(functions, ValueRequirementNames.RR01); addCurrencyConversionFunction(functions, ValueRequirementNames.IR01); addCurrencyConversionFunction(functions, ValueRequirementNames.JUMP_TO_DEFAULT); addCurrencyConversionFunction(functions, ValueRequirementNames.FAIR_VALUE); addCurrencySeriesConversionFunction(functions, ValueRequirementNames.PNL_SERIES); addCurrencySeriesConversionFunction(functions, ValueRequirementNames.YIELD_CURVE_PNL_SERIES); addCurrencySeriesConversionFunction(functions, ValueRequirementNames.CURVE_PNL_SERIES); addCurrencyConversionFunction(functions, ValueRequirementNames.FUNDING_LEG_PV); addCurrencyConversionFunction(functions, ValueRequirementNames.ASSET_LEG_PV); addCurrencyConversionFunction(functions, ValueRequirementNames.PRESENT_VALUE); addCurrencyConversionFunction(functions, ValueRequirementNames.ACCRUED_INTEREST); //TODO PRESENT_VALUE_CURVE_SENSITIVITY addCurrencyConversionFunction(functions, ValueRequirementNames.GAMMA_PV01); addCurrencyConversionFunction(functions, ValueRequirementNames.PV01); addCurrencyConversionFunction(functions, ValueRequirementNames.VALUE_DELTA); addCurrencyConversionFunction(functions, ValueRequirementNames.VALUE_GAMMA); addCurrencyConversionFunction(functions, ValueRequirementNames.VALUE_GAMMA_P); addCurrencyConversionFunction(functions, ValueRequirementNames.VALUE_PHI); addCurrencyConversionFunction(functions, ValueRequirementNames.VALUE_RHO); addCurrencyConversionFunction(functions, ValueRequirementNames.VALUE_SPEED); addCurrencyConversionFunction(functions, ValueRequirementNames.VALUE_THETA); addCurrencyConversionFunction(functions, ValueRequirementNames.VALUE_VANNA); addCurrencyConversionFunction(functions, ValueRequirementNames.VALUE_VEGA); addCurrencyConversionFunction(functions, ValueRequirementNames.VALUE_VOMMA); addCurrencyConversionFunction(functions, ValueRequirementNames.YIELD_CURVE_NODE_SENSITIVITIES); addCurrencyConversionFunction(functions, ValueRequirementNames.FX_FORWARD_POINTS_NODE_SENSITIVITIES); addCurrencyConversionFunction(functions, ValueRequirementNames.MONETIZED_VEGA); addCurrencyConversionFunction(functions, ValueRequirementNames.BUCKETED_CS01); addCurrencyConversionFunction(functions, ValueRequirementNames.BUCKETED_GAMMA_CS01); addCurrencyConversionFunction(functions, ValueRequirementNames.BUCKETED_IR01); } }