/**
* Copyright (C) 2012 - present by OpenGamma Inc. and the OpenGamma group of companies
*
* Please see distribution for license.
*/
package com.opengamma.analytics.financial.provider.calculator.hullwhite;
import com.opengamma.analytics.financial.interestrate.InstrumentDerivative;
import com.opengamma.analytics.financial.interestrate.InstrumentDerivativeVisitor;
import com.opengamma.analytics.financial.interestrate.InstrumentDerivativeVisitorSameMethodAdapter;
import com.opengamma.analytics.financial.provider.description.interestrate.HullWhiteOneFactorProviderInterface;
import com.opengamma.analytics.financial.provider.description.interestrate.ParameterProviderInterface;
/**
*
* @param <RESULT_TYPE> The result-type for the provider.
*/
public class HullWhiteProviderAdapter<RESULT_TYPE>
extends InstrumentDerivativeVisitorSameMethodAdapter<HullWhiteOneFactorProviderInterface, RESULT_TYPE> {
private final InstrumentDerivativeVisitor<ParameterProviderInterface, RESULT_TYPE> _visitor;
public HullWhiteProviderAdapter(final InstrumentDerivativeVisitor<ParameterProviderInterface, RESULT_TYPE> visitor) {
_visitor = visitor;
}
@Override
public RESULT_TYPE visit(final InstrumentDerivative derivative) {
return derivative.accept(_visitor);
}
@Override
public RESULT_TYPE visit(final InstrumentDerivative derivative, final HullWhiteOneFactorProviderInterface data) {
return derivative.accept(_visitor, data.getMulticurveProvider());
}
}