Package com.opengamma.financial.analytics.model

Source Code of com.opengamma.financial.analytics.model.ModelFunctions

/**
* Copyright (C) 2012 - present by OpenGamma Inc. and the OpenGamma group of companies
*
* Please see distribution for license.
*/
package com.opengamma.financial.analytics.model;

import java.util.Collections;
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.FunctionConfigurationBundle;
import com.opengamma.engine.function.config.FunctionConfigurationSource;
import com.opengamma.engine.function.config.SimpleFunctionConfigurationSource;
import com.opengamma.financial.analytics.model.black.BlackDiscountingPricingFunctions;
import com.opengamma.financial.analytics.model.bond.BondFunctions;
import com.opengamma.financial.analytics.model.bondfutureoption.BondFutureOptionFunctions;
import com.opengamma.financial.analytics.model.cds.CDSFunctions;
import com.opengamma.financial.analytics.model.credit.CreditFunctions;
import com.opengamma.financial.analytics.model.curve.CurveFunctions;
import com.opengamma.financial.analytics.model.curve.forward.ForwardFunctions;
import com.opengamma.financial.analytics.model.curve.interestrate.InterestRateFunctions;
import com.opengamma.financial.analytics.model.discounting.DiscountingPricingFunctions;
import com.opengamma.financial.analytics.model.equity.EquityFunctions;
import com.opengamma.financial.analytics.model.forex.ForexFunctions;
import com.opengamma.financial.analytics.model.future.FutureFunctions;
import com.opengamma.financial.analytics.model.futureoption.FutureOptionFunctions;
import com.opengamma.financial.analytics.model.fx.FXForwardPricingFunctions;
import com.opengamma.financial.analytics.model.g2ppdiscounting.G2ppPricingFunctions;
import com.opengamma.financial.analytics.model.horizon.HorizonFunctions;
import com.opengamma.financial.analytics.model.hullwhitediscounting.HullWhitePricingFunctions;
import com.opengamma.financial.analytics.model.irfutureoption.IRFutureOptionFunctions;
import com.opengamma.financial.analytics.model.option.OptionFunctions;
import com.opengamma.financial.analytics.model.pnl.PNLFunctions;
import com.opengamma.financial.analytics.model.sabr.SABRDiscountingPricingFunctions;
import com.opengamma.financial.analytics.model.sabrcube.SABRCubeFunctions;
import com.opengamma.financial.analytics.model.sensitivities.SensitivitiesFunctions;
import com.opengamma.financial.analytics.model.simpleinstrument.SimpleInstrumentFunctions;
import com.opengamma.financial.analytics.model.swaption.SwaptionFunctions;
import com.opengamma.financial.analytics.model.var.VaRFunctions;
import com.opengamma.financial.analytics.model.volatility.VolatilityFunctions;

