Mercurial > dive4elements > gnv-client
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 : |