/**
* 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.inflation;
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.inflation.ParameterInflationIssuerProviderInterface;
import com.opengamma.analytics.financial.provider.description.inflation.ParameterInflationProviderInterface;
import com.opengamma.util.ArgumentChecker;
/**
*
* @param <RESULT_TYPE> The result-type for the provider.
*/
public class InflationIssuerProviderAdapter<RESULT_TYPE>
extends InstrumentDerivativeVisitorSameMethodAdapter<ParameterInflationIssuerProviderInterface, RESULT_TYPE> {
private final InstrumentDerivativeVisitor<ParameterInflationProviderInterface, RESULT_TYPE> _visitor;
public InflationIssuerProviderAdapter(final InstrumentDerivativeVisitor<ParameterInflationProviderInterface, RESULT_TYPE> visitor) {
ArgumentChecker.notNull(visitor, "visitor");
_visitor = visitor;
}
@Override
public RESULT_TYPE visit(final InstrumentDerivative derivative) {
return derivative.accept(_visitor);
}
@Override
public RESULT_TYPE visit(final InstrumentDerivative derivative, final ParameterInflationIssuerProviderInterface data) {
return derivative.accept(_visitor, data.getInflationProvider());
}
}