/**
* Function repository configuration source for the functions contained in this package and sub-packages.
*/
public class ModelFunctions 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 ModelFunctions().getObjectCreating();
  }

  @Override
  protected void addAllConfigurations(final List<FunctionConfiguration> functions) {
    functions.add(functionConfiguration(MarginPriceFunction.class));
  }

  protected FunctionConfigurationSource bondFunctionConfiguration() {
    return BondFunctions.instance();
  }

  protected FunctionConfigurationSource bondFutureOptionFunctionConfiguration() {
    return BondFutureOptionFunctions.instance();
  }

  protected FunctionConfigurationSource cdsFunctionConfiguration() {
    return CDSFunctions.instance();
  }

  protected FunctionConfigurationSource creditFunctionConfiguration() {
    return CreditFunctions.instance();
  }

  protected FunctionConfigurationSource curveFunctionConfiguration() {
    return CurveFunctions.instance();
  }

  protected FunctionConfigurationSource equityFunctionConfiguration() {
    return EquityFunctions.instance();
  }

  /**
   * Adds deprecated interest rate instrument functions.
   * @return A configuration source containing the deprecated interest rate instrument functions
   * @deprecated The current versions of these functions are added in {@link #discountingFunctionConfiguration}
   */
  @Deprecated
  protected FunctionConfigurationSource fixedIncomeFunctionConfiguration() {
    return com.opengamma.financial.analytics.model.fixedincome.DeprecatedFunctions.instance();
  }

  /**
   * Adds pricing functions that use curves constructed with the discounting method.
   * @return A configuration source containing these functions.
   */
  protected FunctionConfigurationSource discountingFunctionConfiguration() {
    return DiscountingPricingFunctions.instance();
  }

  /**
   * Adds pricing functions that use Black surfaces and curve constructed with
   * the discounting method.
   * @return A configuration source containing these functions
   */
  protected FunctionConfigurationSource blackDiscountingFunctionConfiguration() {
    return BlackDiscountingPricingFunctions.instance();
  }

  /**
   * Adds pricing functions that use curves constructed using the Hull-White
   * one factor discounting method.
   * @return A configuration source containing these functions
   */
  protected FunctionConfigurationSource hullWhitePricingFunctionConfiguration() {
    return HullWhitePricingFunctions.instance();
  }

  /**
   * Adds pricing functions that use curves constructed using the G2++
   * discounting method
   * @return A configuration source containing these functions
   */
  protected FunctionConfigurationSource g2ppPricingFunctionConfiguration() {
    return G2ppPricingFunctions.instance();
  }

  protected FunctionConfigurationSource fxPricingFunctionConfiguration() {
    return FXForwardPricingFunctions.instance();
  }

  protected FunctionConfigurationSource yieldCurveFunctionConfiguration() {
    return InterestRateFunctions.instance();
  }

  protected FunctionConfigurationSource forwardFunctionConfiguration() {
    return ForwardFunctions.instance();
  }

  protected FunctionConfigurationSource forexFunctionConfiguration() {
    return ForexFunctions.instance();
  }

  protected FunctionConfigurationSource futureFunctionConfiguration() {
    return FutureFunctions.instance();
  }

  protected FunctionConfigurationSource futureOptionFunctionConfiguration() {
    return FutureOptionFunctions.instance();
  }

  /**
   * Adds horizon functions.
   * @return A configuration source containing horizon functions.
   */
  protected FunctionConfigurationSource horizonFunctionConfiguration() {
    return HorizonFunctions.instance();
  }

  /**
   * Adds interest rate future-specific functions.
   * @return A configuration source containing the deprecated interest rate future functions.
   * @deprecated The current versions of these functions are added in {@link ModelFunctions#blackDiscountingFunctionConfiguration}
   */
  @Deprecated
  protected FunctionConfigurationSource interestRateFutureFunctionConfiguration() {
    return FutureFunctions.deprecated();
  }

  protected FunctionConfigurationSource irFutureOptionFunctionConfiguration() {
    return IRFutureOptionFunctions.instance();
  }

  /**
   * Adds general option functions.
   * @return A configuration source containing option functions
   * @deprecated The underlying-specific functions should be used
   */
  @Deprecated
  protected FunctionConfigurationSource optionFunctionConfiguration() {
    return OptionFunctions.instance();
  }

  protected FunctionConfigurationSource pnlFunctionConfiguration() {
    return PNLFunctions.instance();
  }

  protected FunctionConfigurationSource riskFactorFunctionConfiguration() {
    // TODO
    return new SimpleFunctionConfigurationSource(new FunctionConfigurationBundle(Collections.<FunctionConfiguration>emptyList()));
  }

  /**
   * Adds SABR pricing functions for swaptions, cap/floors, CMS and cap/floor CMS spreads
   * @return A configuration source containing the deprecated functions
   * @deprecated The current versions of these functions are added in {@link ModelFunctions#sabrDiscountingFunctionConfiguration()}
   */
  @Deprecated
  protected FunctionConfigurationSource sabrCubeFunctionConfiguration() {
    return SABRCubeFunctions.instance();
  }

  protected FunctionConfigurationSource sabrDiscountingFunctionConfiguration() {
    return SABRDiscountingPricingFunctions.instance();
  }

  protected FunctionConfigurationSource sensitivitiesFunctionConfiguration() {
    return SensitivitiesFunctions.instance();
  }

  protected FunctionConfigurationSource simpleInstrumentFunctionConfiguration() {
    return SimpleInstrumentFunctions.instance();
  }

  protected FunctionConfigurationSource swaptionFunctionConfiguration() {
    return SwaptionFunctions.instance();
  }

  protected FunctionConfigurationSource varFunctionConfiguration() {
    return VaRFunctions.instance();
  }

  protected FunctionConfigurationSource volatilityFunctionConfiguration() {
    return VolatilityFunctions.instance();
  }

  protected FunctionConfigurationSource futureCurveFunctionConfiguration() {
    return com.opengamma.financial.analytics.model.curve.future.FutureFunctions.instance();
  }

  @Override
  protected FunctionConfigurationSource createObject() {
    return CombiningFunctionConfigurationSource.of(super.createObject(),
        bondFunctionConfiguration(),
        bondFutureOptionFunctionConfiguration(),
        cdsFunctionConfiguration(),
        creditFunctionConfiguration(),
        curveFunctionConfiguration(),
        equityFunctionConfiguration(),
        fixedIncomeFunctionConfiguration(),
        forexFunctionConfiguration(),
        futureFunctionConfiguration(),
        futureOptionFunctionConfiguration(),
        horizonFunctionConfiguration(),
        irFutureOptionFunctionConfiguration(),
        optionFunctionConfiguration(),
        pnlFunctionConfiguration(),
        riskFactorFunctionConfiguration(),
        sabrCubeFunctionConfiguration(),
        sensitivitiesFunctionConfiguration(),
        simpleInstrumentFunctionConfiguration(),
        swaptionFunctionConfiguration(),
        varFunctionConfiguration(),
        volatilityFunctionConfiguration(),
        yieldCurveFunctionConfiguration(),
        forwardFunctionConfiguration(),
        futureCurveFunctionConfiguration(),
        discountingFunctionConfiguration(),
        hullWhitePricingFunctionConfiguration(),
        interestRateFutureFunctionConfiguration(),
        fxPricingFunctionConfiguration(),
        blackDiscountingFunctionConfiguration(),
        sabrDiscountingFunctionConfiguration(),
        g2ppPricingFunctionConfiguration());
  }

}
TOP

Related Classes of com.opengamma.financial.analytics.model.ModelFunctions

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.