/** * Copyright (C) 2011 - present by OpenGamma Inc. and the OpenGamma group of companies * * Please see distribution for license. */ package com.opengamma.integration.copier.timeseries; import java.io.InputStream; import com.opengamma.integration.copier.sheet.SheetFormat; import com.opengamma.integration.copier.timeseries.reader.SingleSheetMultiTimeSeriesReader; import com.opengamma.integration.copier.timeseries.reader.TimeSeriesReader; import com.opengamma.integration.copier.timeseries.writer.DummyTimeSeriesWriter; import com.opengamma.integration.copier.timeseries.writer.MasterTimeSeriesWriter; import com.opengamma.integration.copier.timeseries.writer.TimeSeriesWriter; import com.opengamma.master.historicaltimeseries.HistoricalTimeSeriesMaster; import com.opengamma.util.ArgumentChecker; /** * Provides standard time series loader functionality */ public class TimeSeriesLoader { private final HistoricalTimeSeriesMaster _htsMaster; public TimeSeriesLoader(HistoricalTimeSeriesMaster htsMaster) { ArgumentChecker.notNull(htsMaster, "htsMaster"); _htsMaster = htsMaster; } public void run(SheetFormat sheetFormat, InputStream portfolioFileStream, String dataSource, String dataProvider, String dataField, String observationTime, String idScheme, String dateFormat, boolean persist) { // Set up writer TimeSeriesWriter timeSeriesWriter = constructTimeSeriesWriter(persist); // Set up reader TimeSeriesReader timeSeriesReader = new SingleSheetMultiTimeSeriesReader(sheetFormat, portfolioFileStream, dataSource, dataProvider, dataField, observationTime, idScheme, dateFormat); // Load in and write the securities, positions and trades timeSeriesReader.writeTo(timeSeriesWriter); // Flush changes to portfolio master timeSeriesWriter.flush(); } private TimeSeriesWriter constructTimeSeriesWriter(boolean write) { if (write) { // Create a portfolio writer to persist imported positions, trades and securities to the OG masters return new MasterTimeSeriesWriter(_htsMaster); } else { // Create a dummy portfolio writer to pretty-print instead of persisting return new DummyTimeSeriesWriter(); } } }