/** * Copyright (C) 2013 - present by OpenGamma Inc. and the OpenGamma group of companies * * Please see distribution for license. */ package com.opengamma.sesame.fxforward; import com.opengamma.analytics.financial.instrument.InstrumentDefinition; import com.opengamma.analytics.financial.provider.curve.CurveBuildingBlockBundle; import com.opengamma.analytics.financial.provider.description.interestrate.MulticurveProviderDiscount; import com.opengamma.financial.analytics.conversion.FixedIncomeConverterDataProvider; import com.opengamma.financial.security.FinancialSecurityVisitor; import com.opengamma.financial.security.fx.FXForwardSecurity; /** * Factory class for creating instances of {@link FXForwardCalculator}. */ public class FXForwardCalculatorFactory { private final FinancialSecurityVisitor<InstrumentDefinition<?>> _securityConverter; private final FixedIncomeConverterDataProvider _definitionToDerivativeConverter; public FXForwardCalculatorFactory(FinancialSecurityVisitor<InstrumentDefinition<?>> securityConverter, FixedIncomeConverterDataProvider definitionToDerivativeConverter) { _securityConverter = securityConverter; _definitionToDerivativeConverter = definitionToDerivativeConverter; } public FXForwardCalculator createCalculator(FXForwardSecurity security, MulticurveProviderDiscount bundle, CurveBuildingBlockBundle mergedJacobianBundle) { return new FXForwardCalculator(security, bundle, mergedJacobianBundle, _securityConverter, _definitionToDerivativeConverter); } }