Mercurial > dive4elements > gnv-client
annotate gnv-artifacts/src/main/java/de/intevation/gnv/state/profile/horizontal/HorizontalProfileMeshCrossOutputState.java @ 1117:dec4257ad570
Changed imports to fit new positions of XMLUtils and Config
gnv-artifacts/trunk@1478 c6561f87-3c4e-4783-a992-168aeb5c3f6f
author | Sascha L. Teichmann <sascha.teichmann@intevation.de> |
---|---|
date | Tue, 15 Mar 2011 16:13:39 +0000 |
parents | f953c9a559d8 |
children |
rev | line source |
---|---|
1115
f953c9a559d8
Added license file and license headers.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1060
diff
changeset
|
1 /* |
f953c9a559d8
Added license file and license headers.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1060
diff
changeset
|
2 * Copyright (c) 2010 by Intevation GmbH |
f953c9a559d8
Added license file and license headers.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1060
diff
changeset
|
3 * |
f953c9a559d8
Added license file and license headers.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1060
diff
changeset
|
4 * This program is free software under the LGPL (>=v2.1) |
f953c9a559d8
Added license file and license headers.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1060
diff
changeset
|
5 * Read the file LGPL.txt coming with the software for details |
f953c9a559d8
Added license file and license headers.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1060
diff
changeset
|
6 * or visit http://www.gnu.org/licenses/ if it does not exist. |
f953c9a559d8
Added license file and license headers.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1060
diff
changeset
|
7 */ |
f953c9a559d8
Added license file and license headers.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1060
diff
changeset
|
8 |
352
24c21a720aa5
Added Support for "horizontale Schnittprofile"
Tim Englich <tim.englich@intevation.de>
parents:
diff
changeset
|
9 package de.intevation.gnv.state.profile.horizontal; |
24c21a720aa5
Added Support for "horizontale Schnittprofile"
Tim Englich <tim.englich@intevation.de>
parents:
diff
changeset
|
10 |
1034
50a5ce7a47b7
Implemented an odv exporter for product type 'Horizontales Schnittprofil' (issue260).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1030
diff
changeset
|
11 import au.com.bytecode.opencsv.CSVWriter; |
50a5ce7a47b7
Implemented an odv exporter for product type 'Horizontales Schnittprofil' (issue260).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1030
diff
changeset
|
12 |
519
4e347624ee7c
Last part to fix gnv/issue153. Now 'Profilschnitte', 'Horizontalschnitte' and 'horizontale Schnittprofile'
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
443
diff
changeset
|
13 import com.vividsolutions.jts.geom.Coordinate; |
352
24c21a720aa5
Added Support for "horizontale Schnittprofile"
Tim Englich <tim.englich@intevation.de>
parents:
diff
changeset
|
14 |
1117
dec4257ad570
Changed imports to fit new positions of XMLUtils and Config
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
1115
diff
changeset
|
15 import de.intevation.artifacts.common.utils.Config; |
357
25e4724aa504
Fill (i, j)-gaps when building index buffer.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
352
diff
changeset
|
16 |
519
4e347624ee7c
Last part to fix gnv/issue153. Now 'Profilschnitte', 'Horizontalschnitte' and 'horizontale Schnittprofile'
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
443
diff
changeset
|
17 import de.intevation.artifacts.CallContext; |
4e347624ee7c
Last part to fix gnv/issue153. Now 'Profilschnitte', 'Horizontalschnitte' and 'horizontale Schnittprofile'
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
443
diff
changeset
|
18 |
352
24c21a720aa5
Added Support for "horizontale Schnittprofile"
Tim Englich <tim.englich@intevation.de>
parents:
diff
changeset
|
19 import de.intevation.gnv.artifacts.cache.CacheFactory; |
357
25e4724aa504
Fill (i, j)-gaps when building index buffer.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
352
diff
changeset
|
20 |
519
4e347624ee7c
Last part to fix gnv/issue153. Now 'Profilschnitte', 'Horizontalschnitte' and 'horizontale Schnittprofile'
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
443
diff
changeset
|
21 import de.intevation.gnv.artifacts.context.GNVArtifactContext; |
4e347624ee7c
Last part to fix gnv/issue153. Now 'Profilschnitte', 'Horizontalschnitte' and 'horizontale Schnittprofile'
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
443
diff
changeset
|
22 |
4e347624ee7c
Last part to fix gnv/issue153. Now 'Profilschnitte', 'Horizontalschnitte' and 'horizontale Schnittprofile'
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
443
diff
changeset
|
23 import de.intevation.gnv.chart.Chart; |
4e347624ee7c
Last part to fix gnv/issue153. Now 'Profilschnitte', 'Horizontalschnitte' and 'horizontale Schnittprofile'
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
443
diff
changeset
|
24 import de.intevation.gnv.chart.ChartLabels; |
4e347624ee7c
Last part to fix gnv/issue153. Now 'Profilschnitte', 'Horizontalschnitte' and 'horizontale Schnittprofile'
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
443
diff
changeset
|
25 import de.intevation.gnv.chart.HorizontalCrossProfileChart; |
4e347624ee7c
Last part to fix gnv/issue153. Now 'Profilschnitte', 'Horizontalschnitte' and 'horizontale Schnittprofile'
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
443
diff
changeset
|
26 |
1034
50a5ce7a47b7
Implemented an odv exporter for product type 'Horizontales Schnittprofil' (issue260).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1030
diff
changeset
|
27 import de.intevation.gnv.exports.DefaultProfile; |
50a5ce7a47b7
Implemented an odv exporter for product type 'Horizontales Schnittprofil' (issue260).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1030
diff
changeset
|
28 import de.intevation.gnv.exports.Export; |
50a5ce7a47b7
Implemented an odv exporter for product type 'Horizontales Schnittprofil' (issue260).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1030
diff
changeset
|
29 import de.intevation.gnv.exports.StringArrayKey; |
50a5ce7a47b7
Implemented an odv exporter for product type 'Horizontales Schnittprofil' (issue260).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1030
diff
changeset
|
30 |
423
2402173a1490
Moved some methods back to old place.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
420
diff
changeset
|
31 import de.intevation.gnv.geobackend.base.DefaultResult; |
2402173a1490
Moved some methods back to old place.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
420
diff
changeset
|
32 import de.intevation.gnv.geobackend.base.DefaultResultDescriptor; |
2402173a1490
Moved some methods back to old place.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
420
diff
changeset
|
33 import de.intevation.gnv.geobackend.base.Result; |
2402173a1490
Moved some methods back to old place.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
420
diff
changeset
|
34 import de.intevation.gnv.geobackend.base.ResultDescriptor; |
519
4e347624ee7c
Last part to fix gnv/issue153. Now 'Profilschnitte', 'Horizontalschnitte' and 'horizontale Schnittprofile'
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
443
diff
changeset
|
35 |
423
2402173a1490
Moved some methods back to old place.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
420
diff
changeset
|
36 import de.intevation.gnv.geobackend.base.query.QueryExecutor; |
2402173a1490
Moved some methods back to old place.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
420
diff
changeset
|
37 import de.intevation.gnv.geobackend.base.query.QueryExecutorFactory; |
519
4e347624ee7c
Last part to fix gnv/issue153. Now 'Profilschnitte', 'Horizontalschnitte' and 'horizontale Schnittprofile'
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
443
diff
changeset
|
38 |
423
2402173a1490
Moved some methods back to old place.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
420
diff
changeset
|
39 import de.intevation.gnv.geobackend.base.query.exception.QueryException; |
519
4e347624ee7c
Last part to fix gnv/issue153. Now 'Profilschnitte', 'Horizontalschnitte' and 'horizontale Schnittprofile'
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
443
diff
changeset
|
40 |
423
2402173a1490
Moved some methods back to old place.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
420
diff
changeset
|
41 import de.intevation.gnv.math.Interpolation2D; |
2402173a1490
Moved some methods back to old place.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
420
diff
changeset
|
42 import de.intevation.gnv.math.LinearMetrics; |
2402173a1490
Moved some methods back to old place.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
420
diff
changeset
|
43 import de.intevation.gnv.math.Point2d; |
365
f66088a43ecc
Added horizontal crossprofile charts to chart pallet. Fixed some bugs before interpolation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
362
diff
changeset
|
44 |
440
eb2ac62e853a
Cleaned up messy code a bit in "Horizontales Schnittprofil" and "Profilschnitt".
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
439
diff
changeset
|
45 import de.intevation.gnv.state.InputData; |
1034
50a5ce7a47b7
Implemented an odv exporter for product type 'Horizontales Schnittprofil' (issue260).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1030
diff
changeset
|
46 import de.intevation.gnv.state.describedata.KeyValueDescibeData; |
50a5ce7a47b7
Implemented an odv exporter for product type 'Horizontales Schnittprofil' (issue260).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1030
diff
changeset
|
47 import de.intevation.gnv.state.exception.StateException; |
440
eb2ac62e853a
Cleaned up messy code a bit in "Horizontales Schnittprofil" and "Profilschnitt".
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
439
diff
changeset
|
48 |
423
2402173a1490
Moved some methods back to old place.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
420
diff
changeset
|
49 import de.intevation.gnv.utils.DistanceCalculator; |
519
4e347624ee7c
Last part to fix gnv/issue153. Now 'Profilschnitte', 'Horizontalschnitte' and 'horizontale Schnittprofile'
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
443
diff
changeset
|
50 import de.intevation.gnv.utils.StringUtils; |
420
c6a287398379
Outsourcing of some methods for preparing results for chart creation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
418
diff
changeset
|
51 import de.intevation.gnv.utils.WKTUtils; |
439
8975de9d7483
Loop through configuration to chart generation.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
429
diff
changeset
|
52 |
1034
50a5ce7a47b7
Implemented an odv exporter for product type 'Horizontales Schnittprofil' (issue260).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1030
diff
changeset
|
53 import java.io.IOException; |
50a5ce7a47b7
Implemented an odv exporter for product type 'Horizontales Schnittprofil' (issue260).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1030
diff
changeset
|
54 import java.io.OutputStream; |
50a5ce7a47b7
Implemented an odv exporter for product type 'Horizontales Schnittprofil' (issue260).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1030
diff
changeset
|
55 import java.io.OutputStreamWriter; |
50a5ce7a47b7
Implemented an odv exporter for product type 'Horizontales Schnittprofil' (issue260).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1030
diff
changeset
|
56 import java.io.UnsupportedEncodingException; |
50a5ce7a47b7
Implemented an odv exporter for product type 'Horizontales Schnittprofil' (issue260).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1030
diff
changeset
|
57 |
50a5ce7a47b7
Implemented an odv exporter for product type 'Horizontales Schnittprofil' (issue260).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1030
diff
changeset
|
58 import java.text.DateFormat; |
50a5ce7a47b7
Implemented an odv exporter for product type 'Horizontales Schnittprofil' (issue260).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1030
diff
changeset
|
59 import java.text.ParseException; |
50a5ce7a47b7
Implemented an odv exporter for product type 'Horizontales Schnittprofil' (issue260).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1030
diff
changeset
|
60 import java.text.SimpleDateFormat; |
50a5ce7a47b7
Implemented an odv exporter for product type 'Horizontales Schnittprofil' (issue260).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1030
diff
changeset
|
61 |
519
4e347624ee7c
Last part to fix gnv/issue153. Now 'Profilschnitte', 'Horizontalschnitte' and 'horizontale Schnittprofile'
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
443
diff
changeset
|
62 import java.util.ArrayList; |
4e347624ee7c
Last part to fix gnv/issue153. Now 'Profilschnitte', 'Horizontalschnitte' and 'horizontale Schnittprofile'
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
443
diff
changeset
|
63 import java.util.Arrays; |
4e347624ee7c
Last part to fix gnv/issue153. Now 'Profilschnitte', 'Horizontalschnitte' and 'horizontale Schnittprofile'
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
443
diff
changeset
|
64 import java.util.Collection; |
1034
50a5ce7a47b7
Implemented an odv exporter for product type 'Horizontales Schnittprofil' (issue260).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1030
diff
changeset
|
65 import java.util.Date; |
50a5ce7a47b7
Implemented an odv exporter for product type 'Horizontales Schnittprofil' (issue260).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1030
diff
changeset
|
66 import java.util.HashMap; |
50a5ce7a47b7
Implemented an odv exporter for product type 'Horizontales Schnittprofil' (issue260).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1030
diff
changeset
|
67 import java.util.Iterator; |
519
4e347624ee7c
Last part to fix gnv/issue153. Now 'Profilschnitte', 'Horizontalschnitte' and 'horizontale Schnittprofile'
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
443
diff
changeset
|
68 import java.util.List; |
4e347624ee7c
Last part to fix gnv/issue153. Now 'Profilschnitte', 'Horizontalschnitte' and 'horizontale Schnittprofile'
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
443
diff
changeset
|
69 import java.util.Locale; |
1034
50a5ce7a47b7
Implemented an odv exporter for product type 'Horizontales Schnittprofil' (issue260).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1030
diff
changeset
|
70 import java.util.Map; |
443
da21c256a0ba
"horizontale Schnittprofile" are now configured via conf.xml
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
440
diff
changeset
|
71 |
519
4e347624ee7c
Last part to fix gnv/issue153. Now 'Profilschnitte', 'Horizontalschnitte' and 'horizontale Schnittprofile'
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
443
diff
changeset
|
72 import org.apache.log4j.Logger; |
357
25e4724aa504
Fill (i, j)-gaps when building index buffer.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
352
diff
changeset
|
73 |
365
f66088a43ecc
Added horizontal crossprofile charts to chart pallet. Fixed some bugs before interpolation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
362
diff
changeset
|
74 import org.jfree.chart.ChartTheme; |
f66088a43ecc
Added horizontal crossprofile charts to chart pallet. Fixed some bugs before interpolation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
362
diff
changeset
|
75 |
519
4e347624ee7c
Last part to fix gnv/issue153. Now 'Profilschnitte', 'Horizontalschnitte' and 'horizontale Schnittprofile'
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
443
diff
changeset
|
76 import org.w3c.dom.Node; |
423
2402173a1490
Moved some methods back to old place.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
420
diff
changeset
|
77 |
352
24c21a720aa5
Added Support for "horizontale Schnittprofile"
Tim Englich <tim.englich@intevation.de>
parents:
diff
changeset
|
78 /** |
811
df6d980c5418
Added more Javadoc in state.profile.horizontal package.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
780
diff
changeset
|
79 * This <code>OutputState</code> is used for 'Horizontalschnitt' products. |
835
2423cefe7d39
Removed trailing whitespace.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
811
diff
changeset
|
80 * |
780
c4156275c1e1
Bring @author javadoc tags in form '@author <a href="john.doe@example.com">John Doe</a>'
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
778
diff
changeset
|
81 * @author <a href="mailto:tim.englich@intevation.de">Tim Englich</a> |
c4156275c1e1
Bring @author javadoc tags in form '@author <a href="john.doe@example.com">John Doe</a>'
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
778
diff
changeset
|
82 * @author <a href="mailto:iweinzierl@intevation.de">Ingo Weinzierl</a> |
c4156275c1e1
Bring @author javadoc tags in form '@author <a href="john.doe@example.com">John Doe</a>'
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
778
diff
changeset
|
83 * @author <a href="mailto:sascha.teichmann@intevation.de">Sascha L. Teichmann</a> |
352
24c21a720aa5
Added Support for "horizontale Schnittprofile"
Tim Englich <tim.englich@intevation.de>
parents:
diff
changeset
|
84 */ |
528
44415ae01ddb
Fixed issue gnv/issue159
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
519
diff
changeset
|
85 public class HorizontalProfileMeshCrossOutputState |
856
c9996913ff4b
Adjusted the subtitle creation for charts in 'Horizontalen Schnittprofilen' (see issue138).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
836
diff
changeset
|
86 extends HorizontalProfileMeshOutputState |
528
44415ae01ddb
Fixed issue gnv/issue159
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
519
diff
changeset
|
87 { |
352
24c21a720aa5
Added Support for "horizontale Schnittprofile"
Tim Englich <tim.englich@intevation.de>
parents:
diff
changeset
|
88 |
1034
50a5ce7a47b7
Implemented an odv exporter for product type 'Horizontales Schnittprofil' (issue260).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1030
diff
changeset
|
89 /** |
50a5ce7a47b7
Implemented an odv exporter for product type 'Horizontales Schnittprofil' (issue260).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1030
diff
changeset
|
90 * Constant field which defines the source format of a given datetime. |
50a5ce7a47b7
Implemented an odv exporter for product type 'Horizontales Schnittprofil' (issue260).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1030
diff
changeset
|
91 */ |
50a5ce7a47b7
Implemented an odv exporter for product type 'Horizontales Schnittprofil' (issue260).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1030
diff
changeset
|
92 public static final String SRC_FORMAT = "yyyy.MM.dd HH:mm:ss"; |
50a5ce7a47b7
Implemented an odv exporter for product type 'Horizontales Schnittprofil' (issue260).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1030
diff
changeset
|
93 |
50a5ce7a47b7
Implemented an odv exporter for product type 'Horizontales Schnittprofil' (issue260).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1030
diff
changeset
|
94 /** |
50a5ce7a47b7
Implemented an odv exporter for product type 'Horizontales Schnittprofil' (issue260).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1030
diff
changeset
|
95 * Constant field which defines the target format of a given datetime. |
50a5ce7a47b7
Implemented an odv exporter for product type 'Horizontales Schnittprofil' (issue260).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1030
diff
changeset
|
96 */ |
50a5ce7a47b7
Implemented an odv exporter for product type 'Horizontales Schnittprofil' (issue260).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1030
diff
changeset
|
97 public static final String DEST_FORMAT = "yyyy-MM-dd HH:mm"; |
50a5ce7a47b7
Implemented an odv exporter for product type 'Horizontales Schnittprofil' (issue260).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1030
diff
changeset
|
98 |
50a5ce7a47b7
Implemented an odv exporter for product type 'Horizontales Schnittprofil' (issue260).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1030
diff
changeset
|
99 /** |
50a5ce7a47b7
Implemented an odv exporter for product type 'Horizontales Schnittprofil' (issue260).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1030
diff
changeset
|
100 * Source format. |
50a5ce7a47b7
Implemented an odv exporter for product type 'Horizontales Schnittprofil' (issue260).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1030
diff
changeset
|
101 */ |
50a5ce7a47b7
Implemented an odv exporter for product type 'Horizontales Schnittprofil' (issue260).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1030
diff
changeset
|
102 public static DateFormat srcFormat = new SimpleDateFormat(SRC_FORMAT); |
50a5ce7a47b7
Implemented an odv exporter for product type 'Horizontales Schnittprofil' (issue260).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1030
diff
changeset
|
103 |
50a5ce7a47b7
Implemented an odv exporter for product type 'Horizontales Schnittprofil' (issue260).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1030
diff
changeset
|
104 /** |
50a5ce7a47b7
Implemented an odv exporter for product type 'Horizontales Schnittprofil' (issue260).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1030
diff
changeset
|
105 * Target format. |
50a5ce7a47b7
Implemented an odv exporter for product type 'Horizontales Schnittprofil' (issue260).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1030
diff
changeset
|
106 */ |
50a5ce7a47b7
Implemented an odv exporter for product type 'Horizontales Schnittprofil' (issue260).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1030
diff
changeset
|
107 public static DateFormat destFormat = new SimpleDateFormat(DEST_FORMAT); |
50a5ce7a47b7
Implemented an odv exporter for product type 'Horizontales Schnittprofil' (issue260).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1030
diff
changeset
|
108 |
50a5ce7a47b7
Implemented an odv exporter for product type 'Horizontales Schnittprofil' (issue260).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1030
diff
changeset
|
109 |
50a5ce7a47b7
Implemented an odv exporter for product type 'Horizontales Schnittprofil' (issue260).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1030
diff
changeset
|
110 /** |
50a5ce7a47b7
Implemented an odv exporter for product type 'Horizontales Schnittprofil' (issue260).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1030
diff
changeset
|
111 * This class represents an exporter used for exporting 'Horizontale |
50a5ce7a47b7
Implemented an odv exporter for product type 'Horizontales Schnittprofil' (issue260).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1030
diff
changeset
|
112 * Schnittprofile' as odv. |
50a5ce7a47b7
Implemented an odv exporter for product type 'Horizontales Schnittprofil' (issue260).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1030
diff
changeset
|
113 * |
50a5ce7a47b7
Implemented an odv exporter for product type 'Horizontales Schnittprofil' (issue260).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1030
diff
changeset
|
114 * @author <a href="mailto:ingo.weinzierl@intevation.de">Ingo Weinzierl</a> |
50a5ce7a47b7
Implemented an odv exporter for product type 'Horizontales Schnittprofil' (issue260).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1030
diff
changeset
|
115 */ |
50a5ce7a47b7
Implemented an odv exporter for product type 'Horizontales Schnittprofil' (issue260).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1030
diff
changeset
|
116 public class HorizontalProfileMeshCrossODVExporter |
50a5ce7a47b7
Implemented an odv exporter for product type 'Horizontales Schnittprofil' (issue260).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1030
diff
changeset
|
117 implements Export |
50a5ce7a47b7
Implemented an odv exporter for product type 'Horizontales Schnittprofil' (issue260).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1030
diff
changeset
|
118 { |
50a5ce7a47b7
Implemented an odv exporter for product type 'Horizontales Schnittprofil' (issue260).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1030
diff
changeset
|
119 private ResultDescriptor rd; |
50a5ce7a47b7
Implemented an odv exporter for product type 'Horizontales Schnittprofil' (issue260).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1030
diff
changeset
|
120 |
50a5ce7a47b7
Implemented an odv exporter for product type 'Horizontales Schnittprofil' (issue260).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1030
diff
changeset
|
121 private Collection parameters; |
50a5ce7a47b7
Implemented an odv exporter for product type 'Horizontales Schnittprofil' (issue260).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1030
diff
changeset
|
122 |
50a5ce7a47b7
Implemented an odv exporter for product type 'Horizontales Schnittprofil' (issue260).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1030
diff
changeset
|
123 private int dateIdx; |
50a5ce7a47b7
Implemented an odv exporter for product type 'Horizontales Schnittprofil' (issue260).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1030
diff
changeset
|
124 private int paramIdx; |
50a5ce7a47b7
Implemented an odv exporter for product type 'Horizontales Schnittprofil' (issue260).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1030
diff
changeset
|
125 private int depthIdx; |
50a5ce7a47b7
Implemented an odv exporter for product type 'Horizontales Schnittprofil' (issue260).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1030
diff
changeset
|
126 private int valueIdx; |
50a5ce7a47b7
Implemented an odv exporter for product type 'Horizontales Schnittprofil' (issue260).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1030
diff
changeset
|
127 private int shpIdx; |
50a5ce7a47b7
Implemented an odv exporter for product type 'Horizontales Schnittprofil' (issue260).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1030
diff
changeset
|
128 |
50a5ce7a47b7
Implemented an odv exporter for product type 'Horizontales Schnittprofil' (issue260).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1030
diff
changeset
|
129 public HorizontalProfileMeshCrossODVExporter(Collection parameters) { |
50a5ce7a47b7
Implemented an odv exporter for product type 'Horizontales Schnittprofil' (issue260).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1030
diff
changeset
|
130 this.parameters = parameters; |
50a5ce7a47b7
Implemented an odv exporter for product type 'Horizontales Schnittprofil' (issue260).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1030
diff
changeset
|
131 } |
50a5ce7a47b7
Implemented an odv exporter for product type 'Horizontales Schnittprofil' (issue260).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1030
diff
changeset
|
132 |
50a5ce7a47b7
Implemented an odv exporter for product type 'Horizontales Schnittprofil' (issue260).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1030
diff
changeset
|
133 public void create( |
50a5ce7a47b7
Implemented an odv exporter for product type 'Horizontales Schnittprofil' (issue260).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1030
diff
changeset
|
134 Profile profile, |
50a5ce7a47b7
Implemented an odv exporter for product type 'Horizontales Schnittprofil' (issue260).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1030
diff
changeset
|
135 OutputStream outputStream, |
50a5ce7a47b7
Implemented an odv exporter for product type 'Horizontales Schnittprofil' (issue260).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1030
diff
changeset
|
136 Collection result) |
50a5ce7a47b7
Implemented an odv exporter for product type 'Horizontales Schnittprofil' (issue260).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1030
diff
changeset
|
137 throws |
50a5ce7a47b7
Implemented an odv exporter for product type 'Horizontales Schnittprofil' (issue260).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1030
diff
changeset
|
138 IOException, |
50a5ce7a47b7
Implemented an odv exporter for product type 'Horizontales Schnittprofil' (issue260).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1030
diff
changeset
|
139 UnsupportedEncodingException, |
50a5ce7a47b7
Implemented an odv exporter for product type 'Horizontales Schnittprofil' (issue260).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1030
diff
changeset
|
140 StateException |
50a5ce7a47b7
Implemented an odv exporter for product type 'Horizontales Schnittprofil' (issue260).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1030
diff
changeset
|
141 { |
50a5ce7a47b7
Implemented an odv exporter for product type 'Horizontales Schnittprofil' (issue260).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1030
diff
changeset
|
142 CSVWriter writer = new CSVWriter( |
50a5ce7a47b7
Implemented an odv exporter for product type 'Horizontales Schnittprofil' (issue260).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1030
diff
changeset
|
143 new OutputStreamWriter(outputStream, profile.getEncoding()), |
50a5ce7a47b7
Implemented an odv exporter for product type 'Horizontales Schnittprofil' (issue260).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1030
diff
changeset
|
144 profile.getSeparator(), |
50a5ce7a47b7
Implemented an odv exporter for product type 'Horizontales Schnittprofil' (issue260).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1030
diff
changeset
|
145 profile.getQuoteCharacter(), |
50a5ce7a47b7
Implemented an odv exporter for product type 'Horizontales Schnittprofil' (issue260).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1030
diff
changeset
|
146 profile.getEscapeCharacter()); |
50a5ce7a47b7
Implemented an odv exporter for product type 'Horizontales Schnittprofil' (issue260).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1030
diff
changeset
|
147 |
50a5ce7a47b7
Implemented an odv exporter for product type 'Horizontales Schnittprofil' (issue260).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1030
diff
changeset
|
148 writeData(profile, writer, result); |
50a5ce7a47b7
Implemented an odv exporter for product type 'Horizontales Schnittprofil' (issue260).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1030
diff
changeset
|
149 |
50a5ce7a47b7
Implemented an odv exporter for product type 'Horizontales Schnittprofil' (issue260).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1030
diff
changeset
|
150 writer.close(); |
50a5ce7a47b7
Implemented an odv exporter for product type 'Horizontales Schnittprofil' (issue260).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1030
diff
changeset
|
151 } |
50a5ce7a47b7
Implemented an odv exporter for product type 'Horizontales Schnittprofil' (issue260).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1030
diff
changeset
|
152 |
50a5ce7a47b7
Implemented an odv exporter for product type 'Horizontales Schnittprofil' (issue260).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1030
diff
changeset
|
153 protected void writeData( |
50a5ce7a47b7
Implemented an odv exporter for product type 'Horizontales Schnittprofil' (issue260).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1030
diff
changeset
|
154 Profile profile, |
50a5ce7a47b7
Implemented an odv exporter for product type 'Horizontales Schnittprofil' (issue260).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1030
diff
changeset
|
155 CSVWriter writer, |
50a5ce7a47b7
Implemented an odv exporter for product type 'Horizontales Schnittprofil' (issue260).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1030
diff
changeset
|
156 Collection<Result> results) |
50a5ce7a47b7
Implemented an odv exporter for product type 'Horizontales Schnittprofil' (issue260).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1030
diff
changeset
|
157 { |
50a5ce7a47b7
Implemented an odv exporter for product type 'Horizontales Schnittprofil' (issue260).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1030
diff
changeset
|
158 log.debug("Put " + results.size() + " elements into odv export."); |
50a5ce7a47b7
Implemented an odv exporter for product type 'Horizontales Schnittprofil' (issue260).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1030
diff
changeset
|
159 |
50a5ce7a47b7
Implemented an odv exporter for product type 'Horizontales Schnittprofil' (issue260).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1030
diff
changeset
|
160 // just write header into odv export |
50a5ce7a47b7
Implemented an odv exporter for product type 'Horizontales Schnittprofil' (issue260).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1030
diff
changeset
|
161 String[] header = profile.getHeader(); |
50a5ce7a47b7
Implemented an odv exporter for product type 'Horizontales Schnittprofil' (issue260).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1030
diff
changeset
|
162 ArrayList<String> headerList = new ArrayList<String>(); |
50a5ce7a47b7
Implemented an odv exporter for product type 'Horizontales Schnittprofil' (issue260).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1030
diff
changeset
|
163 for (int i= 0; i < header.length; i++){ |
50a5ce7a47b7
Implemented an odv exporter for product type 'Horizontales Schnittprofil' (issue260).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1030
diff
changeset
|
164 headerList.add(header[i]); |
50a5ce7a47b7
Implemented an odv exporter for product type 'Horizontales Schnittprofil' (issue260).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1030
diff
changeset
|
165 } |
50a5ce7a47b7
Implemented an odv exporter for product type 'Horizontales Schnittprofil' (issue260).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1030
diff
changeset
|
166 |
50a5ce7a47b7
Implemented an odv exporter for product type 'Horizontales Schnittprofil' (issue260).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1030
diff
changeset
|
167 ArrayList<String> paramids = new ArrayList<String>(); |
50a5ce7a47b7
Implemented an odv exporter for product type 'Horizontales Schnittprofil' (issue260).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1030
diff
changeset
|
168 |
50a5ce7a47b7
Implemented an odv exporter for product type 'Horizontales Schnittprofil' (issue260).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1030
diff
changeset
|
169 Map<StringArrayKey, Map<String,String>> aggregatedRows = |
50a5ce7a47b7
Implemented an odv exporter for product type 'Horizontales Schnittprofil' (issue260).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1030
diff
changeset
|
170 new HashMap<StringArrayKey, Map<String,String>>(); |
50a5ce7a47b7
Implemented an odv exporter for product type 'Horizontales Schnittprofil' (issue260).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1030
diff
changeset
|
171 |
50a5ce7a47b7
Implemented an odv exporter for product type 'Horizontales Schnittprofil' (issue260).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1030
diff
changeset
|
172 for (Result res: results) { |
50a5ce7a47b7
Implemented an odv exporter for product type 'Horizontales Schnittprofil' (issue260).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1030
diff
changeset
|
173 if (rd == null) { |
50a5ce7a47b7
Implemented an odv exporter for product type 'Horizontales Schnittprofil' (issue260).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1030
diff
changeset
|
174 rd = res.getResultDescriptor(); |
50a5ce7a47b7
Implemented an odv exporter for product type 'Horizontales Schnittprofil' (issue260).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1030
diff
changeset
|
175 paramIdx = rd.getColumnIndex("GROUP1"); |
50a5ce7a47b7
Implemented an odv exporter for product type 'Horizontales Schnittprofil' (issue260).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1030
diff
changeset
|
176 depthIdx = rd.getColumnIndex("GROUP2"); |
50a5ce7a47b7
Implemented an odv exporter for product type 'Horizontales Schnittprofil' (issue260).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1030
diff
changeset
|
177 dateIdx = rd.getColumnIndex("GROUP3"); |
50a5ce7a47b7
Implemented an odv exporter for product type 'Horizontales Schnittprofil' (issue260).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1030
diff
changeset
|
178 shpIdx = rd.getColumnIndex("SHAPE"); |
50a5ce7a47b7
Implemented an odv exporter for product type 'Horizontales Schnittprofil' (issue260).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1030
diff
changeset
|
179 valueIdx = rd.getColumnIndex("YORDINATE"); |
50a5ce7a47b7
Implemented an odv exporter for product type 'Horizontales Schnittprofil' (issue260).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1030
diff
changeset
|
180 } |
50a5ce7a47b7
Implemented an odv exporter for product type 'Horizontales Schnittprofil' (issue260).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1030
diff
changeset
|
181 |
50a5ce7a47b7
Implemented an odv exporter for product type 'Horizontales Schnittprofil' (issue260).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1030
diff
changeset
|
182 String[] row = generateRow(res); |
50a5ce7a47b7
Implemented an odv exporter for product type 'Horizontales Schnittprofil' (issue260).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1030
diff
changeset
|
183 StringArrayKey key = new StringArrayKey(row); |
50a5ce7a47b7
Implemented an odv exporter for product type 'Horizontales Schnittprofil' (issue260).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1030
diff
changeset
|
184 String parameterValue = res.getString(valueIdx); |
50a5ce7a47b7
Implemented an odv exporter for product type 'Horizontales Schnittprofil' (issue260).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1030
diff
changeset
|
185 String parameterID = res.getString(paramIdx); |
50a5ce7a47b7
Implemented an odv exporter for product type 'Horizontales Schnittprofil' (issue260).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1030
diff
changeset
|
186 |
50a5ce7a47b7
Implemented an odv exporter for product type 'Horizontales Schnittprofil' (issue260).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1030
diff
changeset
|
187 if (!paramids.contains(parameterID)) { |
50a5ce7a47b7
Implemented an odv exporter for product type 'Horizontales Schnittprofil' (issue260).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1030
diff
changeset
|
188 paramids.add(parameterID); |
50a5ce7a47b7
Implemented an odv exporter for product type 'Horizontales Schnittprofil' (issue260).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1030
diff
changeset
|
189 headerList.add(findParamTitle(parameters, parameterID)); |
50a5ce7a47b7
Implemented an odv exporter for product type 'Horizontales Schnittprofil' (issue260).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1030
diff
changeset
|
190 headerList.add("QF"); |
50a5ce7a47b7
Implemented an odv exporter for product type 'Horizontales Schnittprofil' (issue260).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1030
diff
changeset
|
191 } |
50a5ce7a47b7
Implemented an odv exporter for product type 'Horizontales Schnittprofil' (issue260).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1030
diff
changeset
|
192 |
50a5ce7a47b7
Implemented an odv exporter for product type 'Horizontales Schnittprofil' (issue260).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1030
diff
changeset
|
193 Map<String,String> aggregatedRow = aggregatedRows.get(key); |
50a5ce7a47b7
Implemented an odv exporter for product type 'Horizontales Schnittprofil' (issue260).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1030
diff
changeset
|
194 if (aggregatedRow != null) { |
50a5ce7a47b7
Implemented an odv exporter for product type 'Horizontales Schnittprofil' (issue260).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1030
diff
changeset
|
195 aggregatedRow.put(parameterID, parameterValue); |
50a5ce7a47b7
Implemented an odv exporter for product type 'Horizontales Schnittprofil' (issue260).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1030
diff
changeset
|
196 } |
50a5ce7a47b7
Implemented an odv exporter for product type 'Horizontales Schnittprofil' (issue260).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1030
diff
changeset
|
197 else{ |
50a5ce7a47b7
Implemented an odv exporter for product type 'Horizontales Schnittprofil' (issue260).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1030
diff
changeset
|
198 Map<String,String> params = new HashMap<String, String>(); |
50a5ce7a47b7
Implemented an odv exporter for product type 'Horizontales Schnittprofil' (issue260).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1030
diff
changeset
|
199 params.put(parameterID, parameterValue); |
50a5ce7a47b7
Implemented an odv exporter for product type 'Horizontales Schnittprofil' (issue260).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1030
diff
changeset
|
200 aggregatedRows.put(key, params); |
50a5ce7a47b7
Implemented an odv exporter for product type 'Horizontales Schnittprofil' (issue260).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1030
diff
changeset
|
201 } |
50a5ce7a47b7
Implemented an odv exporter for product type 'Horizontales Schnittprofil' (issue260).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1030
diff
changeset
|
202 } |
50a5ce7a47b7
Implemented an odv exporter for product type 'Horizontales Schnittprofil' (issue260).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1030
diff
changeset
|
203 |
50a5ce7a47b7
Implemented an odv exporter for product type 'Horizontales Schnittprofil' (issue260).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1030
diff
changeset
|
204 if (header != null){ |
50a5ce7a47b7
Implemented an odv exporter for product type 'Horizontales Schnittprofil' (issue260).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1030
diff
changeset
|
205 writer.writeNext(headerList.toArray(header)); |
50a5ce7a47b7
Implemented an odv exporter for product type 'Horizontales Schnittprofil' (issue260).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1030
diff
changeset
|
206 } |
50a5ce7a47b7
Implemented an odv exporter for product type 'Horizontales Schnittprofil' (issue260).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1030
diff
changeset
|
207 |
50a5ce7a47b7
Implemented an odv exporter for product type 'Horizontales Schnittprofil' (issue260).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1030
diff
changeset
|
208 Iterator<StringArrayKey> rows = aggregatedRows.keySet().iterator(); |
50a5ce7a47b7
Implemented an odv exporter for product type 'Horizontales Schnittprofil' (issue260).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1030
diff
changeset
|
209 int idx = 1; |
50a5ce7a47b7
Implemented an odv exporter for product type 'Horizontales Schnittprofil' (issue260).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1030
diff
changeset
|
210 while (rows.hasNext()){ |
50a5ce7a47b7
Implemented an odv exporter for product type 'Horizontales Schnittprofil' (issue260).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1030
diff
changeset
|
211 StringArrayKey row = rows.next(); |
50a5ce7a47b7
Implemented an odv exporter for product type 'Horizontales Schnittprofil' (issue260).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1030
diff
changeset
|
212 Map<String,String> params = aggregatedRows.get(row); |
50a5ce7a47b7
Implemented an odv exporter for product type 'Horizontales Schnittprofil' (issue260).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1030
diff
changeset
|
213 |
50a5ce7a47b7
Implemented an odv exporter for product type 'Horizontales Schnittprofil' (issue260).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1030
diff
changeset
|
214 ArrayList<String> rowList = new ArrayList<String>(); |
50a5ce7a47b7
Implemented an odv exporter for product type 'Horizontales Schnittprofil' (issue260).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1030
diff
changeset
|
215 String[] rowArray = row.getValue(); |
50a5ce7a47b7
Implemented an odv exporter for product type 'Horizontales Schnittprofil' (issue260).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1030
diff
changeset
|
216 for (int i= 0; i < rowArray.length; i++){ |
50a5ce7a47b7
Implemented an odv exporter for product type 'Horizontales Schnittprofil' (issue260).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1030
diff
changeset
|
217 String value = rowArray[i]; |
50a5ce7a47b7
Implemented an odv exporter for product type 'Horizontales Schnittprofil' (issue260).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1030
diff
changeset
|
218 if (value != null && value.equals("GNV_STATION")) { |
50a5ce7a47b7
Implemented an odv exporter for product type 'Horizontales Schnittprofil' (issue260).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1030
diff
changeset
|
219 value += "_" + idx++; |
50a5ce7a47b7
Implemented an odv exporter for product type 'Horizontales Schnittprofil' (issue260).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1030
diff
changeset
|
220 } |
50a5ce7a47b7
Implemented an odv exporter for product type 'Horizontales Schnittprofil' (issue260).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1030
diff
changeset
|
221 rowList.add(value); |
50a5ce7a47b7
Implemented an odv exporter for product type 'Horizontales Schnittprofil' (issue260).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1030
diff
changeset
|
222 } |
50a5ce7a47b7
Implemented an odv exporter for product type 'Horizontales Schnittprofil' (issue260).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1030
diff
changeset
|
223 for (int i = 0; i < paramids.size();i++){ |
50a5ce7a47b7
Implemented an odv exporter for product type 'Horizontales Schnittprofil' (issue260).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1030
diff
changeset
|
224 String key = paramids.get(i); |
50a5ce7a47b7
Implemented an odv exporter for product type 'Horizontales Schnittprofil' (issue260).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1030
diff
changeset
|
225 String value = params.get(key); |
50a5ce7a47b7
Implemented an odv exporter for product type 'Horizontales Schnittprofil' (issue260).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1030
diff
changeset
|
226 if (value == null){ |
50a5ce7a47b7
Implemented an odv exporter for product type 'Horizontales Schnittprofil' (issue260).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1030
diff
changeset
|
227 value = ""; |
50a5ce7a47b7
Implemented an odv exporter for product type 'Horizontales Schnittprofil' (issue260).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1030
diff
changeset
|
228 } |
50a5ce7a47b7
Implemented an odv exporter for product type 'Horizontales Schnittprofil' (issue260).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1030
diff
changeset
|
229 rowList.add(value); |
50a5ce7a47b7
Implemented an odv exporter for product type 'Horizontales Schnittprofil' (issue260).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1030
diff
changeset
|
230 rowList.add("1"); |
50a5ce7a47b7
Implemented an odv exporter for product type 'Horizontales Schnittprofil' (issue260).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1030
diff
changeset
|
231 } |
50a5ce7a47b7
Implemented an odv exporter for product type 'Horizontales Schnittprofil' (issue260).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1030
diff
changeset
|
232 log.debug("Write new line into odv export."); |
50a5ce7a47b7
Implemented an odv exporter for product type 'Horizontales Schnittprofil' (issue260).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1030
diff
changeset
|
233 writer.writeNext(rowList.toArray(rowArray)); |
50a5ce7a47b7
Implemented an odv exporter for product type 'Horizontales Schnittprofil' (issue260).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1030
diff
changeset
|
234 } |
50a5ce7a47b7
Implemented an odv exporter for product type 'Horizontales Schnittprofil' (issue260).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1030
diff
changeset
|
235 } |
50a5ce7a47b7
Implemented an odv exporter for product type 'Horizontales Schnittprofil' (issue260).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1030
diff
changeset
|
236 |
50a5ce7a47b7
Implemented an odv exporter for product type 'Horizontales Schnittprofil' (issue260).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1030
diff
changeset
|
237 protected String[] generateRow(Result res) { |
50a5ce7a47b7
Implemented an odv exporter for product type 'Horizontales Schnittprofil' (issue260).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1030
diff
changeset
|
238 Date tmpDate = null; |
50a5ce7a47b7
Implemented an odv exporter for product type 'Horizontales Schnittprofil' (issue260).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1030
diff
changeset
|
239 String dateTmp = res.getString(dateIdx); |
50a5ce7a47b7
Implemented an odv exporter for product type 'Horizontales Schnittprofil' (issue260).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1030
diff
changeset
|
240 try { |
50a5ce7a47b7
Implemented an odv exporter for product type 'Horizontales Schnittprofil' (issue260).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1030
diff
changeset
|
241 tmpDate = srcFormat.parse(dateTmp); |
50a5ce7a47b7
Implemented an odv exporter for product type 'Horizontales Schnittprofil' (issue260).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1030
diff
changeset
|
242 } |
50a5ce7a47b7
Implemented an odv exporter for product type 'Horizontales Schnittprofil' (issue260).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1030
diff
changeset
|
243 catch (ParseException pe) { |
50a5ce7a47b7
Implemented an odv exporter for product type 'Horizontales Schnittprofil' (issue260).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1030
diff
changeset
|
244 log.warn(pe,pe); |
50a5ce7a47b7
Implemented an odv exporter for product type 'Horizontales Schnittprofil' (issue260).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1030
diff
changeset
|
245 } |
50a5ce7a47b7
Implemented an odv exporter for product type 'Horizontales Schnittprofil' (issue260).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1030
diff
changeset
|
246 |
50a5ce7a47b7
Implemented an odv exporter for product type 'Horizontales Schnittprofil' (issue260).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1030
diff
changeset
|
247 String shapeTmp = res.getString(shpIdx); |
50a5ce7a47b7
Implemented an odv exporter for product type 'Horizontales Schnittprofil' (issue260).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1030
diff
changeset
|
248 Coordinate p = WKTUtils.toCoordinate(shapeTmp); |
50a5ce7a47b7
Implemented an odv exporter for product type 'Horizontales Schnittprofil' (issue260).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1030
diff
changeset
|
249 |
50a5ce7a47b7
Implemented an odv exporter for product type 'Horizontales Schnittprofil' (issue260).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1030
diff
changeset
|
250 String cruise = "GNV_EXPORT"; |
50a5ce7a47b7
Implemented an odv exporter for product type 'Horizontales Schnittprofil' (issue260).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1030
diff
changeset
|
251 String station = "GNV_STATION"; |
50a5ce7a47b7
Implemented an odv exporter for product type 'Horizontales Schnittprofil' (issue260).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1030
diff
changeset
|
252 String type = "*"; |
50a5ce7a47b7
Implemented an odv exporter for product type 'Horizontales Schnittprofil' (issue260).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1030
diff
changeset
|
253 String date = tmpDate != null |
50a5ce7a47b7
Implemented an odv exporter for product type 'Horizontales Schnittprofil' (issue260).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1030
diff
changeset
|
254 ? destFormat.format(tmpDate) |
50a5ce7a47b7
Implemented an odv exporter for product type 'Horizontales Schnittprofil' (issue260).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1030
diff
changeset
|
255 : dateTmp; |
50a5ce7a47b7
Implemented an odv exporter for product type 'Horizontales Schnittprofil' (issue260).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1030
diff
changeset
|
256 String lon = "" + p.x; |
50a5ce7a47b7
Implemented an odv exporter for product type 'Horizontales Schnittprofil' (issue260).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1030
diff
changeset
|
257 String lat = "" + p.y; |
50a5ce7a47b7
Implemented an odv exporter for product type 'Horizontales Schnittprofil' (issue260).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1030
diff
changeset
|
258 String botDepth = "0"; |
50a5ce7a47b7
Implemented an odv exporter for product type 'Horizontales Schnittprofil' (issue260).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1030
diff
changeset
|
259 String depth = res.getString(depthIdx); |
50a5ce7a47b7
Implemented an odv exporter for product type 'Horizontales Schnittprofil' (issue260).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1030
diff
changeset
|
260 |
50a5ce7a47b7
Implemented an odv exporter for product type 'Horizontales Schnittprofil' (issue260).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1030
diff
changeset
|
261 return new String[] { |
50a5ce7a47b7
Implemented an odv exporter for product type 'Horizontales Schnittprofil' (issue260).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1030
diff
changeset
|
262 cruise, station, type, date, lon, lat, botDepth, depth |
50a5ce7a47b7
Implemented an odv exporter for product type 'Horizontales Schnittprofil' (issue260).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1030
diff
changeset
|
263 }; |
50a5ce7a47b7
Implemented an odv exporter for product type 'Horizontales Schnittprofil' (issue260).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1030
diff
changeset
|
264 } |
50a5ce7a47b7
Implemented an odv exporter for product type 'Horizontales Schnittprofil' (issue260).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1030
diff
changeset
|
265 |
50a5ce7a47b7
Implemented an odv exporter for product type 'Horizontales Schnittprofil' (issue260).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1030
diff
changeset
|
266 /** |
50a5ce7a47b7
Implemented an odv exporter for product type 'Horizontales Schnittprofil' (issue260).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1030
diff
changeset
|
267 * This method is used to search specific value coresponding to its key |
50a5ce7a47b7
Implemented an odv exporter for product type 'Horizontales Schnittprofil' (issue260).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1030
diff
changeset
|
268 * <code>id</code> and return its description. |
50a5ce7a47b7
Implemented an odv exporter for product type 'Horizontales Schnittprofil' (issue260).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1030
diff
changeset
|
269 * |
50a5ce7a47b7
Implemented an odv exporter for product type 'Horizontales Schnittprofil' (issue260).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1030
diff
changeset
|
270 * @param values Collection of parameters. |
50a5ce7a47b7
Implemented an odv exporter for product type 'Horizontales Schnittprofil' (issue260).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1030
diff
changeset
|
271 * @param id Key used to find the value. |
50a5ce7a47b7
Implemented an odv exporter for product type 'Horizontales Schnittprofil' (issue260).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1030
diff
changeset
|
272 * |
50a5ce7a47b7
Implemented an odv exporter for product type 'Horizontales Schnittprofil' (issue260).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1030
diff
changeset
|
273 * @return Description of searched value. |
50a5ce7a47b7
Implemented an odv exporter for product type 'Horizontales Schnittprofil' (issue260).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1030
diff
changeset
|
274 */ |
50a5ce7a47b7
Implemented an odv exporter for product type 'Horizontales Schnittprofil' (issue260).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1030
diff
changeset
|
275 protected String findParamTitle(Collection values, String id) { |
50a5ce7a47b7
Implemented an odv exporter for product type 'Horizontales Schnittprofil' (issue260).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1030
diff
changeset
|
276 if (values != null){ |
50a5ce7a47b7
Implemented an odv exporter for product type 'Horizontales Schnittprofil' (issue260).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1030
diff
changeset
|
277 Iterator it = values.iterator(); |
50a5ce7a47b7
Implemented an odv exporter for product type 'Horizontales Schnittprofil' (issue260).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1030
diff
changeset
|
278 while (it.hasNext()) { |
50a5ce7a47b7
Implemented an odv exporter for product type 'Horizontales Schnittprofil' (issue260).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1030
diff
changeset
|
279 KeyValueDescibeData data = (KeyValueDescibeData) it.next(); |
50a5ce7a47b7
Implemented an odv exporter for product type 'Horizontales Schnittprofil' (issue260).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1030
diff
changeset
|
280 |
50a5ce7a47b7
Implemented an odv exporter for product type 'Horizontales Schnittprofil' (issue260).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1030
diff
changeset
|
281 if (id.equals(data.getKey())) |
50a5ce7a47b7
Implemented an odv exporter for product type 'Horizontales Schnittprofil' (issue260).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1030
diff
changeset
|
282 return data.getValue(); |
50a5ce7a47b7
Implemented an odv exporter for product type 'Horizontales Schnittprofil' (issue260).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1030
diff
changeset
|
283 } |
50a5ce7a47b7
Implemented an odv exporter for product type 'Horizontales Schnittprofil' (issue260).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1030
diff
changeset
|
284 } |
50a5ce7a47b7
Implemented an odv exporter for product type 'Horizontales Schnittprofil' (issue260).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1030
diff
changeset
|
285 return ""; |
50a5ce7a47b7
Implemented an odv exporter for product type 'Horizontales Schnittprofil' (issue260).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1030
diff
changeset
|
286 } |
50a5ce7a47b7
Implemented an odv exporter for product type 'Horizontales Schnittprofil' (issue260).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1030
diff
changeset
|
287 } // HorizontalProfileMeshCrossODVExporter |
50a5ce7a47b7
Implemented an odv exporter for product type 'Horizontales Schnittprofil' (issue260).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1030
diff
changeset
|
288 |
50a5ce7a47b7
Implemented an odv exporter for product type 'Horizontales Schnittprofil' (issue260).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1030
diff
changeset
|
289 |
528
44415ae01ddb
Fixed issue gnv/issue159
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
519
diff
changeset
|
290 public static final boolean USE_INDEX_BUFFER = |
44415ae01ddb
Fixed issue gnv/issue159
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
519
diff
changeset
|
291 Boolean.getBoolean("gnv.horizontal.profile.mesh.cross.index.buffer"); |
44415ae01ddb
Fixed issue gnv/issue159
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
519
diff
changeset
|
292 |
352
24c21a720aa5
Added Support for "horizontale Schnittprofile"
Tim Englich <tim.englich@intevation.de>
parents:
diff
changeset
|
293 private static final long serialVersionUID = 2205958041745637263L; |
778
9a828e5a2390
Removed trailing whitespace
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
528
diff
changeset
|
294 |
352
24c21a720aa5
Added Support for "horizontale Schnittprofile"
Tim Englich <tim.englich@intevation.de>
parents:
diff
changeset
|
295 /** |
24c21a720aa5
Added Support for "horizontale Schnittprofile"
Tim Englich <tim.englich@intevation.de>
parents:
diff
changeset
|
296 * the logger, used to log exceptions and additonaly information |
24c21a720aa5
Added Support for "horizontale Schnittprofile"
Tim Englich <tim.englich@intevation.de>
parents:
diff
changeset
|
297 */ |
528
44415ae01ddb
Fixed issue gnv/issue159
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
519
diff
changeset
|
298 private static Logger log = Logger.getLogger( |
44415ae01ddb
Fixed issue gnv/issue159
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
519
diff
changeset
|
299 HorizontalProfileMeshCrossOutputState.class); |
352
24c21a720aa5
Added Support for "horizontale Schnittprofile"
Tim Englich <tim.englich@intevation.de>
parents:
diff
changeset
|
300 |
24c21a720aa5
Added Support for "horizontale Schnittprofile"
Tim Englich <tim.englich@intevation.de>
parents:
diff
changeset
|
301 private String ijkQueryID = null; |
778
9a828e5a2390
Removed trailing whitespace
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
528
diff
changeset
|
302 |
352
24c21a720aa5
Added Support for "horizontale Schnittprofile"
Tim Englich <tim.englich@intevation.de>
parents:
diff
changeset
|
303 /** |
24c21a720aa5
Added Support for "horizontale Schnittprofile"
Tim Englich <tim.englich@intevation.de>
parents:
diff
changeset
|
304 * Constructor |
24c21a720aa5
Added Support for "horizontale Schnittprofile"
Tim Englich <tim.englich@intevation.de>
parents:
diff
changeset
|
305 */ |
24c21a720aa5
Added Support for "horizontale Schnittprofile"
Tim Englich <tim.englich@intevation.de>
parents:
diff
changeset
|
306 public HorizontalProfileMeshCrossOutputState() { |
24c21a720aa5
Added Support for "horizontale Schnittprofile"
Tim Englich <tim.englich@intevation.de>
parents:
diff
changeset
|
307 super(); |
24c21a720aa5
Added Support for "horizontale Schnittprofile"
Tim Englich <tim.englich@intevation.de>
parents:
diff
changeset
|
308 } |
778
9a828e5a2390
Removed trailing whitespace
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
528
diff
changeset
|
309 |
811
df6d980c5418
Added more Javadoc in state.profile.horizontal package.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
780
diff
changeset
|
310 |
352
24c21a720aa5
Added Support for "horizontale Schnittprofile"
Tim Englich <tim.englich@intevation.de>
parents:
diff
changeset
|
311 @Override |
24c21a720aa5
Added Support for "horizontale Schnittprofile"
Tim Englich <tim.englich@intevation.de>
parents:
diff
changeset
|
312 public void setup(Node configuration) { |
24c21a720aa5
Added Support for "horizontale Schnittprofile"
Tim Englich <tim.englich@intevation.de>
parents:
diff
changeset
|
313 super.setup(configuration); |
24c21a720aa5
Added Support for "horizontale Schnittprofile"
Tim Englich <tim.englich@intevation.de>
parents:
diff
changeset
|
314 this.ijkQueryID = Config.getStringXPath(configuration,"queryID-ijk"); |
778
9a828e5a2390
Removed trailing whitespace
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
528
diff
changeset
|
315 |
352
24c21a720aa5
Added Support for "horizontale Schnittprofile"
Tim Englich <tim.englich@intevation.de>
parents:
diff
changeset
|
316 } |
24c21a720aa5
Added Support for "horizontale Schnittprofile"
Tim Englich <tim.englich@intevation.de>
parents:
diff
changeset
|
317 |
365
f66088a43ecc
Added horizontal crossprofile charts to chart pallet. Fixed some bugs before interpolation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
362
diff
changeset
|
318 |
811
df6d980c5418
Added more Javadoc in state.profile.horizontal package.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
780
diff
changeset
|
319 /** |
df6d980c5418
Added more Javadoc in state.profile.horizontal package.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
780
diff
changeset
|
320 * This method creates a chart and returns it. |
df6d980c5418
Added more Javadoc in state.profile.horizontal package.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
780
diff
changeset
|
321 * |
df6d980c5418
Added more Javadoc in state.profile.horizontal package.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
780
diff
changeset
|
322 * @param chartLables Labels used to decorate the chart. |
df6d980c5418
Added more Javadoc in state.profile.horizontal package.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
780
diff
changeset
|
323 * @param theme The theme used to adjust the look of the chart. |
df6d980c5418
Added more Javadoc in state.profile.horizontal package.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
780
diff
changeset
|
324 * @param parameters A collection with parameters this chart contains. |
df6d980c5418
Added more Javadoc in state.profile.horizontal package.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
780
diff
changeset
|
325 * @param measurements A collection with measurement this chart contains. |
df6d980c5418
Added more Javadoc in state.profile.horizontal package.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
780
diff
changeset
|
326 * @param dates A collection with dates this chart contains. |
df6d980c5418
Added more Javadoc in state.profile.horizontal package.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
780
diff
changeset
|
327 * @param result The data collection used to be displayed in this chart. |
df6d980c5418
Added more Javadoc in state.profile.horizontal package.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
780
diff
changeset
|
328 * @param locale The Locale used to determine the language. |
df6d980c5418
Added more Javadoc in state.profile.horizontal package.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
780
diff
changeset
|
329 * @param uuid The uuid of the current artifact. |
df6d980c5418
Added more Javadoc in state.profile.horizontal package.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
780
diff
changeset
|
330 * @param linesVisible A boolean property to determine the visibility of |
df6d980c5418
Added more Javadoc in state.profile.horizontal package.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
780
diff
changeset
|
331 * lines connecting two points in a chart (not used in this chart type). |
df6d980c5418
Added more Javadoc in state.profile.horizontal package.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
780
diff
changeset
|
332 * @param shapesVisible A boolean property to determine the visiblity of |
df6d980c5418
Added more Javadoc in state.profile.horizontal package.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
780
diff
changeset
|
333 * datapoints in this chart (not used in this chart type). |
df6d980c5418
Added more Javadoc in state.profile.horizontal package.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
780
diff
changeset
|
334 * @param callContext The CallContext object. |
df6d980c5418
Added more Javadoc in state.profile.horizontal package.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
780
diff
changeset
|
335 * @return a <code>HorizontalCrossProfileChart</code>. |
df6d980c5418
Added more Javadoc in state.profile.horizontal package.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
780
diff
changeset
|
336 */ |
365
f66088a43ecc
Added horizontal crossprofile charts to chart pallet. Fixed some bugs before interpolation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
362
diff
changeset
|
337 @Override |
f66088a43ecc
Added horizontal crossprofile charts to chart pallet. Fixed some bugs before interpolation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
362
diff
changeset
|
338 protected Chart getChart( |
f66088a43ecc
Added horizontal crossprofile charts to chart pallet. Fixed some bugs before interpolation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
362
diff
changeset
|
339 ChartLabels chartLables, |
f66088a43ecc
Added horizontal crossprofile charts to chart pallet. Fixed some bugs before interpolation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
362
diff
changeset
|
340 ChartTheme theme, |
f66088a43ecc
Added horizontal crossprofile charts to chart pallet. Fixed some bugs before interpolation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
362
diff
changeset
|
341 Collection parameters, |
f66088a43ecc
Added horizontal crossprofile charts to chart pallet. Fixed some bugs before interpolation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
362
diff
changeset
|
342 Collection measurements, |
f66088a43ecc
Added horizontal crossprofile charts to chart pallet. Fixed some bugs before interpolation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
362
diff
changeset
|
343 Collection dates, |
429
bed9735adf84
Finished preprocessing data for interpolation in verticalcrosssection charts.ß
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
425
diff
changeset
|
344 Object result, |
365
f66088a43ecc
Added horizontal crossprofile charts to chart pallet. Fixed some bugs before interpolation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
362
diff
changeset
|
345 Locale locale, |
f66088a43ecc
Added horizontal crossprofile charts to chart pallet. Fixed some bugs before interpolation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
362
diff
changeset
|
346 String uuid, |
f66088a43ecc
Added horizontal crossprofile charts to chart pallet. Fixed some bugs before interpolation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
362
diff
changeset
|
347 boolean linesVisible, |
439
8975de9d7483
Loop through configuration to chart generation.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
429
diff
changeset
|
348 boolean shapesVisible, |
8975de9d7483
Loop through configuration to chart generation.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
429
diff
changeset
|
349 CallContext callContext |
365
f66088a43ecc
Added horizontal crossprofile charts to chart pallet. Fixed some bugs before interpolation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
362
diff
changeset
|
350 ) { |
f66088a43ecc
Added horizontal crossprofile charts to chart pallet. Fixed some bugs before interpolation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
362
diff
changeset
|
351 Chart chart = null; |
f66088a43ecc
Added horizontal crossprofile charts to chart pallet. Fixed some bugs before interpolation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
362
diff
changeset
|
352 if (CACHE_CHART) { |
f66088a43ecc
Added horizontal crossprofile charts to chart pallet. Fixed some bugs before interpolation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
362
diff
changeset
|
353 log.info("Try to get horizontalprofilemeshcross chart from cache."); |
439
8975de9d7483
Loop through configuration to chart generation.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
429
diff
changeset
|
354 chart = (Chart) getChartFromCache(uuid, callContext); |
365
f66088a43ecc
Added horizontal crossprofile charts to chart pallet. Fixed some bugs before interpolation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
362
diff
changeset
|
355 } |
f66088a43ecc
Added horizontal crossprofile charts to chart pallet. Fixed some bugs before interpolation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
362
diff
changeset
|
356 |
f66088a43ecc
Added horizontal crossprofile charts to chart pallet. Fixed some bugs before interpolation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
362
diff
changeset
|
357 if (chart != null) |
f66088a43ecc
Added horizontal crossprofile charts to chart pallet. Fixed some bugs before interpolation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
362
diff
changeset
|
358 return chart; |
f66088a43ecc
Added horizontal crossprofile charts to chart pallet. Fixed some bugs before interpolation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
362
diff
changeset
|
359 |
f66088a43ecc
Added horizontal crossprofile charts to chart pallet. Fixed some bugs before interpolation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
362
diff
changeset
|
360 log.info("Chart not in cache yet."); |
f66088a43ecc
Added horizontal crossprofile charts to chart pallet. Fixed some bugs before interpolation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
362
diff
changeset
|
361 chart = new HorizontalCrossProfileChart( |
f66088a43ecc
Added horizontal crossprofile charts to chart pallet. Fixed some bugs before interpolation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
362
diff
changeset
|
362 chartLables, |
f66088a43ecc
Added horizontal crossprofile charts to chart pallet. Fixed some bugs before interpolation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
362
diff
changeset
|
363 theme, |
f66088a43ecc
Added horizontal crossprofile charts to chart pallet. Fixed some bugs before interpolation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
362
diff
changeset
|
364 parameters, |
f66088a43ecc
Added horizontal crossprofile charts to chart pallet. Fixed some bugs before interpolation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
362
diff
changeset
|
365 measurements, |
f66088a43ecc
Added horizontal crossprofile charts to chart pallet. Fixed some bugs before interpolation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
362
diff
changeset
|
366 dates, |
429
bed9735adf84
Finished preprocessing data for interpolation in verticalcrosssection charts.ß
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
425
diff
changeset
|
367 (Collection)result, |
365
f66088a43ecc
Added horizontal crossprofile charts to chart pallet. Fixed some bugs before interpolation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
362
diff
changeset
|
368 null, |
f66088a43ecc
Added horizontal crossprofile charts to chart pallet. Fixed some bugs before interpolation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
362
diff
changeset
|
369 locale, |
f66088a43ecc
Added horizontal crossprofile charts to chart pallet. Fixed some bugs before interpolation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
362
diff
changeset
|
370 linesVisible, |
f66088a43ecc
Added horizontal crossprofile charts to chart pallet. Fixed some bugs before interpolation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
362
diff
changeset
|
371 shapesVisible |
f66088a43ecc
Added horizontal crossprofile charts to chart pallet. Fixed some bugs before interpolation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
362
diff
changeset
|
372 ); |
f66088a43ecc
Added horizontal crossprofile charts to chart pallet. Fixed some bugs before interpolation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
362
diff
changeset
|
373 chart.generateChart(); |
f66088a43ecc
Added horizontal crossprofile charts to chart pallet. Fixed some bugs before interpolation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
362
diff
changeset
|
374 |
f66088a43ecc
Added horizontal crossprofile charts to chart pallet. Fixed some bugs before interpolation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
362
diff
changeset
|
375 if (CACHE_CHART) { |
f66088a43ecc
Added horizontal crossprofile charts to chart pallet. Fixed some bugs before interpolation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
362
diff
changeset
|
376 log.info("Put chart into cache."); |
f66088a43ecc
Added horizontal crossprofile charts to chart pallet. Fixed some bugs before interpolation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
362
diff
changeset
|
377 purifyChart(chart, uuid); |
f66088a43ecc
Added horizontal crossprofile charts to chart pallet. Fixed some bugs before interpolation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
362
diff
changeset
|
378 } |
f66088a43ecc
Added horizontal crossprofile charts to chart pallet. Fixed some bugs before interpolation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
362
diff
changeset
|
379 |
f66088a43ecc
Added horizontal crossprofile charts to chart pallet. Fixed some bugs before interpolation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
362
diff
changeset
|
380 return chart; |
f66088a43ecc
Added horizontal crossprofile charts to chart pallet. Fixed some bugs before interpolation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
362
diff
changeset
|
381 } |
f66088a43ecc
Added horizontal crossprofile charts to chart pallet. Fixed some bugs before interpolation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
362
diff
changeset
|
382 |
1034
50a5ce7a47b7
Implemented an odv exporter for product type 'Horizontales Schnittprofil' (issue260).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1030
diff
changeset
|
383 |
50a5ce7a47b7
Implemented an odv exporter for product type 'Horizontales Schnittprofil' (issue260).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1030
diff
changeset
|
384 @Override |
50a5ce7a47b7
Implemented an odv exporter for product type 'Horizontales Schnittprofil' (issue260).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1030
diff
changeset
|
385 protected void createODV( |
50a5ce7a47b7
Implemented an odv exporter for product type 'Horizontales Schnittprofil' (issue260).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1030
diff
changeset
|
386 OutputStream outputStream, String uuid, CallContext callContext) |
50a5ce7a47b7
Implemented an odv exporter for product type 'Horizontales Schnittprofil' (issue260).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1030
diff
changeset
|
387 throws IOException, StateException { |
50a5ce7a47b7
Implemented an odv exporter for product type 'Horizontales Schnittprofil' (issue260).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1030
diff
changeset
|
388 |
50a5ce7a47b7
Implemented an odv exporter for product type 'Horizontales Schnittprofil' (issue260).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1030
diff
changeset
|
389 String [] COLUMN_HEADER = { |
50a5ce7a47b7
Implemented an odv exporter for product type 'Horizontales Schnittprofil' (issue260).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1030
diff
changeset
|
390 "Cruise", |
50a5ce7a47b7
Implemented an odv exporter for product type 'Horizontales Schnittprofil' (issue260).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1030
diff
changeset
|
391 "Station", |
50a5ce7a47b7
Implemented an odv exporter for product type 'Horizontales Schnittprofil' (issue260).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1030
diff
changeset
|
392 "Type", |
50a5ce7a47b7
Implemented an odv exporter for product type 'Horizontales Schnittprofil' (issue260).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1030
diff
changeset
|
393 "yyyy-mm-dd hh:mm", |
50a5ce7a47b7
Implemented an odv exporter for product type 'Horizontales Schnittprofil' (issue260).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1030
diff
changeset
|
394 "Lon (°E)", |
50a5ce7a47b7
Implemented an odv exporter for product type 'Horizontales Schnittprofil' (issue260).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1030
diff
changeset
|
395 "Lat (°N)", |
50a5ce7a47b7
Implemented an odv exporter for product type 'Horizontales Schnittprofil' (issue260).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1030
diff
changeset
|
396 "Bot. Depth [m]", |
50a5ce7a47b7
Implemented an odv exporter for product type 'Horizontales Schnittprofil' (issue260).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1030
diff
changeset
|
397 "Depth [m]" |
50a5ce7a47b7
Implemented an odv exporter for product type 'Horizontales Schnittprofil' (issue260).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1030
diff
changeset
|
398 }; |
50a5ce7a47b7
Implemented an odv exporter for product type 'Horizontales Schnittprofil' (issue260).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1030
diff
changeset
|
399 |
50a5ce7a47b7
Implemented an odv exporter for product type 'Horizontales Schnittprofil' (issue260).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1030
diff
changeset
|
400 Export.Profile ODV_PROFILE = new DefaultProfile( |
50a5ce7a47b7
Implemented an odv exporter for product type 'Horizontales Schnittprofil' (issue260).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1030
diff
changeset
|
401 COLUMN_HEADER, |
50a5ce7a47b7
Implemented an odv exporter for product type 'Horizontales Schnittprofil' (issue260).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1030
diff
changeset
|
402 '\t', |
50a5ce7a47b7
Implemented an odv exporter for product type 'Horizontales Schnittprofil' (issue260).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1030
diff
changeset
|
403 CSVWriter.NO_QUOTE_CHARACTER, |
50a5ce7a47b7
Implemented an odv exporter for product type 'Horizontales Schnittprofil' (issue260).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1030
diff
changeset
|
404 CSVWriter.NO_ESCAPE_CHARACTER, |
50a5ce7a47b7
Implemented an odv exporter for product type 'Horizontales Schnittprofil' (issue260).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1030
diff
changeset
|
405 "ODV", |
50a5ce7a47b7
Implemented an odv exporter for product type 'Horizontales Schnittprofil' (issue260).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1030
diff
changeset
|
406 "ISO-8859-1"); |
50a5ce7a47b7
Implemented an odv exporter for product type 'Horizontales Schnittprofil' (issue260).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1030
diff
changeset
|
407 |
50a5ce7a47b7
Implemented an odv exporter for product type 'Horizontales Schnittprofil' (issue260).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1030
diff
changeset
|
408 Collection<Result> result = (Collection<Result>) getChartResult( |
50a5ce7a47b7
Implemented an odv exporter for product type 'Horizontales Schnittprofil' (issue260).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1030
diff
changeset
|
409 uuid, callContext); |
50a5ce7a47b7
Implemented an odv exporter for product type 'Horizontales Schnittprofil' (issue260).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1030
diff
changeset
|
410 |
50a5ce7a47b7
Implemented an odv exporter for product type 'Horizontales Schnittprofil' (issue260).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1030
diff
changeset
|
411 if (result == null) { |
50a5ce7a47b7
Implemented an odv exporter for product type 'Horizontales Schnittprofil' (issue260).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1030
diff
changeset
|
412 log.error("No data for export found."); |
50a5ce7a47b7
Implemented an odv exporter for product type 'Horizontales Schnittprofil' (issue260).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1030
diff
changeset
|
413 return; |
50a5ce7a47b7
Implemented an odv exporter for product type 'Horizontales Schnittprofil' (issue260).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1030
diff
changeset
|
414 } |
50a5ce7a47b7
Implemented an odv exporter for product type 'Horizontales Schnittprofil' (issue260).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1030
diff
changeset
|
415 |
50a5ce7a47b7
Implemented an odv exporter for product type 'Horizontales Schnittprofil' (issue260).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1030
diff
changeset
|
416 Export export = new HorizontalProfileMeshCrossODVExporter( |
50a5ce7a47b7
Implemented an odv exporter for product type 'Horizontales Schnittprofil' (issue260).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1030
diff
changeset
|
417 getParameters(uuid)); |
50a5ce7a47b7
Implemented an odv exporter for product type 'Horizontales Schnittprofil' (issue260).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1030
diff
changeset
|
418 |
50a5ce7a47b7
Implemented an odv exporter for product type 'Horizontales Schnittprofil' (issue260).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1030
diff
changeset
|
419 export.create(ODV_PROFILE, outputStream, result); |
50a5ce7a47b7
Implemented an odv exporter for product type 'Horizontales Schnittprofil' (issue260).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1030
diff
changeset
|
420 } |
50a5ce7a47b7
Implemented an odv exporter for product type 'Horizontales Schnittprofil' (issue260).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1030
diff
changeset
|
421 |
50a5ce7a47b7
Implemented an odv exporter for product type 'Horizontales Schnittprofil' (issue260).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1030
diff
changeset
|
422 |
443
da21c256a0ba
"horizontale Schnittprofile" are now configured via conf.xml
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
440
diff
changeset
|
423 private static int numSamples(CallContext callContext) { |
da21c256a0ba
"horizontale Schnittprofile" are now configured via conf.xml
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
440
diff
changeset
|
424 GNVArtifactContext context = |
da21c256a0ba
"horizontale Schnittprofile" are now configured via conf.xml
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
440
diff
changeset
|
425 (GNVArtifactContext)callContext.globalContext(); |
da21c256a0ba
"horizontale Schnittprofile" are now configured via conf.xml
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
440
diff
changeset
|
426 Integer samples = (Integer)context.get( |
da21c256a0ba
"horizontale Schnittprofile" are now configured via conf.xml
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
440
diff
changeset
|
427 GNVArtifactContext.HORIZONTAL_CROSS_SECTION_PROFILE_SAMPLES_KEY); |
da21c256a0ba
"horizontale Schnittprofile" are now configured via conf.xml
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
440
diff
changeset
|
428 return samples != null |
da21c256a0ba
"horizontale Schnittprofile" are now configured via conf.xml
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
440
diff
changeset
|
429 ? samples.intValue() |
da21c256a0ba
"horizontale Schnittprofile" are now configured via conf.xml
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
440
diff
changeset
|
430 : GNVArtifactContext.DEFAULT_HORIZONTAL_CROSS_SECTION_PROFILE_SAMPLES; |
da21c256a0ba
"horizontale Schnittprofile" are now configured via conf.xml
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
440
diff
changeset
|
431 } |
da21c256a0ba
"horizontale Schnittprofile" are now configured via conf.xml
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
440
diff
changeset
|
432 |
352
24c21a720aa5
Added Support for "horizontale Schnittprofile"
Tim Englich <tim.englich@intevation.de>
parents:
diff
changeset
|
433 @Override |
439
8975de9d7483
Loop through configuration to chart generation.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
429
diff
changeset
|
434 protected Object getChartResult(String uuid, CallContext callContext) { |
365
f66088a43ecc
Added horizontal crossprofile charts to chart pallet. Fixed some bugs before interpolation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
362
diff
changeset
|
435 log.debug("HorizontalProfileMeshCrossOutputState.getChartResult"); |
440
eb2ac62e853a
Cleaned up messy code a bit in "Horizontales Schnittprofil" and "Profilschnitt".
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
439
diff
changeset
|
436 |
1060
cc4ec127d666
Remove the elements of an outdated state from cache if its endOfLife method is called.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1034
diff
changeset
|
437 String key = getHash(); |
1030
c07d9f9a738c
Removed bugs that existed in the caching mechanism (issue264, issue268).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
856
diff
changeset
|
438 if (CacheFactory.getInstance().isInitialized()) { |
c07d9f9a738c
Removed bugs that existed in the caching mechanism (issue264, issue268).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
856
diff
changeset
|
439 log.debug("Using cache - key: " + key); |
c07d9f9a738c
Removed bugs that existed in the caching mechanism (issue264, issue268).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
856
diff
changeset
|
440 net.sf.ehcache.Element value = CacheFactory.getInstance().getCache().get(key); |
440
eb2ac62e853a
Cleaned up messy code a bit in "Horizontales Schnittprofil" and "Profilschnitt".
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
439
diff
changeset
|
441 |
1030
c07d9f9a738c
Removed bugs that existed in the caching mechanism (issue264, issue268).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
856
diff
changeset
|
442 if (value != null) { |
c07d9f9a738c
Removed bugs that existed in the caching mechanism (issue264, issue268).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
856
diff
changeset
|
443 log.debug("Found element in cache."); |
c07d9f9a738c
Removed bugs that existed in the caching mechanism (issue264, issue268).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
856
diff
changeset
|
444 return (Collection<Result>) (value.getObjectValue()); |
352
24c21a720aa5
Added Support for "horizontale Schnittprofile"
Tim Englich <tim.englich@intevation.de>
parents:
diff
changeset
|
445 } |
24c21a720aa5
Added Support for "horizontale Schnittprofile"
Tim Englich <tim.englich@intevation.de>
parents:
diff
changeset
|
446 } |
1030
c07d9f9a738c
Removed bugs that existed in the caching mechanism (issue264, issue268).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
856
diff
changeset
|
447 |
c07d9f9a738c
Removed bugs that existed in the caching mechanism (issue264, issue268).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
856
diff
changeset
|
448 log.debug("Not using cache or element not found."); |
c07d9f9a738c
Removed bugs that existed in the caching mechanism (issue264, issue268).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
856
diff
changeset
|
449 Collection<Result> result = null; |
c07d9f9a738c
Removed bugs that existed in the caching mechanism (issue264, issue268).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
856
diff
changeset
|
450 |
c07d9f9a738c
Removed bugs that existed in the caching mechanism (issue264, issue268).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
856
diff
changeset
|
451 InputData meshLine = inputData.get("mesh_linestring"); |
c07d9f9a738c
Removed bugs that existed in the caching mechanism (issue264, issue268).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
856
diff
changeset
|
452 InputData meshId = inputData.get("meshid"); |
c07d9f9a738c
Removed bugs that existed in the caching mechanism (issue264, issue268).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
856
diff
changeset
|
453 |
c07d9f9a738c
Removed bugs that existed in the caching mechanism (issue264, issue268).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
856
diff
changeset
|
454 if (meshLine == null) { |
c07d9f9a738c
Removed bugs that existed in the caching mechanism (issue264, issue268).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
856
diff
changeset
|
455 log.error("mesh_linestring is not defined"); |
c07d9f9a738c
Removed bugs that existed in the caching mechanism (issue264, issue268).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
856
diff
changeset
|
456 throw new IllegalStateException("missing mesh_linestring"); |
c07d9f9a738c
Removed bugs that existed in the caching mechanism (issue264, issue268).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
856
diff
changeset
|
457 } |
c07d9f9a738c
Removed bugs that existed in the caching mechanism (issue264, issue268).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
856
diff
changeset
|
458 |
c07d9f9a738c
Removed bugs that existed in the caching mechanism (issue264, issue268).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
856
diff
changeset
|
459 if (meshId == null) { |
c07d9f9a738c
Removed bugs that existed in the caching mechanism (issue264, issue268).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
856
diff
changeset
|
460 log.error("meshid is not defined"); |
c07d9f9a738c
Removed bugs that existed in the caching mechanism (issue264, issue268).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
856
diff
changeset
|
461 throw new IllegalStateException("missing meshid"); |
c07d9f9a738c
Removed bugs that existed in the caching mechanism (issue264, issue268).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
856
diff
changeset
|
462 } |
c07d9f9a738c
Removed bugs that existed in the caching mechanism (issue264, issue268).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
856
diff
changeset
|
463 |
c07d9f9a738c
Removed bugs that existed in the caching mechanism (issue264, issue268).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
856
diff
changeset
|
464 Coordinate [] coords = WKTUtils.toCoordinates( |
c07d9f9a738c
Removed bugs that existed in the caching mechanism (issue264, issue268).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
856
diff
changeset
|
465 meshLine.getValue()); |
c07d9f9a738c
Removed bugs that existed in the caching mechanism (issue264, issue268).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
856
diff
changeset
|
466 |
c07d9f9a738c
Removed bugs that existed in the caching mechanism (issue264, issue268).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
856
diff
changeset
|
467 if (coords == null) { |
c07d9f9a738c
Removed bugs that existed in the caching mechanism (issue264, issue268).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
856
diff
changeset
|
468 throw new IllegalStateException("cannot read coordinates"); |
c07d9f9a738c
Removed bugs that existed in the caching mechanism (issue264, issue268).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
856
diff
changeset
|
469 } |
c07d9f9a738c
Removed bugs that existed in the caching mechanism (issue264, issue268).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
856
diff
changeset
|
470 |
c07d9f9a738c
Removed bugs that existed in the caching mechanism (issue264, issue268).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
856
diff
changeset
|
471 try { |
c07d9f9a738c
Removed bugs that existed in the caching mechanism (issue264, issue268).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
856
diff
changeset
|
472 String additionWhere = USE_INDEX_BUFFER |
c07d9f9a738c
Removed bugs that existed in the caching mechanism (issue264, issue268).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
856
diff
changeset
|
473 ? WKTUtils.worldCoordinatesToIndex( |
c07d9f9a738c
Removed bugs that existed in the caching mechanism (issue264, issue268).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
856
diff
changeset
|
474 coords, |
c07d9f9a738c
Removed bugs that existed in the caching mechanism (issue264, issue268).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
856
diff
changeset
|
475 result, |
c07d9f9a738c
Removed bugs that existed in the caching mechanism (issue264, issue268).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
856
diff
changeset
|
476 meshId.getValue(), |
c07d9f9a738c
Removed bugs that existed in the caching mechanism (issue264, issue268).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
856
diff
changeset
|
477 ijkQueryID) |
c07d9f9a738c
Removed bugs that existed in the caching mechanism (issue264, issue268).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
856
diff
changeset
|
478 : WKTUtils.TRUE_EXPRESSION; |
c07d9f9a738c
Removed bugs that existed in the caching mechanism (issue264, issue268).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
856
diff
changeset
|
479 |
c07d9f9a738c
Removed bugs that existed in the caching mechanism (issue264, issue268).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
856
diff
changeset
|
480 String[] addedFilterValues = StringUtils.append( |
c07d9f9a738c
Removed bugs that existed in the caching mechanism (issue264, issue268).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
856
diff
changeset
|
481 generateFilterValuesFromInputData(), |
c07d9f9a738c
Removed bugs that existed in the caching mechanism (issue264, issue268).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
856
diff
changeset
|
482 additionWhere); |
c07d9f9a738c
Removed bugs that existed in the caching mechanism (issue264, issue268).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
856
diff
changeset
|
483 |
c07d9f9a738c
Removed bugs that existed in the caching mechanism (issue264, issue268).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
856
diff
changeset
|
484 QueryExecutor queryExecutor = QueryExecutorFactory |
c07d9f9a738c
Removed bugs that existed in the caching mechanism (issue264, issue268).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
856
diff
changeset
|
485 .getInstance() |
c07d9f9a738c
Removed bugs that existed in the caching mechanism (issue264, issue268).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
856
diff
changeset
|
486 .getQueryExecutor(); |
c07d9f9a738c
Removed bugs that existed in the caching mechanism (issue264, issue268).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
856
diff
changeset
|
487 |
c07d9f9a738c
Removed bugs that existed in the caching mechanism (issue264, issue268).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
856
diff
changeset
|
488 result = process( |
c07d9f9a738c
Removed bugs that existed in the caching mechanism (issue264, issue268).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
856
diff
changeset
|
489 Arrays.asList(coords), |
c07d9f9a738c
Removed bugs that existed in the caching mechanism (issue264, issue268).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
856
diff
changeset
|
490 numSamples(callContext), |
c07d9f9a738c
Removed bugs that existed in the caching mechanism (issue264, issue268).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
856
diff
changeset
|
491 queryExecutor.executeQuery( |
c07d9f9a738c
Removed bugs that existed in the caching mechanism (issue264, issue268).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
856
diff
changeset
|
492 queryID, |
c07d9f9a738c
Removed bugs that existed in the caching mechanism (issue264, issue268).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
856
diff
changeset
|
493 addedFilterValues)); |
c07d9f9a738c
Removed bugs that existed in the caching mechanism (issue264, issue268).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
856
diff
changeset
|
494 } |
c07d9f9a738c
Removed bugs that existed in the caching mechanism (issue264, issue268).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
856
diff
changeset
|
495 catch (QueryException e) { |
c07d9f9a738c
Removed bugs that existed in the caching mechanism (issue264, issue268).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
856
diff
changeset
|
496 log.error(e,e); |
c07d9f9a738c
Removed bugs that existed in the caching mechanism (issue264, issue268).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
856
diff
changeset
|
497 } |
c07d9f9a738c
Removed bugs that existed in the caching mechanism (issue264, issue268).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
856
diff
changeset
|
498 |
c07d9f9a738c
Removed bugs that existed in the caching mechanism (issue264, issue268).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
856
diff
changeset
|
499 if (CacheFactory.getInstance().isInitialized()) { |
c07d9f9a738c
Removed bugs that existed in the caching mechanism (issue264, issue268).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
856
diff
changeset
|
500 CacheFactory.getInstance().getCache().put(new net.sf.ehcache.Element(key, result)); |
c07d9f9a738c
Removed bugs that existed in the caching mechanism (issue264, issue268).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
856
diff
changeset
|
501 } |
c07d9f9a738c
Removed bugs that existed in the caching mechanism (issue264, issue268).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
856
diff
changeset
|
502 |
352
24c21a720aa5
Added Support for "horizontale Schnittprofile"
Tim Englich <tim.englich@intevation.de>
parents:
diff
changeset
|
503 return result; |
24c21a720aa5
Added Support for "horizontale Schnittprofile"
Tim Englich <tim.englich@intevation.de>
parents:
diff
changeset
|
504 } |
24c21a720aa5
Added Support for "horizontale Schnittprofile"
Tim Englich <tim.englich@intevation.de>
parents:
diff
changeset
|
505 |
365
f66088a43ecc
Added horizontal crossprofile charts to chart pallet. Fixed some bugs before interpolation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
362
diff
changeset
|
506 |
811
df6d980c5418
Added more Javadoc in state.profile.horizontal package.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
780
diff
changeset
|
507 /** |
df6d980c5418
Added more Javadoc in state.profile.horizontal package.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
780
diff
changeset
|
508 * Prepares the input data for chart creation. |
df6d980c5418
Added more Javadoc in state.profile.horizontal package.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
780
diff
changeset
|
509 * |
df6d980c5418
Added more Javadoc in state.profile.horizontal package.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
780
diff
changeset
|
510 * @param path The coordinates describing the path the data is processed |
df6d980c5418
Added more Javadoc in state.profile.horizontal package.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
780
diff
changeset
|
511 * for. |
df6d980c5418
Added more Javadoc in state.profile.horizontal package.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
780
diff
changeset
|
512 * @param numSamples Number of samples. |
df6d980c5418
Added more Javadoc in state.profile.horizontal package.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
780
diff
changeset
|
513 * @param input The input data. |
df6d980c5418
Added more Javadoc in state.profile.horizontal package.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
780
diff
changeset
|
514 * @return finalized data ready for chart creation. |
df6d980c5418
Added more Javadoc in state.profile.horizontal package.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
780
diff
changeset
|
515 */ |
423
2402173a1490
Moved some methods back to old place.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
420
diff
changeset
|
516 public static Collection<Result> process( |
2402173a1490
Moved some methods back to old place.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
420
diff
changeset
|
517 List<Coordinate> path, |
443
da21c256a0ba
"horizontale Schnittprofile" are now configured via conf.xml
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
440
diff
changeset
|
518 int numSamples, |
423
2402173a1490
Moved some methods back to old place.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
420
diff
changeset
|
519 Collection<Result> input |
2402173a1490
Moved some methods back to old place.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
420
diff
changeset
|
520 ) { |
443
da21c256a0ba
"horizontale Schnittprofile" are now configured via conf.xml
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
440
diff
changeset
|
521 boolean debug = log.isDebugEnabled(); |
da21c256a0ba
"horizontale Schnittprofile" are now configured via conf.xml
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
440
diff
changeset
|
522 |
da21c256a0ba
"horizontale Schnittprofile" are now configured via conf.xml
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
440
diff
changeset
|
523 if (debug) { |
da21c256a0ba
"horizontale Schnittprofile" are now configured via conf.xml
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
440
diff
changeset
|
524 log.debug("--- number of points before processing: " + input.size()); |
da21c256a0ba
"horizontale Schnittprofile" are now configured via conf.xml
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
440
diff
changeset
|
525 log.debug(" number samples: " + numSamples); |
da21c256a0ba
"horizontale Schnittprofile" are now configured via conf.xml
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
440
diff
changeset
|
526 } |
da21c256a0ba
"horizontale Schnittprofile" are now configured via conf.xml
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
440
diff
changeset
|
527 |
423
2402173a1490
Moved some methods back to old place.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
420
diff
changeset
|
528 ArrayList<Result> output = new ArrayList<Result>(); |
2402173a1490
Moved some methods back to old place.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
420
diff
changeset
|
529 |
2402173a1490
Moved some methods back to old place.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
420
diff
changeset
|
530 Result last = null; |
2402173a1490
Moved some methods back to old place.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
420
diff
changeset
|
531 |
2402173a1490
Moved some methods back to old place.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
420
diff
changeset
|
532 int [] diffColums = null; |
2402173a1490
Moved some methods back to old place.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
420
diff
changeset
|
533 |
2402173a1490
Moved some methods back to old place.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
420
diff
changeset
|
534 SectionHandler sectionHandler = null; |
2402173a1490
Moved some methods back to old place.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
420
diff
changeset
|
535 |
2402173a1490
Moved some methods back to old place.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
420
diff
changeset
|
536 for (Result result: input) { |
2402173a1490
Moved some methods back to old place.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
420
diff
changeset
|
537 |
2402173a1490
Moved some methods back to old place.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
420
diff
changeset
|
538 if (sectionHandler == null) { |
2402173a1490
Moved some methods back to old place.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
420
diff
changeset
|
539 |
2402173a1490
Moved some methods back to old place.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
420
diff
changeset
|
540 ResultDescriptor rd = result.getResultDescriptor(); |
2402173a1490
Moved some methods back to old place.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
420
diff
changeset
|
541 diffColums = rd.getColumnIndices(DIFF_COLUMS); |
2402173a1490
Moved some methods back to old place.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
420
diff
changeset
|
542 int columns = rd.getColumnCount(); |
2402173a1490
Moved some methods back to old place.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
420
diff
changeset
|
543 |
2402173a1490
Moved some methods back to old place.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
420
diff
changeset
|
544 DefaultResultDescriptor resultDescriptor = |
2402173a1490
Moved some methods back to old place.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
420
diff
changeset
|
545 new DefaultResultDescriptor(); |
2402173a1490
Moved some methods back to old place.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
420
diff
changeset
|
546 |
1034
50a5ce7a47b7
Implemented an odv exporter for product type 'Horizontales Schnittprofil' (issue260).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1030
diff
changeset
|
547 log.debug("------------------------------------------------------"); |
423
2402173a1490
Moved some methods back to old place.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
420
diff
changeset
|
548 for (int j = 0; j < columns; ++j) { |
2402173a1490
Moved some methods back to old place.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
420
diff
changeset
|
549 String columnName = rd.getColumnName(j); |
439
8975de9d7483
Loop through configuration to chart generation.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
429
diff
changeset
|
550 if (!StringUtils.contains(COLUMN_BLACKLIST, columnName)) { |
1034
50a5ce7a47b7
Implemented an odv exporter for product type 'Horizontales Schnittprofil' (issue260).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1030
diff
changeset
|
551 log.debug("!!! COLUMN NAME: " + columnName); |
423
2402173a1490
Moved some methods back to old place.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
420
diff
changeset
|
552 resultDescriptor.addColumn( |
2402173a1490
Moved some methods back to old place.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
420
diff
changeset
|
553 columnName, |
2402173a1490
Moved some methods back to old place.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
420
diff
changeset
|
554 rd.getColumnClassName(j)); |
2402173a1490
Moved some methods back to old place.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
420
diff
changeset
|
555 } |
2402173a1490
Moved some methods back to old place.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
420
diff
changeset
|
556 } |
2402173a1490
Moved some methods back to old place.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
420
diff
changeset
|
557 |
2402173a1490
Moved some methods back to old place.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
420
diff
changeset
|
558 sectionHandler = new SectionHandler( |
2402173a1490
Moved some methods back to old place.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
420
diff
changeset
|
559 path, |
443
da21c256a0ba
"horizontale Schnittprofile" are now configured via conf.xml
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
440
diff
changeset
|
560 numSamples, |
423
2402173a1490
Moved some methods back to old place.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
420
diff
changeset
|
561 output, |
2402173a1490
Moved some methods back to old place.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
420
diff
changeset
|
562 resultDescriptor); |
2402173a1490
Moved some methods back to old place.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
420
diff
changeset
|
563 |
2402173a1490
Moved some methods back to old place.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
420
diff
changeset
|
564 sectionHandler.setPrototyp(result); |
2402173a1490
Moved some methods back to old place.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
420
diff
changeset
|
565 } |
2402173a1490
Moved some methods back to old place.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
420
diff
changeset
|
566 |
2402173a1490
Moved some methods back to old place.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
420
diff
changeset
|
567 if (last != null && WKTUtils.different(last, result, diffColums)) { |
2402173a1490
Moved some methods back to old place.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
420
diff
changeset
|
568 sectionHandler.finish(); |
2402173a1490
Moved some methods back to old place.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
420
diff
changeset
|
569 sectionHandler.setPrototyp(result); |
2402173a1490
Moved some methods back to old place.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
420
diff
changeset
|
570 } |
2402173a1490
Moved some methods back to old place.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
420
diff
changeset
|
571 |
2402173a1490
Moved some methods back to old place.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
420
diff
changeset
|
572 sectionHandler.handle(result); |
2402173a1490
Moved some methods back to old place.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
420
diff
changeset
|
573 |
2402173a1490
Moved some methods back to old place.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
420
diff
changeset
|
574 last = result; |
2402173a1490
Moved some methods back to old place.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
420
diff
changeset
|
575 } |
2402173a1490
Moved some methods back to old place.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
420
diff
changeset
|
576 |
2402173a1490
Moved some methods back to old place.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
420
diff
changeset
|
577 if (sectionHandler != null) { |
2402173a1490
Moved some methods back to old place.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
420
diff
changeset
|
578 sectionHandler.finish(); |
2402173a1490
Moved some methods back to old place.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
420
diff
changeset
|
579 } |
2402173a1490
Moved some methods back to old place.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
420
diff
changeset
|
580 |
443
da21c256a0ba
"horizontale Schnittprofile" are now configured via conf.xml
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
440
diff
changeset
|
581 if (debug) { |
da21c256a0ba
"horizontale Schnittprofile" are now configured via conf.xml
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
440
diff
changeset
|
582 log.debug("--- number of points after processing: " + output.size()); |
da21c256a0ba
"horizontale Schnittprofile" are now configured via conf.xml
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
440
diff
changeset
|
583 } |
423
2402173a1490
Moved some methods back to old place.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
420
diff
changeset
|
584 |
2402173a1490
Moved some methods back to old place.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
420
diff
changeset
|
585 return output; |
2402173a1490
Moved some methods back to old place.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
420
diff
changeset
|
586 } |
2402173a1490
Moved some methods back to old place.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
420
diff
changeset
|
587 |
2402173a1490
Moved some methods back to old place.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
420
diff
changeset
|
588 |
2402173a1490
Moved some methods back to old place.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
420
diff
changeset
|
589 private static final String [] DIFF_COLUMS = { |
2402173a1490
Moved some methods back to old place.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
420
diff
changeset
|
590 "GROUP1", |
2402173a1490
Moved some methods back to old place.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
420
diff
changeset
|
591 "GROUP2", |
2402173a1490
Moved some methods back to old place.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
420
diff
changeset
|
592 "GROUP3" |
2402173a1490
Moved some methods back to old place.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
420
diff
changeset
|
593 }; |
2402173a1490
Moved some methods back to old place.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
420
diff
changeset
|
594 |
2402173a1490
Moved some methods back to old place.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
420
diff
changeset
|
595 private static final String [] COLUMN_BLACKLIST = { |
2402173a1490
Moved some methods back to old place.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
420
diff
changeset
|
596 "MEDIAN.MESHPOINT.JPOSITION", |
2402173a1490
Moved some methods back to old place.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
420
diff
changeset
|
597 "MEDIAN.MESHPOINT.IPOSITION" |
2402173a1490
Moved some methods back to old place.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
420
diff
changeset
|
598 }; |
2402173a1490
Moved some methods back to old place.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
420
diff
changeset
|
599 |
2402173a1490
Moved some methods back to old place.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
420
diff
changeset
|
600 public static final double EPSILON = 1e-5d; |
2402173a1490
Moved some methods back to old place.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
420
diff
changeset
|
601 |
2402173a1490
Moved some methods back to old place.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
420
diff
changeset
|
602 public static final class SectionHandler |
2402173a1490
Moved some methods back to old place.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
420
diff
changeset
|
603 implements Interpolation2D.Consumer |
2402173a1490
Moved some methods back to old place.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
420
diff
changeset
|
604 { |
2402173a1490
Moved some methods back to old place.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
420
diff
changeset
|
605 private ArrayList<Point2d> points; |
2402173a1490
Moved some methods back to old place.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
420
diff
changeset
|
606 private List<Coordinate> path; |
2402173a1490
Moved some methods back to old place.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
420
diff
changeset
|
607 private Collection<Result> output; |
2402173a1490
Moved some methods back to old place.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
420
diff
changeset
|
608 private Result prototyp; |
2402173a1490
Moved some methods back to old place.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
420
diff
changeset
|
609 private ResultDescriptor descriptor; |
2402173a1490
Moved some methods back to old place.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
420
diff
changeset
|
610 private boolean lastWasSuccess; |
443
da21c256a0ba
"horizontale Schnittprofile" are now configured via conf.xml
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
440
diff
changeset
|
611 private int numSamples; |
423
2402173a1490
Moved some methods back to old place.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
420
diff
changeset
|
612 |
2402173a1490
Moved some methods back to old place.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
420
diff
changeset
|
613 public SectionHandler() { |
2402173a1490
Moved some methods back to old place.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
420
diff
changeset
|
614 } |
2402173a1490
Moved some methods back to old place.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
420
diff
changeset
|
615 |
2402173a1490
Moved some methods back to old place.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
420
diff
changeset
|
616 public SectionHandler( |
2402173a1490
Moved some methods back to old place.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
420
diff
changeset
|
617 List<Coordinate> path, |
443
da21c256a0ba
"horizontale Schnittprofile" are now configured via conf.xml
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
440
diff
changeset
|
618 int numSamples, |
423
2402173a1490
Moved some methods back to old place.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
420
diff
changeset
|
619 Collection<Result> output, |
2402173a1490
Moved some methods back to old place.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
420
diff
changeset
|
620 ResultDescriptor descriptor |
2402173a1490
Moved some methods back to old place.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
420
diff
changeset
|
621 ) { |
2402173a1490
Moved some methods back to old place.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
420
diff
changeset
|
622 this.path = path; |
443
da21c256a0ba
"horizontale Schnittprofile" are now configured via conf.xml
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
440
diff
changeset
|
623 this.numSamples = numSamples; |
423
2402173a1490
Moved some methods back to old place.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
420
diff
changeset
|
624 this.output = output; |
2402173a1490
Moved some methods back to old place.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
420
diff
changeset
|
625 this.descriptor = descriptor; |
2402173a1490
Moved some methods back to old place.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
420
diff
changeset
|
626 points = new ArrayList<Point2d>(); |
2402173a1490
Moved some methods back to old place.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
420
diff
changeset
|
627 lastWasSuccess = true; |
2402173a1490
Moved some methods back to old place.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
420
diff
changeset
|
628 } |
2402173a1490
Moved some methods back to old place.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
420
diff
changeset
|
629 |
2402173a1490
Moved some methods back to old place.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
420
diff
changeset
|
630 public void finish() { |
2402173a1490
Moved some methods back to old place.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
420
diff
changeset
|
631 if (!points.isEmpty()) { |
2402173a1490
Moved some methods back to old place.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
420
diff
changeset
|
632 double distance = WKTUtils.toKM( |
2402173a1490
Moved some methods back to old place.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
420
diff
changeset
|
633 DistanceCalculator.calculateDistance(path)); |
2402173a1490
Moved some methods back to old place.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
420
diff
changeset
|
634 |
2402173a1490
Moved some methods back to old place.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
420
diff
changeset
|
635 if (distance > EPSILON) { |
2402173a1490
Moved some methods back to old place.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
420
diff
changeset
|
636 |
2402173a1490
Moved some methods back to old place.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
420
diff
changeset
|
637 Interpolation2D.interpolate( |
2402173a1490
Moved some methods back to old place.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
420
diff
changeset
|
638 path, |
2402173a1490
Moved some methods back to old place.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
420
diff
changeset
|
639 points, |
2402173a1490
Moved some methods back to old place.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
420
diff
changeset
|
640 0d, |
2402173a1490
Moved some methods back to old place.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
420
diff
changeset
|
641 distance, |
443
da21c256a0ba
"horizontale Schnittprofile" are now configured via conf.xml
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
440
diff
changeset
|
642 numSamples, |
423
2402173a1490
Moved some methods back to old place.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
420
diff
changeset
|
643 LinearMetrics.INSTANCE, |
2402173a1490
Moved some methods back to old place.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
420
diff
changeset
|
644 this); |
2402173a1490
Moved some methods back to old place.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
420
diff
changeset
|
645 } |
2402173a1490
Moved some methods back to old place.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
420
diff
changeset
|
646 |
2402173a1490
Moved some methods back to old place.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
420
diff
changeset
|
647 points.clear(); |
2402173a1490
Moved some methods back to old place.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
420
diff
changeset
|
648 } |
2402173a1490
Moved some methods back to old place.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
420
diff
changeset
|
649 lastWasSuccess = true; |
2402173a1490
Moved some methods back to old place.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
420
diff
changeset
|
650 } |
2402173a1490
Moved some methods back to old place.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
420
diff
changeset
|
651 |
2402173a1490
Moved some methods back to old place.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
420
diff
changeset
|
652 public void setPrototyp(Result prototyp) { |
2402173a1490
Moved some methods back to old place.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
420
diff
changeset
|
653 this.prototyp = prototyp; |
2402173a1490
Moved some methods back to old place.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
420
diff
changeset
|
654 } |
2402173a1490
Moved some methods back to old place.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
420
diff
changeset
|
655 |
2402173a1490
Moved some methods back to old place.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
420
diff
changeset
|
656 public void handle(Result result) { |
2402173a1490
Moved some methods back to old place.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
420
diff
changeset
|
657 Coordinate coordinate = |
2402173a1490
Moved some methods back to old place.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
420
diff
changeset
|
658 WKTUtils.toCoordinate(result.getString("SHAPE")); |
2402173a1490
Moved some methods back to old place.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
420
diff
changeset
|
659 double value = result.getDouble("YORDINATE"); |
519
4e347624ee7c
Last part to fix gnv/issue153. Now 'Profilschnitte', 'Horizontalschnitte' and 'horizontale Schnittprofile'
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
443
diff
changeset
|
660 int iPos = result.getInteger("IPOSITION"); |
4e347624ee7c
Last part to fix gnv/issue153. Now 'Profilschnitte', 'Horizontalschnitte' and 'horizontale Schnittprofile'
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
443
diff
changeset
|
661 int jPos = result.getInteger("JPOSITION"); |
423
2402173a1490
Moved some methods back to old place.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
420
diff
changeset
|
662 Point2d p = new Point2d( |
2402173a1490
Moved some methods back to old place.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
420
diff
changeset
|
663 coordinate.x, |
2402173a1490
Moved some methods back to old place.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
420
diff
changeset
|
664 coordinate.y, |
2402173a1490
Moved some methods back to old place.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
420
diff
changeset
|
665 value, |
2402173a1490
Moved some methods back to old place.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
420
diff
changeset
|
666 iPos, jPos); |
2402173a1490
Moved some methods back to old place.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
420
diff
changeset
|
667 points.add(p); |
2402173a1490
Moved some methods back to old place.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
420
diff
changeset
|
668 } |
2402173a1490
Moved some methods back to old place.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
420
diff
changeset
|
669 |
2402173a1490
Moved some methods back to old place.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
420
diff
changeset
|
670 public void interpolated(Coordinate coordinate, boolean success) { |
425
15b8e95fa8da
Horizontale Schnittprofile. Ignore invalid interpolation correctly.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
423
diff
changeset
|
671 |
15b8e95fa8da
Horizontale Schnittprofile. Ignore invalid interpolation correctly.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
423
diff
changeset
|
672 if (!success && !lastWasSuccess) { |
15b8e95fa8da
Horizontale Schnittprofile. Ignore invalid interpolation correctly.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
423
diff
changeset
|
673 // only insert null if last was valid. |
15b8e95fa8da
Horizontale Schnittprofile. Ignore invalid interpolation correctly.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
423
diff
changeset
|
674 // This prevents flooding the result set with nulls |
15b8e95fa8da
Horizontale Schnittprofile. Ignore invalid interpolation correctly.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
423
diff
changeset
|
675 // if interpolating over a large gap. |
15b8e95fa8da
Horizontale Schnittprofile. Ignore invalid interpolation correctly.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
423
diff
changeset
|
676 return; |
15b8e95fa8da
Horizontale Schnittprofile. Ignore invalid interpolation correctly.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
423
diff
changeset
|
677 } |
15b8e95fa8da
Horizontale Schnittprofile. Ignore invalid interpolation correctly.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
423
diff
changeset
|
678 |
423
2402173a1490
Moved some methods back to old place.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
420
diff
changeset
|
679 DefaultResult result = new DefaultResult(descriptor); |
2402173a1490
Moved some methods back to old place.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
420
diff
changeset
|
680 ResultDescriptor pd = prototyp.getResultDescriptor(); |
2402173a1490
Moved some methods back to old place.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
420
diff
changeset
|
681 |
2402173a1490
Moved some methods back to old place.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
420
diff
changeset
|
682 int pcolums = pd.getColumnCount(); |
2402173a1490
Moved some methods back to old place.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
420
diff
changeset
|
683 for (int i = 0, j = 0; i < pcolums; ++i) { |
2402173a1490
Moved some methods back to old place.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
420
diff
changeset
|
684 String colname = pd.getColumnName(i); |
439
8975de9d7483
Loop through configuration to chart generation.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
429
diff
changeset
|
685 if (StringUtils.contains(COLUMN_BLACKLIST, colname)) { |
423
2402173a1490
Moved some methods back to old place.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
420
diff
changeset
|
686 continue; |
2402173a1490
Moved some methods back to old place.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
420
diff
changeset
|
687 } |
2402173a1490
Moved some methods back to old place.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
420
diff
changeset
|
688 if (colname.equals("SHAPE")) { |
2402173a1490
Moved some methods back to old place.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
420
diff
changeset
|
689 result.addColumnValue(j, WKTUtils.toWKT(coordinate)); |
2402173a1490
Moved some methods back to old place.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
420
diff
changeset
|
690 } |
2402173a1490
Moved some methods back to old place.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
420
diff
changeset
|
691 else if (colname.equals("YORDINATE")) { |
425
15b8e95fa8da
Horizontale Schnittprofile. Ignore invalid interpolation correctly.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
423
diff
changeset
|
692 result.addColumnValue(j, success |
15b8e95fa8da
Horizontale Schnittprofile. Ignore invalid interpolation correctly.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
423
diff
changeset
|
693 ? Double.valueOf(coordinate.z) |
15b8e95fa8da
Horizontale Schnittprofile. Ignore invalid interpolation correctly.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
423
diff
changeset
|
694 : null); |
423
2402173a1490
Moved some methods back to old place.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
420
diff
changeset
|
695 } |
2402173a1490
Moved some methods back to old place.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
420
diff
changeset
|
696 else { |
2402173a1490
Moved some methods back to old place.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
420
diff
changeset
|
697 result.addColumnValue(j, prototyp.getObject(i)); |
2402173a1490
Moved some methods back to old place.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
420
diff
changeset
|
698 } |
2402173a1490
Moved some methods back to old place.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
420
diff
changeset
|
699 ++j; |
2402173a1490
Moved some methods back to old place.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
420
diff
changeset
|
700 } |
2402173a1490
Moved some methods back to old place.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
420
diff
changeset
|
701 output.add(result); |
2402173a1490
Moved some methods back to old place.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
420
diff
changeset
|
702 lastWasSuccess = success; |
2402173a1490
Moved some methods back to old place.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
420
diff
changeset
|
703 } |
2402173a1490
Moved some methods back to old place.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
420
diff
changeset
|
704 } |
352
24c21a720aa5
Added Support for "horizontale Schnittprofile"
Tim Englich <tim.englich@intevation.de>
parents:
diff
changeset
|
705 } |
836
05bf8534a35a
Using unix line endings only.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
835
diff
changeset
|
706 // vim:set ts=4 sw=4 si et sta sts=4 fenc=utf8 : |