/**
* Copyright (C) 2012 - present by OpenGamma Inc. and the OpenGamma group of companies
*
* Please see distribution for license.
*/
package com.opengamma.financial.analytics.model.curve.forward;
import java.util.Collection;
import com.opengamma.engine.ComputationTarget;
import com.opengamma.engine.function.FunctionCompilationContext;
import com.opengamma.financial.security.FinancialSecurityTypes;
import com.opengamma.financial.security.option.FXOptionSecurity;
/**
*
*/
public class FXForwardCurveFromYieldCurvesSecurityDefaults extends FXForwardCurveFromYieldCurvesDefaults {
public FXForwardCurveFromYieldCurvesSecurityDefaults(final String... currencyCurveConfigAndDiscountingCurveNames) {
super(FinancialSecurityTypes.FX_OPTION_SECURITY, currencyCurveConfigAndDiscountingCurveNames);
}
@Override
public boolean canApplyTo(final FunctionCompilationContext context, final ComputationTarget target) {
final FXOptionSecurity fxOption = (FXOptionSecurity) target.getSecurity();
final String firstCurrency = fxOption.getPutCurrency().getCode();
final String secondCurrency = fxOption.getCallCurrency().getCode();
final Collection<String> currencies = getTargets();
return currencies.contains(firstCurrency) && currencies.contains(secondCurrency);
}
@Override
protected String getFirstCurrency(final ComputationTarget target) {
final FXOptionSecurity fxOption = (FXOptionSecurity) target.getSecurity();
return fxOption.getPutCurrency().getCode();
}
@Override
protected String getSecondCurrency(final ComputationTarget target) {
final FXOptionSecurity fxOption = (FXOptionSecurity) target.getSecurity();
return fxOption.getCallCurrency().getCode();
}
}