/**
* Copyright (C) 2011 - present by OpenGamma Inc. and the OpenGamma group of companies
*
* Please see distribution for license.
*/
package com.opengamma.analytics.financial.instrument;
import org.threeten.bp.ZonedDateTime;
import com.opengamma.analytics.financial.interestrate.InstrumentDerivative;
/**
* @param <S> Type of the data needed for conversion
* @param <T> Type of the interest rate derivative produced
*/
public interface InstrumentDefinitionWithData<T extends InstrumentDerivative, S> extends InstrumentDefinition<T> {
/**
* Converts the definition to the time-dependent derivative form.
* @param date The conversion date
* @param data needed for conversion
* @return The derivative
*/
T toDerivative(ZonedDateTime date, S data);
}