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