/**
* Copyright (C) 2009 - present by OpenGamma Inc. and the OpenGamma group of companies
*
* Please see distribution for license.
*/
package com.opengamma.financial.analytics.volatility.surface;
import org.threeten.bp.LocalDate;
import com.opengamma.id.ExternalId;
/**
* Provides instruments for each point on the surface
* @param <X> The type of the x-axis values
* @param <Y> The type of the y-axis values
*/
public interface SurfaceInstrumentProvider<X, Y> {
/**
* Prefix field name.
*/
String PREFIX_FIELD_NAME = "PREFIX";
/**
* Postfix field name.
*/
String POSTFIX_FIELD_NAME = "POSTFIX";
/**
* Data field name.
*/
String DATA_FIELD_NAME = "DATA_FIELD_NAME";
//TODO in general, each instrument type will need a different set of inputs - not sure how helpful this class actually is
ExternalId getInstrument(X xAxis, Y yAxis);
ExternalId getInstrument(X xAxis, Y yAxis, LocalDate surfaceDate);
String getDataFieldName();
}