/**
* Copyright (C) 2011 - present by OpenGamma Inc. and the OpenGamma group of companies
*
* Please see distribution for license.
*/
package com.opengamma.engine.marketdata.historical;
import com.opengamma.core.historicaltimeseries.HistoricalTimeSeriesResolver;
import com.opengamma.core.historicaltimeseries.HistoricalTimeSeriesSource;
import com.opengamma.engine.marketdata.MarketDataProvider;
import com.opengamma.engine.marketdata.MarketDataProviderFactory;
import com.opengamma.engine.marketdata.spec.HistoricalMarketDataSpecification;
import com.opengamma.engine.marketdata.spec.MarketDataSpecification;
import com.opengamma.livedata.UserPrincipal;
import com.opengamma.util.ArgumentChecker;
/**
* A factory for {@link HistoricalMarketDataProvider} instances.
*/
public class HistoricalMarketDataProviderFactory implements MarketDataProviderFactory {
private final HistoricalTimeSeriesSource _timeSeriesSource;
private final HistoricalTimeSeriesResolver _timeSeriesResolver;
public HistoricalMarketDataProviderFactory(final HistoricalTimeSeriesSource timeSeriesSource, final HistoricalTimeSeriesResolver timeSeriesResolver) {
ArgumentChecker.notNull(timeSeriesSource, "timeSeriesSource");
ArgumentChecker.notNull(timeSeriesResolver, "timeSeriesResolver");
_timeSeriesSource = timeSeriesSource;
_timeSeriesResolver = timeSeriesResolver;
}
@Override
public MarketDataProvider create(final UserPrincipal marketDataUser, final MarketDataSpecification marketDataSpec) {
final HistoricalMarketDataSpecification historicalMarketDataSpec = (HistoricalMarketDataSpecification) marketDataSpec;
return new HistoricalMarketDataProvider(_timeSeriesSource, _timeSeriesResolver, historicalMarketDataSpec.getTimeSeriesResolverKey());
}
}