/**
* Copyright (C) 2013 - present by OpenGamma Inc. and the OpenGamma group of companies
*
* Please see distribution for license.
*/
package com.opengamma.integration.regression;
import java.io.File;
import java.io.IOException;
import java.util.Map;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import com.opengamma.master.historicaltimeseries.ManageableHistoricalTimeSeries;
import com.opengamma.timeseries.date.localdate.ImmutableLocalDateDoubleTimeSeries;
import com.opengamma.timeseries.date.localdate.LocalDateDoubleTimeSeries;
import com.opengamma.util.ArgumentChecker;
/**
* Deletes the time series data points from a dump.
*/
/* package */class DeleteTimeSeriesData {
private static final Logger s_logger = LoggerFactory.getLogger(DeleteTimeSeriesData.class);
private final RegressionIO _io;
public DeleteTimeSeriesData(final RegressionIO io) {
_io = ArgumentChecker.notNull(io, "io");
}
public static void main(String[] args) throws IOException {
if (args.length < 1) {
System.err.println("arguments: dataDirectory (containing Fudge XML files)");
System.exit(1);
}
try {
final RegressionIO io = new SubdirsRegressionIO(new File(args[0]), new FudgeXMLFormat(), false);
(new DeleteTimeSeriesData(io)).run();
} catch (Throwable t) {
t.printStackTrace();
System.exit(1);
}
System.exit(0);
}
public void run() throws IOException {
_io.beginRead();
final Map<String, Object> timeSeriesMap = _io.readAll(RegressionUtils.HISTORICAL_TIME_SERIES_MASTER_DATA);
// Update the map entries in-situ, setting the time series data to blank
int deleted = 0;
int skipped = 0;
for (Map.Entry<String, Object> timeSeriesEntry : timeSeriesMap.entrySet()) {
final TimeSeriesWithInfo tswi = (TimeSeriesWithInfo) timeSeriesEntry.getValue();
final ManageableHistoricalTimeSeries hts = tswi.getTimeSeries();
final LocalDateDoubleTimeSeries ts = hts.getTimeSeries();
if (!ts.isEmpty()) {
s_logger.debug("Deleting data from {}", timeSeriesEntry.getKey());
hts.setTimeSeries(ImmutableLocalDateDoubleTimeSeries.EMPTY_SERIES);
deleted++;
} else {
skipped++;
}
}
_io.endRead();
_io.beginWrite();
// Write the modified map back out
_io.write(RegressionUtils.HISTORICAL_TIME_SERIES_MASTER_DATA, timeSeriesMap);
s_logger.info("Deleted data from {} time-series, skipped {}", deleted, skipped);
_io.endWrite();
}
}