annotate gnv-artifacts/src/main/java/de/intevation/gnv/state/profile/verticalcrosssection/VerticalCrossSectionParallelOutputState.java @ 1090:51f3edc9d743

Added missing classes of the last commit. gnv-artifacts/trunk@1204 c6561f87-3c4e-4783-a992-168aeb5c3f6f
author Ingo Weinzierl <ingo.weinzierl@intevation.de>
date Sat, 12 Jun 2010 13:00:45 +0000
parents
children e71e982772a9
rev   line source
1090
51f3edc9d743 Added missing classes of the last commit.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
1 package de.intevation.gnv.state.profile.verticalcrosssection;
51f3edc9d743 Added missing classes of the last commit.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
2
51f3edc9d743 Added missing classes of the last commit.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
3 import com.vividsolutions.jts.geom.Coordinate;
51f3edc9d743 Added missing classes of the last commit.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
4 import com.vividsolutions.jts.geom.CoordinateSequence;
51f3edc9d743 Added missing classes of the last commit.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
5 import com.vividsolutions.jts.geom.impl.CoordinateArraySequenceFactory;
51f3edc9d743 Added missing classes of the last commit.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
6
51f3edc9d743 Added missing classes of the last commit.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
7 import com.vividsolutions.jts.io.WKTWriter;
51f3edc9d743 Added missing classes of the last commit.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
8
51f3edc9d743 Added missing classes of the last commit.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
9
51f3edc9d743 Added missing classes of the last commit.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
10 import de.intevation.gnv.geobackend.base.Result;
51f3edc9d743 Added missing classes of the last commit.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
11 import de.intevation.gnv.geobackend.base.ResultDescriptor;
51f3edc9d743 Added missing classes of the last commit.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
12
51f3edc9d743 Added missing classes of the last commit.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
13 import de.intevation.gnv.geobackend.base.query.QueryExecutor;
51f3edc9d743 Added missing classes of the last commit.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
14 import de.intevation.gnv.geobackend.base.query.QueryExecutorFactory;
51f3edc9d743 Added missing classes of the last commit.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
15
51f3edc9d743 Added missing classes of the last commit.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
16 import de.intevation.gnv.geobackend.base.query.exception.QueryException;
51f3edc9d743 Added missing classes of the last commit.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
17
51f3edc9d743 Added missing classes of the last commit.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
18 import de.intevation.gnv.state.InputData;
51f3edc9d743 Added missing classes of the last commit.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
19
51f3edc9d743 Added missing classes of the last commit.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
20 import de.intevation.gnv.utils.WKTUtils;
51f3edc9d743 Added missing classes of the last commit.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
21
51f3edc9d743 Added missing classes of the last commit.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
22 import java.util.Collection;
51f3edc9d743 Added missing classes of the last commit.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
23 import java.util.Iterator;
51f3edc9d743 Added missing classes of the last commit.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
24
51f3edc9d743 Added missing classes of the last commit.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
25 import org.apache.log4j.Logger;
51f3edc9d743 Added missing classes of the last commit.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
26
51f3edc9d743 Added missing classes of the last commit.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
27 /**
51f3edc9d743 Added missing classes of the last commit.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
28 * @author <a href="mailto:ingo.weinzierl@intevation.de">Ingo Weinzierl</a>
51f3edc9d743 Added missing classes of the last commit.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
29 */
51f3edc9d743 Added missing classes of the last commit.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
30 public class VerticalCrossSectionParallelOutputState
51f3edc9d743 Added missing classes of the last commit.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
31 extends VerticalCrossSectionOutputState
51f3edc9d743 Added missing classes of the last commit.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
32 {
51f3edc9d743 Added missing classes of the last commit.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
33 public static final String QUERY_LINESTRING =
51f3edc9d743 Added missing classes of the last commit.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
34 "verticalcrosssection_mesh_parallel_linestring";
51f3edc9d743 Added missing classes of the last commit.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
35
51f3edc9d743 Added missing classes of the last commit.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
36 private static Logger logger =
51f3edc9d743 Added missing classes of the last commit.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
37 Logger.getLogger(VerticalCrossSectionParallelOutputState.class);
51f3edc9d743 Added missing classes of the last commit.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
38
51f3edc9d743 Added missing classes of the last commit.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
39 @Override
51f3edc9d743 Added missing classes of the last commit.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
40 protected String getLineString() {
51f3edc9d743 Added missing classes of the last commit.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
41 Coordinate[] coordinates = null;
51f3edc9d743 Added missing classes of the last commit.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
42
51f3edc9d743 Added missing classes of the last commit.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
43 try {
51f3edc9d743 Added missing classes of the last commit.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
44 String[] filters = generateFilterValues();
51f3edc9d743 Added missing classes of the last commit.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
45
51f3edc9d743 Added missing classes of the last commit.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
46 QueryExecutor exec = QueryExecutorFactory
51f3edc9d743 Added missing classes of the last commit.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
47 .getInstance()
51f3edc9d743 Added missing classes of the last commit.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
48 .getQueryExecutor();
51f3edc9d743 Added missing classes of the last commit.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
49
51f3edc9d743 Added missing classes of the last commit.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
50 Collection results = exec.executeQuery(QUERY_LINESTRING, filters);
51f3edc9d743 Added missing classes of the last commit.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
51 Iterator iter = results.iterator();
51f3edc9d743 Added missing classes of the last commit.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
52
51f3edc9d743 Added missing classes of the last commit.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
53 coordinates = new Coordinate[results.size()];
51f3edc9d743 Added missing classes of the last commit.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
54 int sIdx = -1;
51f3edc9d743 Added missing classes of the last commit.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
55 int idx = 0;
51f3edc9d743 Added missing classes of the last commit.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
56
51f3edc9d743 Added missing classes of the last commit.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
57 while (iter.hasNext()) {
51f3edc9d743 Added missing classes of the last commit.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
58 Result result = (Result) iter.next();
51f3edc9d743 Added missing classes of the last commit.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
59
51f3edc9d743 Added missing classes of the last commit.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
60 if (sIdx == -1) {
51f3edc9d743 Added missing classes of the last commit.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
61 ResultDescriptor rd = result.getResultDescriptor();
51f3edc9d743 Added missing classes of the last commit.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
62 sIdx = rd.getColumnIndex("SHAPE");
51f3edc9d743 Added missing classes of the last commit.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
63 }
51f3edc9d743 Added missing classes of the last commit.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
64
51f3edc9d743 Added missing classes of the last commit.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
65 logger.debug(result.getString(sIdx));
51f3edc9d743 Added missing classes of the last commit.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
66 Coordinate c = WKTUtils.toCoordinate(result.getString(sIdx));
51f3edc9d743 Added missing classes of the last commit.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
67
51f3edc9d743 Added missing classes of the last commit.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
68 coordinates[idx++] = c;
51f3edc9d743 Added missing classes of the last commit.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
69 }
51f3edc9d743 Added missing classes of the last commit.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
70 }
51f3edc9d743 Added missing classes of the last commit.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
71 catch (QueryException qe) {
51f3edc9d743 Added missing classes of the last commit.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
72 logger.error(qe, qe);
51f3edc9d743 Added missing classes of the last commit.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
73 }
51f3edc9d743 Added missing classes of the last commit.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
74
51f3edc9d743 Added missing classes of the last commit.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
75 CoordinateArraySequenceFactory factory =
51f3edc9d743 Added missing classes of the last commit.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
76 CoordinateArraySequenceFactory.instance();
51f3edc9d743 Added missing classes of the last commit.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
77
51f3edc9d743 Added missing classes of the last commit.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
78 if (coordinates == null)
51f3edc9d743 Added missing classes of the last commit.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
79 return null;
51f3edc9d743 Added missing classes of the last commit.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
80
51f3edc9d743 Added missing classes of the last commit.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
81 CoordinateSequence seq = factory.create(coordinates);
51f3edc9d743 Added missing classes of the last commit.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
82 return seq != null ? WKTWriter.toLineString(seq) : null;
51f3edc9d743 Added missing classes of the last commit.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
83 }
51f3edc9d743 Added missing classes of the last commit.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
84
51f3edc9d743 Added missing classes of the last commit.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
85
51f3edc9d743 Added missing classes of the last commit.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
86 protected String[] generateFilterValues() {
51f3edc9d743 Added missing classes of the last commit.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
87 String[] filters = new String[7];
51f3edc9d743 Added missing classes of the last commit.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
88
51f3edc9d743 Added missing classes of the last commit.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
89 InputData parameterid = inputData.get("parameterid");
51f3edc9d743 Added missing classes of the last commit.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
90 InputData timevalue = inputData.get("dateid");
51f3edc9d743 Added missing classes of the last commit.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
91 InputData meshid = inputData.get("meshid");
51f3edc9d743 Added missing classes of the last commit.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
92 InputData axisid = inputData.get("axisid");
51f3edc9d743 Added missing classes of the last commit.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
93 InputData meshpoint = inputData.get("mesh_point");
51f3edc9d743 Added missing classes of the last commit.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
94
51f3edc9d743 Added missing classes of the last commit.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
95 filters[0] = parameterid.getValue();
51f3edc9d743 Added missing classes of the last commit.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
96 filters[1] = "to_date('" + timevalue.getValue() + "', 'YYYY.MM.DD HH24:MI:SS')";
51f3edc9d743 Added missing classes of the last commit.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
97 filters[2] = meshid.getValue();
51f3edc9d743 Added missing classes of the last commit.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
98 filters[3] = meshid.getValue();
51f3edc9d743 Added missing classes of the last commit.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
99 filters[4] = axisid.getValue();
51f3edc9d743 Added missing classes of the last commit.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
100 filters[5] = axisid.getValue();
51f3edc9d743 Added missing classes of the last commit.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
101 filters[6] = meshpoint.getValue();
51f3edc9d743 Added missing classes of the last commit.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
102
51f3edc9d743 Added missing classes of the last commit.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
103 return filters;
51f3edc9d743 Added missing classes of the last commit.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
104 }
51f3edc9d743 Added missing classes of the last commit.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
105 }
51f3edc9d743 Added missing classes of the last commit.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
106 // vim:set ts=4 sw=4 si et sta sts=4 fenc=utf8 :

http://dive4elements.wald.intevation.org