Mercurial > dive4elements > gnv-client
diff gnv-artifacts/src/main/java/de/intevation/gnv/exports/SimpleOdvDataCollector.java @ 238:a157c6042cb4
ODV-export for timeseries completed.
gnv-artifacts/trunk@306 c6561f87-3c4e-4783-a992-168aeb5c3f6f
author | Ingo Weinzierl <ingo.weinzierl@intevation.de> |
---|---|
date | Mon, 09 Nov 2009 13:48:50 +0000 |
parents | |
children | 3ea030aafe65 |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/gnv-artifacts/src/main/java/de/intevation/gnv/exports/SimpleOdvDataCollector.java Mon Nov 09 13:48:50 2009 +0000 @@ -0,0 +1,77 @@ +package de.intevation.gnv.exports; + +import java.util.List; +import java.util.ArrayList; +import java.util.Date; +import java.text.DateFormat; +import java.text.SimpleDateFormat; + +import org.apache.log4j.Logger; + +import com.vividsolutions.jts.io.WKTReader; +import com.vividsolutions.jts.io.ParseException; +import com.vividsolutions.jts.geom.Point; + +import de.intevation.gnv.geobackend.base.Result; +import de.intevation.gnv.transition.exception.TransitionException; + +/** + * @author Ingo Weinzierl (ingo.weinzierl@intevation.de) + */ +public class SimpleOdvDataCollector +extends ShapeDataCollector +{ + private static Logger log = Logger.getLogger(SimpleOdvDataCollector.class); + + public static final String SRC_FORMAT = "yyyy.MM.dd HH:mm:ss"; + public static final String DEST_FORMAT = "yyyy-MM-dd HH:mm"; + + public static DateFormat srcFormat = new SimpleDateFormat(SRC_FORMAT); + public static DateFormat destFormat = new SimpleDateFormat(DEST_FORMAT); + + public SimpleOdvDataCollector(String[] names) { + super(names); + } + + public String[] getData(Result result) + throws TransitionException + { + if (rd == null) + init(result); + + try { + String [] entries = new String[names.length+1]; + int j = 0; + for (int i = 0; i < names.length; i++) { + + if (names[i].equals("SHAPE")) { + Point p = (Point)wktReader.read(result.getString("SHAPE")); + + entries[j++] = ""+p.getX(); + entries[j++] = ""+p.getY(); + } + // Change the datetime format from yyyy.MM.dd HH:mm:ss to + // yyyy-MM-dd HH:mm + else if (names[i].equals("TIMEVALUE")) { + Date source = srcFormat.parse(result.getString(names[i])); + entries[j++] = destFormat.format(source); + } + else { + entries[j++] = result.getString(names[i]); + } + } + + return entries; + } + catch (ParseException pe) { + log.error(pe, pe); + throw new TransitionException( + "Error occured while parsing source data."); + } + catch (java.text.ParseException pe) { + log.error(pe, pe); + throw new TransitionException( + "Error occured while parsing source data."); + } + } +}