/** * Copyright (C) 2011 - present by OpenGamma Inc. and the OpenGamma group of companies * * Please see distribution for license. */ package com.opengamma.financial.analytics.conversion; import org.apache.commons.lang.Validate; import org.threeten.bp.ZonedDateTime; import com.opengamma.OpenGammaRuntimeException; import com.opengamma.analytics.financial.instrument.InstrumentDefinition; import com.opengamma.analytics.financial.instrument.swaption.SwaptionCashFixedIborDefinition; import com.opengamma.analytics.financial.instrument.swaption.SwaptionPhysicalFixedIborDefinition; import com.opengamma.analytics.financial.interestrate.InstrumentDerivative; import com.opengamma.core.historicaltimeseries.HistoricalTimeSeriesSource; import com.opengamma.financial.security.option.SwaptionSecurity; import com.opengamma.financial.security.swap.SwapSecurity; /** * */ public class SwaptionConverterDataProvider { //private final DefinitionConverterDataProvider _swapConverter; public SwaptionConverterDataProvider(final String dataSourceName, final String fieldName, final String dataProvider) { Validate.notNull(dataSourceName, "data source name"); Validate.notNull(fieldName, "field name"); Validate.notNull(dataProvider, "data provider"); //_swapConverter = new DefinitionConverterDataProvider(dataSourceName, fieldName, dataProvider); } @SuppressWarnings("unused") public InstrumentDerivative convert(final SwaptionSecurity security, final InstrumentDefinition<?> definition, final ZonedDateTime now, final String[] curveNames, final HistoricalTimeSeriesSource dataSource) { if (definition instanceof SwaptionCashFixedIborDefinition) { final SwaptionCashFixedIborDefinition cashSettled = (SwaptionCashFixedIborDefinition) definition; final SwapSecurity swapSecurity = null; //TODO //final DoubleTimeSeries<ZonedDateTime> swapFixingSeries = _swapConverter.convert(swapSecurity, definition, now, curveNames, dataSource); //return cashSettled.toDerivative(now, new DoubleTimeSeries[] {swapFixingTS}, curveNames); } if (definition instanceof SwaptionPhysicalFixedIborDefinition) { final SwaptionPhysicalFixedIborDefinition physicallySettled = (SwaptionPhysicalFixedIborDefinition) definition; final SwapSecurity swapSecurity = null; //TODO //final DoubleTimeSeries<ZonedDateTime> swapFixingSeries = _swapConverter.convert(swapSecurity, definition, now, curveNames, dataSource); //return physicallySettled.toDerivative(now, new DoubleTimeSeries[] {swapFixingTS}, curveNames); } throw new OpenGammaRuntimeException("This converter can only handle SwaptionCashFixedIborDefinition and SwaptionPhysicalFixedIborDefinition"); } }