/**
* 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.engine.target.ComputationTargetType;
import com.opengamma.id.UniqueId;
import com.opengamma.util.money.UnorderedCurrencyPair;
/**
*
*/
public class FXForwardCurveFromYieldCurvesPrimitiveDefaults extends FXForwardCurveFromYieldCurvesDefaults {
public FXForwardCurveFromYieldCurvesPrimitiveDefaults(final String... currencyCurveConfigAndDiscountingCurveNames) {
super(ComputationTargetType.UNORDERED_CURRENCY_PAIR, currencyCurveConfigAndDiscountingCurveNames);
}
@Override
public boolean canApplyTo(final FunctionCompilationContext context, final ComputationTarget target) {
final UnorderedCurrencyPair ccy = (UnorderedCurrencyPair) target.getValue();
final Collection<String> currencies = getTargets();
return currencies.contains(ccy.getFirstCurrency().getCode()) && currencies.contains(ccy.getSecondCurrency().getCode());
}
@Override
protected String getFirstCurrency(final ComputationTarget target) {
final UniqueId uniqueId = target.getUniqueId();
final String currencyPair = uniqueId.getValue();
return currencyPair.substring(0, 3);
}
@Override
protected String getSecondCurrency(final ComputationTarget target) {
final UniqueId uniqueId = target.getUniqueId();
final String currencyPair = uniqueId.getValue();
return currencyPair.substring(3, 6);
}
}