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

http://dive4elements.wald.intevation.org