You are viewing an old version of this page. View the current version.
Compare with Current
View Page History
« Previous
Version 2
Next »
/* ================================================================
* Delft FEWS
* ================================================================
*
* Project Info: http://www.wldelft.nl/soft/fews/index.html
* Project Lead: Karel Heynert (karel.heynert@wldelft.nl)
*
* (C) Copyright 2003, by WL | Delft Hydraulics
* P.O. Box 177
* 2600 MH Delft
* The Netherlands
* http://www.wldelft.nl
*
* DELFT-FEWS is a sophisticated collection of modules designed
* for building a FEWS customised to the specific requirements
* of individual agencies. An open modelling approach allows users
* to add their own modules in an efficient way.
*
* ----------------------------------------------------------------
* TvaDailyWaterviewTimeSeriesParser.java
* ----------------------------------------------------------------
* (C) Copyright 2003, by WL | Delft Hydraulics
*
* Original Author: pelgrim
* Contributor(s):
*
* Changes:
* --------
* 17-Apr-14 : Version 1 ();
*
*
*/
package nl.wldelft.timeseriesparsers;
import nl.wldelft.util.io.LineReader;
import nl.wldelft.util.io.TextParser;
import nl.wldelft.util.timeseries.DefaultTimeSeriesHeader;
import nl.wldelft.util.timeseries.TimeSeriesContentHandler;
import java.io.File;
public class TvaDailyWaterViewCsvTimeSeriesParser implements TextParser<TimeSeriesContentHandler> {
@Override
public void parse(LineReader reader, String virtualFileName, TimeSeriesContentHandler contentHandler) throws Exception {
String[] columnHeaders = reader.readLine(',');
DefaultTimeSeriesHeader header = new DefaultTimeSeriesHeader();
String locationId = determineLocationId(reader.getVirtualFileName());
header.setLocationId(locationId);
for (String[] buffer = new String[columnHeaders.length]; reader.readLine(',', '"', buffer) != -1; ) {
contentHandler.setTime(contentHandler.getDefaultTimeZone(), "MM-dd-yyyy H:mm:ss", buffer[0] + ' ' + buffer[1]);
for (int i = 2; i < 41; i++) {
header.setParameterId(columnHeaders[i]);
contentHandler.setValue('.', buffer[i]);
contentHandler.setTimeSeriesHeader(header);
contentHandler.applyCurrentFields();
}
for (int i = 43; i < columnHeaders.length; i++) {
header.setParameterId(columnHeaders[i]);
contentHandler.setValue('.', buffer[i]);
contentHandler.setTimeSeriesHeader(header);
contentHandler.applyCurrentFields();
}
}
}
private static String determineLocationId(String path) {
String fileName = new File(path).getName();
int beginIndex = fileName.lastIndexOf('.');
return fileName.substring(beginIndex + 1);
}
}