annotate gnv-artifacts/src/main/java/de/intevation/gnv/state/profile/verticalcrosssection/VerticalCrossSectionParallelOutputState.java @ 1094:e71e982772a9

Adjusted the subtitle of the product 'Achsenparalleles Vertikalprofil' (issue250). gnv-artifacts/trunk@1209 c6561f87-3c4e-4783-a992-168aeb5c3f6f
author Ingo Weinzierl <ingo.weinzierl@intevation.de>
date Mon, 14 Jun 2010 09:56:34 +0000
parents 51f3edc9d743
children f953c9a559d8
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
1094
e71e982772a9 Adjusted the subtitle of the product 'Achsenparalleles Vertikalprofil' (issue250).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1090
diff changeset
9 import de.intevation.gnv.artifacts.ressource.RessourceFactory;
1090
51f3edc9d743 Added missing classes of the last commit.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
10
51f3edc9d743 Added missing classes of the last commit.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
11 import de.intevation.gnv.geobackend.base.Result;
51f3edc9d743 Added missing classes of the last commit.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
12 import de.intevation.gnv.geobackend.base.ResultDescriptor;
51f3edc9d743 Added missing classes of the last commit.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
13
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.QueryExecutor;
51f3edc9d743 Added missing classes of the last commit.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
15 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
16
51f3edc9d743 Added missing classes of the last commit.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
17 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
18
51f3edc9d743 Added missing classes of the last commit.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
19 import de.intevation.gnv.state.InputData;
51f3edc9d743 Added missing classes of the last commit.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
20
51f3edc9d743 Added missing classes of the last commit.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
21 import de.intevation.gnv.utils.WKTUtils;
51f3edc9d743 Added missing classes of the last commit.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
22
51f3edc9d743 Added missing classes of the last commit.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
23 import java.util.Collection;
51f3edc9d743 Added missing classes of the last commit.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
24 import java.util.Iterator;
1094
e71e982772a9 Adjusted the subtitle of the product 'Achsenparalleles Vertikalprofil' (issue250).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1090
diff changeset
25 import java.util.Locale;
1090
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 import org.apache.log4j.Logger;
51f3edc9d743 Added missing classes of the last commit.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
28
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 * @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
31 */
51f3edc9d743 Added missing classes of the last commit.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
32 public class VerticalCrossSectionParallelOutputState
51f3edc9d743 Added missing classes of the last commit.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
33 extends VerticalCrossSectionOutputState
51f3edc9d743 Added missing classes of the last commit.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
34 {
51f3edc9d743 Added missing classes of the last commit.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
35 public static final String QUERY_LINESTRING =
51f3edc9d743 Added missing classes of the last commit.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
36 "verticalcrosssection_mesh_parallel_linestring";
51f3edc9d743 Added missing classes of the last commit.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
37
51f3edc9d743 Added missing classes of the last commit.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
38 private static Logger logger =
51f3edc9d743 Added missing classes of the last commit.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
39 Logger.getLogger(VerticalCrossSectionParallelOutputState.class);
51f3edc9d743 Added missing classes of the last commit.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
40
51f3edc9d743 Added missing classes of the last commit.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
41 @Override
51f3edc9d743 Added missing classes of the last commit.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
42 protected String getLineString() {
51f3edc9d743 Added missing classes of the last commit.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
43 Coordinate[] coordinates = null;
51f3edc9d743 Added missing classes of the last commit.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
44
51f3edc9d743 Added missing classes of the last commit.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
45 try {
51f3edc9d743 Added missing classes of the last commit.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
46 String[] filters = generateFilterValues();
51f3edc9d743 Added missing classes of the last commit.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
47
51f3edc9d743 Added missing classes of the last commit.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
48 QueryExecutor exec = QueryExecutorFactory
51f3edc9d743 Added missing classes of the last commit.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
49 .getInstance()
51f3edc9d743 Added missing classes of the last commit.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
50 .getQueryExecutor();
51f3edc9d743 Added missing classes of the last commit.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
51
51f3edc9d743 Added missing classes of the last commit.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
52 Collection results = exec.executeQuery(QUERY_LINESTRING, filters);
51f3edc9d743 Added missing classes of the last commit.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
53 Iterator iter = results.iterator();
51f3edc9d743 Added missing classes of the last commit.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
54
51f3edc9d743 Added missing classes of the last commit.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
55 coordinates = new Coordinate[results.size()];
51f3edc9d743 Added missing classes of the last commit.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
56 int sIdx = -1;
51f3edc9d743 Added missing classes of the last commit.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
57 int idx = 0;
51f3edc9d743 Added missing classes of the last commit.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
58
51f3edc9d743 Added missing classes of the last commit.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
59 while (iter.hasNext()) {
51f3edc9d743 Added missing classes of the last commit.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
60 Result result = (Result) iter.next();
51f3edc9d743 Added missing classes of the last commit.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
61
51f3edc9d743 Added missing classes of the last commit.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
62 if (sIdx == -1) {
51f3edc9d743 Added missing classes of the last commit.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
63 ResultDescriptor rd = result.getResultDescriptor();
51f3edc9d743 Added missing classes of the last commit.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
64 sIdx = rd.getColumnIndex("SHAPE");
51f3edc9d743 Added missing classes of the last commit.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
65 }
51f3edc9d743 Added missing classes of the last commit.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
66
51f3edc9d743 Added missing classes of the last commit.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
67 logger.debug(result.getString(sIdx));
51f3edc9d743 Added missing classes of the last commit.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
68 Coordinate c = WKTUtils.toCoordinate(result.getString(sIdx));
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 coordinates[idx++] = c;
51f3edc9d743 Added missing classes of the last commit.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
71 }
51f3edc9d743 Added missing classes of the last commit.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
72 }
51f3edc9d743 Added missing classes of the last commit.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
73 catch (QueryException qe) {
51f3edc9d743 Added missing classes of the last commit.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
74 logger.error(qe, qe);
51f3edc9d743 Added missing classes of the last commit.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
75 }
51f3edc9d743 Added missing classes of the last commit.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
76
51f3edc9d743 Added missing classes of the last commit.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
77 CoordinateArraySequenceFactory factory =
51f3edc9d743 Added missing classes of the last commit.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
78 CoordinateArraySequenceFactory.instance();
51f3edc9d743 Added missing classes of the last commit.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
79
51f3edc9d743 Added missing classes of the last commit.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
80 if (coordinates == null)
51f3edc9d743 Added missing classes of the last commit.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
81 return null;
51f3edc9d743 Added missing classes of the last commit.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
82
51f3edc9d743 Added missing classes of the last commit.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
83 CoordinateSequence seq = factory.create(coordinates);
51f3edc9d743 Added missing classes of the last commit.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
84 return seq != null ? WKTWriter.toLineString(seq) : null;
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
51f3edc9d743 Added missing classes of the last commit.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
87
51f3edc9d743 Added missing classes of the last commit.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
88 protected String[] generateFilterValues() {
51f3edc9d743 Added missing classes of the last commit.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
89 String[] filters = new String[7];
51f3edc9d743 Added missing classes of the last commit.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
90
51f3edc9d743 Added missing classes of the last commit.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
91 InputData parameterid = inputData.get("parameterid");
51f3edc9d743 Added missing classes of the last commit.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
92 InputData timevalue = inputData.get("dateid");
51f3edc9d743 Added missing classes of the last commit.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
93 InputData meshid = inputData.get("meshid");
51f3edc9d743 Added missing classes of the last commit.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
94 InputData axisid = inputData.get("axisid");
51f3edc9d743 Added missing classes of the last commit.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
95 InputData meshpoint = inputData.get("mesh_point");
51f3edc9d743 Added missing classes of the last commit.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
96
51f3edc9d743 Added missing classes of the last commit.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
97 filters[0] = parameterid.getValue();
51f3edc9d743 Added missing classes of the last commit.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
98 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
99 filters[2] = meshid.getValue();
51f3edc9d743 Added missing classes of the last commit.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
100 filters[3] = meshid.getValue();
51f3edc9d743 Added missing classes of the last commit.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
101 filters[4] = axisid.getValue();
51f3edc9d743 Added missing classes of the last commit.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
102 filters[5] = axisid.getValue();
51f3edc9d743 Added missing classes of the last commit.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
103 filters[6] = meshpoint.getValue();
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 return filters;
51f3edc9d743 Added missing classes of the last commit.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
106 }
1094
e71e982772a9 Adjusted the subtitle of the product 'Achsenparalleles Vertikalprofil' (issue250).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1090
diff changeset
107
e71e982772a9 Adjusted the subtitle of the product 'Achsenparalleles Vertikalprofil' (issue250).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1090
diff changeset
108
e71e982772a9 Adjusted the subtitle of the product 'Achsenparalleles Vertikalprofil' (issue250).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1090
diff changeset
109 @Override
e71e982772a9 Adjusted the subtitle of the product 'Achsenparalleles Vertikalprofil' (issue250).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1090
diff changeset
110 protected String createChartSubtitle(Locale locale, String uuid) {
e71e982772a9 Adjusted the subtitle of the product 'Achsenparalleles Vertikalprofil' (issue250).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1090
diff changeset
111 String subtitle = super.createChartSubtitle(locale, uuid);
e71e982772a9 Adjusted the subtitle of the product 'Achsenparalleles Vertikalprofil' (issue250).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1090
diff changeset
112
e71e982772a9 Adjusted the subtitle of the product 'Achsenparalleles Vertikalprofil' (issue250).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1090
diff changeset
113 InputData data = inputData.get("mesh_point");
e71e982772a9 Adjusted the subtitle of the product 'Achsenparalleles Vertikalprofil' (issue250).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1090
diff changeset
114 if (data == null)
e71e982772a9 Adjusted the subtitle of the product 'Achsenparalleles Vertikalprofil' (issue250).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1090
diff changeset
115 return subtitle;
e71e982772a9 Adjusted the subtitle of the product 'Achsenparalleles Vertikalprofil' (issue250).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1090
diff changeset
116
e71e982772a9 Adjusted the subtitle of the product 'Achsenparalleles Vertikalprofil' (issue250).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1090
diff changeset
117 RessourceFactory factory = RessourceFactory.getInstance();
e71e982772a9 Adjusted the subtitle of the product 'Achsenparalleles Vertikalprofil' (issue250).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1090
diff changeset
118 String coordinate = factory.getRessource(
e71e982772a9 Adjusted the subtitle of the product 'Achsenparalleles Vertikalprofil' (issue250).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1090
diff changeset
119 locale, "coordinate", "coordinate");
e71e982772a9 Adjusted the subtitle of the product 'Achsenparalleles Vertikalprofil' (issue250).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1090
diff changeset
120
e71e982772a9 Adjusted the subtitle of the product 'Achsenparalleles Vertikalprofil' (issue250).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1090
diff changeset
121 subtitle += "\n" + coordinate + ": ";
e71e982772a9 Adjusted the subtitle of the product 'Achsenparalleles Vertikalprofil' (issue250).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1090
diff changeset
122 subtitle += data.getDescription(data.getValue());
e71e982772a9 Adjusted the subtitle of the product 'Achsenparalleles Vertikalprofil' (issue250).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1090
diff changeset
123
e71e982772a9 Adjusted the subtitle of the product 'Achsenparalleles Vertikalprofil' (issue250).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1090
diff changeset
124 return subtitle;
e71e982772a9 Adjusted the subtitle of the product 'Achsenparalleles Vertikalprofil' (issue250).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1090
diff changeset
125 }
1090
51f3edc9d743 Added missing classes of the last commit.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
126 }
51f3edc9d743 Added missing classes of the last commit.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
127 // vim:set ts=4 sw=4 si et sta sts=4 fenc=utf8 :

http://dive4elements.wald.intevation.org