/**
* Copyright (C) 2012 - present by OpenGamma Inc. and the OpenGamma group of companies
*
* Please see distribution for license.
*/
package com.opengamma.engine.marketdata.historical;
import org.threeten.bp.Instant;
import org.threeten.bp.LocalDate;
import com.opengamma.core.historicaltimeseries.HistoricalTimeSeriesResolver;
import com.opengamma.core.historicaltimeseries.HistoricalTimeSeriesSource;
import com.opengamma.engine.marketdata.MarketDataSnapshot;
import com.opengamma.engine.marketdata.spec.LatestHistoricalMarketDataSpecification;
import com.opengamma.engine.marketdata.spec.MarketDataSpecification;
/**
* Historical market data provider which uses the latest point in a time-series.
*/
public class LatestHistoricalMarketDataProvider extends AbstractHistoricalMarketDataProvider {
/**
* Creates an instance.
*
* @param historicalTimeSeriesSource the underlying source of historical data, not null
* @param historicalTimeSeriesResolver the time series resolver, not null
* @param timeSeriesResolverKey the source resolver key, or null to use the source default
*/
protected LatestHistoricalMarketDataProvider(final HistoricalTimeSeriesSource historicalTimeSeriesSource,
final HistoricalTimeSeriesResolver historicalTimeSeriesResolver, final String timeSeriesResolverKey) {
super(historicalTimeSeriesSource, historicalTimeSeriesResolver, timeSeriesResolverKey);
}
/**
* Creates an instance.
*
* @param historicalTimeSeriesSource the underlying source of historical data, not null
* @param historicalTimeSeriesResolver the time series resolver, not null
*/
public LatestHistoricalMarketDataProvider(final HistoricalTimeSeriesSource historicalTimeSeriesSource, final HistoricalTimeSeriesResolver historicalTimeSeriesResolver) {
super(historicalTimeSeriesSource, historicalTimeSeriesResolver);
}
@Override
protected LocalDate getHistoricalResolutionDate(final MarketDataSpecification marketDataSpec) {
return null;
}
@Override
public boolean isCompatible(final MarketDataSpecification marketDataSpec) {
if (!(marketDataSpec instanceof LatestHistoricalMarketDataSpecification)) {
return false;
}
return super.isCompatible(marketDataSpec);
}
@Override
public MarketDataSnapshot snapshot(final MarketDataSpecification marketDataSpec) {
return new HistoricalMarketDataSnapshot(getTimeSeriesSource(), Instant.now(), null);
}
}