annotate 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
rev   line source
238
a157c6042cb4 ODV-export for timeseries completed.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
1 package de.intevation.gnv.exports;
a157c6042cb4 ODV-export for timeseries completed.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
2
a157c6042cb4 ODV-export for timeseries completed.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
3 import java.util.List;
a157c6042cb4 ODV-export for timeseries completed.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
4 import java.util.ArrayList;
a157c6042cb4 ODV-export for timeseries completed.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
5 import java.util.Date;
a157c6042cb4 ODV-export for timeseries completed.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
6 import java.text.DateFormat;
a157c6042cb4 ODV-export for timeseries completed.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
7 import java.text.SimpleDateFormat;
a157c6042cb4 ODV-export for timeseries completed.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
8
a157c6042cb4 ODV-export for timeseries completed.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
9 import org.apache.log4j.Logger;
a157c6042cb4 ODV-export for timeseries completed.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
10
a157c6042cb4 ODV-export for timeseries completed.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
11 import com.vividsolutions.jts.io.WKTReader;
a157c6042cb4 ODV-export for timeseries completed.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
12 import com.vividsolutions.jts.io.ParseException;
a157c6042cb4 ODV-export for timeseries completed.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
13 import com.vividsolutions.jts.geom.Point;
a157c6042cb4 ODV-export for timeseries completed.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
14
a157c6042cb4 ODV-export for timeseries completed.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
15 import de.intevation.gnv.geobackend.base.Result;
a157c6042cb4 ODV-export for timeseries completed.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
16 import de.intevation.gnv.transition.exception.TransitionException;
a157c6042cb4 ODV-export for timeseries completed.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
17
a157c6042cb4 ODV-export for timeseries completed.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
18 /**
a157c6042cb4 ODV-export for timeseries completed.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
19 * @author Ingo Weinzierl (ingo.weinzierl@intevation.de)
a157c6042cb4 ODV-export for timeseries completed.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
20 */
a157c6042cb4 ODV-export for timeseries completed.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
21 public class SimpleOdvDataCollector
a157c6042cb4 ODV-export for timeseries completed.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
22 extends ShapeDataCollector
a157c6042cb4 ODV-export for timeseries completed.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
23 {
a157c6042cb4 ODV-export for timeseries completed.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
24 private static Logger log = Logger.getLogger(SimpleOdvDataCollector.class);
a157c6042cb4 ODV-export for timeseries completed.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
25
a157c6042cb4 ODV-export for timeseries completed.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
26 public static final String SRC_FORMAT = "yyyy.MM.dd HH:mm:ss";
a157c6042cb4 ODV-export for timeseries completed.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
27 public static final String DEST_FORMAT = "yyyy-MM-dd HH:mm";
a157c6042cb4 ODV-export for timeseries completed.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
28
a157c6042cb4 ODV-export for timeseries completed.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
29 public static DateFormat srcFormat = new SimpleDateFormat(SRC_FORMAT);
a157c6042cb4 ODV-export for timeseries completed.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
30 public static DateFormat destFormat = new SimpleDateFormat(DEST_FORMAT);
a157c6042cb4 ODV-export for timeseries completed.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
31
a157c6042cb4 ODV-export for timeseries completed.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
32 public SimpleOdvDataCollector(String[] names) {
a157c6042cb4 ODV-export for timeseries completed.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
33 super(names);
a157c6042cb4 ODV-export for timeseries completed.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
34 }
a157c6042cb4 ODV-export for timeseries completed.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
35
a157c6042cb4 ODV-export for timeseries completed.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
36 public String[] getData(Result result)
a157c6042cb4 ODV-export for timeseries completed.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
37 throws TransitionException
a157c6042cb4 ODV-export for timeseries completed.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
38 {
a157c6042cb4 ODV-export for timeseries completed.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
39 if (rd == null)
a157c6042cb4 ODV-export for timeseries completed.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
40 init(result);
a157c6042cb4 ODV-export for timeseries completed.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
41
a157c6042cb4 ODV-export for timeseries completed.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
42 try {
a157c6042cb4 ODV-export for timeseries completed.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
43 String [] entries = new String[names.length+1];
a157c6042cb4 ODV-export for timeseries completed.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
44 int j = 0;
a157c6042cb4 ODV-export for timeseries completed.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
45 for (int i = 0; i < names.length; i++) {
a157c6042cb4 ODV-export for timeseries completed.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
46
a157c6042cb4 ODV-export for timeseries completed.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
47 if (names[i].equals("SHAPE")) {
a157c6042cb4 ODV-export for timeseries completed.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
48 Point p = (Point)wktReader.read(result.getString("SHAPE"));
a157c6042cb4 ODV-export for timeseries completed.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
49
a157c6042cb4 ODV-export for timeseries completed.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
50 entries[j++] = ""+p.getX();
a157c6042cb4 ODV-export for timeseries completed.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
51 entries[j++] = ""+p.getY();
a157c6042cb4 ODV-export for timeseries completed.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
52 }
a157c6042cb4 ODV-export for timeseries completed.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
53 // Change the datetime format from yyyy.MM.dd HH:mm:ss to
a157c6042cb4 ODV-export for timeseries completed.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
54 // yyyy-MM-dd HH:mm
a157c6042cb4 ODV-export for timeseries completed.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
55 else if (names[i].equals("TIMEVALUE")) {
a157c6042cb4 ODV-export for timeseries completed.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
56 Date source = srcFormat.parse(result.getString(names[i]));
a157c6042cb4 ODV-export for timeseries completed.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
57 entries[j++] = destFormat.format(source);
a157c6042cb4 ODV-export for timeseries completed.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
58 }
a157c6042cb4 ODV-export for timeseries completed.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
59 else {
a157c6042cb4 ODV-export for timeseries completed.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
60 entries[j++] = result.getString(names[i]);
a157c6042cb4 ODV-export for timeseries completed.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
61 }
a157c6042cb4 ODV-export for timeseries completed.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
62 }
a157c6042cb4 ODV-export for timeseries completed.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
63
a157c6042cb4 ODV-export for timeseries completed.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
64 return entries;
a157c6042cb4 ODV-export for timeseries completed.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
65 }
a157c6042cb4 ODV-export for timeseries completed.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
66 catch (ParseException pe) {
a157c6042cb4 ODV-export for timeseries completed.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
67 log.error(pe, pe);
a157c6042cb4 ODV-export for timeseries completed.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
68 throw new TransitionException(
a157c6042cb4 ODV-export for timeseries completed.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
69 "Error occured while parsing source data.");
a157c6042cb4 ODV-export for timeseries completed.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
70 }
a157c6042cb4 ODV-export for timeseries completed.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
71 catch (java.text.ParseException pe) {
a157c6042cb4 ODV-export for timeseries completed.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
72 log.error(pe, pe);
a157c6042cb4 ODV-export for timeseries completed.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
73 throw new TransitionException(
a157c6042cb4 ODV-export for timeseries completed.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
74 "Error occured while parsing source data.");
a157c6042cb4 ODV-export for timeseries completed.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
75 }
a157c6042cb4 ODV-export for timeseries completed.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
76 }
a157c6042cb4 ODV-export for timeseries completed.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
77 }

http://dive4elements.wald.intevation.org