Mercurial > dive4elements > gnv-client
annotate gnv-artifacts/src/main/java/de/intevation/gnv/state/profile/horizontal/HorizontalProfileMeshCrossOutputState.java @ 1052:b30361464775
The pdf format depends on the chart's aspect ratio (issue290).
gnv-artifacts/trunk@1126 c6561f87-3c4e-4783-a992-168aeb5c3f6f
author | Ingo Weinzierl <ingo.weinzierl@intevation.de> |
---|---|
date | Wed, 26 May 2010 06:45:03 +0000 |
parents | 50a5ce7a47b7 |
children | cc4ec127d666 |
rev | line source |
---|---|
352
24c21a720aa5
Added Support for "horizontale Schnittprofile"
Tim Englich <tim.englich@intevation.de>
parents:
diff
changeset
|
1 package de.intevation.gnv.state.profile.horizontal; |
24c21a720aa5
Added Support for "horizontale Schnittprofile"
Tim Englich <tim.englich@intevation.de>
parents:
diff
changeset
|
2 |
1034
50a5ce7a47b7
Implemented an odv exporter for product type 'Horizontales Schnittprofil' (issue260).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1030
diff
changeset
|
3 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
|
4 |
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
|
5 import com.vividsolutions.jts.geom.Coordinate; |
352
24c21a720aa5
Added Support for "horizontale Schnittprofile"
Tim Englich <tim.englich@intevation.de>
parents:
diff
changeset
|
6 |
24c21a720aa5
Added Support for "horizontale Schnittprofile"
Tim Englich <tim.englich@intevation.de>
parents:
diff
changeset
|
7 import de.intevation.artifactdatabase.Config; |
357
25e4724aa504
Fill (i, j)-gaps when building index buffer.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
352
diff
changeset
|
8 |
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
|
9 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
|
10 |
352
24c21a720aa5
Added Support for "horizontale Schnittprofile"
Tim Englich <tim.englich@intevation.de>
parents:
diff
changeset
|
11 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
|
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 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
|
14 |
4e347624ee7c
Last part to fix gnv/issue153. Now 'Profilschnitte', 'Horizontalschnitte' and 'horizontale Schnittprofile'
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
443
diff
changeset
|
15 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
|
16 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
|
17 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
|
18 |
1034
50a5ce7a47b7
Implemented an odv exporter for product type 'Horizontales Schnittprofil' (issue260).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1030
diff
changeset
|
19 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
|
20 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
|
21 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
|
22 |
423
2402173a1490
Moved some methods back to old place.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
420
diff
changeset
|
23 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
|
24 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
|
25 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
|
26 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
|
27 |
423
2402173a1490
Moved some methods back to old place.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
420
diff
changeset
|
28 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
|
29 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
|
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.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
|
32 |
423
2402173a1490
Moved some methods back to old place.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
420
diff
changeset
|
33 import de.intevation.gnv.math.Interpolation2D; |
2402173a1490
Moved some methods back to old place.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
420
diff
changeset
|
34 import de.intevation.gnv.math.LinearMetrics; |
2402173a1490
Moved some methods back to old place.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
420
diff
changeset
|
35 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
|
36 |
440
eb2ac62e853a
Cleaned up messy code a bit in "Horizontales Schnittprofil" and "Profilschnitt".
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
439
diff
changeset
|
37 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
|
38 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
|
39 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
|
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.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
|
42 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
|
43 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
|
44 |
1034
50a5ce7a47b7
Implemented an odv exporter for product type 'Horizontales Schnittprofil' (issue260).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1030
diff
changeset
|
45 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
|
46 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
|
47 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
|
48 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
|
49 |
50a5ce7a47b7
Implemented an odv exporter for product type 'Horizontales Schnittprofil' (issue260).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1030
diff
changeset
|
50 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
|
51 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
|
52 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
|
53 |
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
|
54 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
|
55 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
|
56 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
|
57 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
|
58 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
|
59 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
|
60 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
|
61 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
|
62 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
|
63 |
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
|
64 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
|
65 |
365
f66088a43ecc
Added horizontal crossprofile charts to chart pallet. Fixed some bugs before interpolation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
362
diff
changeset
|
66 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
|
67 |
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 org.w3c.dom.Node; |
423
2402173a1490
Moved some methods back to old place.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
420
diff
changeset
|
69 |
352
24c21a720aa5
Added Support for "horizontale Schnittprofile"
Tim Englich <tim.englich@intevation.de>
parents:
diff
changeset
|
70 /** |
811
df6d980c5418
Added more Javadoc in state.profile.horizontal package.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
780
diff
changeset
|
71 * 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
|
72 * |
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
|
73 * @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
|
74 * @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
|
75 * @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
|
76 */ |
528
44415ae01ddb
Fixed issue gnv/issue159
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
519
diff
changeset
|
77 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
|
78 extends HorizontalProfileMeshOutputState |
528
44415ae01ddb
Fixed issue gnv/issue159
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
519
diff
changeset
|
79 { |
352
24c21a720aa5
Added Support for "horizontale Schnittprofile"
Tim Englich <tim.englich@intevation.de>
parents:
diff
changeset
|
80 |
1034
50a5ce7a47b7
Implemented an odv exporter for product type 'Horizontales Schnittprofil' (issue260).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1030
diff
changeset
|
81 /** |
50a5ce7a47b7
Implemented an odv exporter for product type 'Horizontales Schnittprofil' (issue260).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1030
diff
changeset
|
82 * 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
|
83 */ |
50a5ce7a47b7
Implemented an odv exporter for product type 'Horizontales Schnittprofil' (issue260).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1030
diff
changeset
|
84 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
|
85 |
50a5ce7a47b7
Implemented an odv exporter for product type 'Horizontales Schnittprofil' (issue260).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1030
diff
changeset
|
86 /** |
50a5ce7a47b7
Implemented an odv exporter for product type 'Horizontales Schnittprofil' (issue260).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1030
diff
changeset
|
87 * 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
|
88 */ |
50a5ce7a47b7
Implemented an odv exporter for product type 'Horizontales Schnittprofil' (issue260).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1030
diff
changeset
|
89 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
|
90 |
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 * Source format. |
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 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
|
95 |
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 * Target format. |
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 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
|
100 |
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 /** |
50a5ce7a47b7
Implemented an odv exporter for product type 'Horizontales Schnittprofil' (issue260).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1030
diff
changeset
|
103 * 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
|
104 * Schnittprofile' as odv. |
50a5ce7a47b7
Implemented an odv exporter for product type 'Horizontales Schnittprofil' (issue260).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1030
diff
changeset
|
105 * |
50a5ce7a47b7
Implemented an odv exporter for product type 'Horizontales Schnittprofil' (issue260).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1030
diff
changeset
|
106 * @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
|
107 */ |
50a5ce7a47b7
Implemented an odv exporter for product type 'Horizontales Schnittprofil' (issue260).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1030
diff
changeset
|
108 public class HorizontalProfileMeshCrossODVExporter |
50a5ce7a47b7
Implemented an odv exporter for product type 'Horizontales Schnittprofil' (issue260).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1030
diff
changeset
|
109 implements Export |
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 private ResultDescriptor rd; |
50a5ce7a47b7
Implemented an odv exporter for product type 'Horizontales Schnittprofil' (issue260).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1030
diff
changeset
|
112 |
50a5ce7a47b7
Implemented an odv exporter for product type 'Horizontales Schnittprofil' (issue260).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1030
diff
changeset
|
113 private Collection parameters; |
50a5ce7a47b7
Implemented an odv exporter for product type 'Horizontales Schnittprofil' (issue260).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1030
diff
changeset
|
114 |
50a5ce7a47b7
Implemented an odv exporter for product type 'Horizontales Schnittprofil' (issue260).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1030
diff
changeset
|
115 private int dateIdx; |
50a5ce7a47b7
Implemented an odv exporter for product type 'Horizontales Schnittprofil' (issue260).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1030
diff
changeset
|
116 private int paramIdx; |
50a5ce7a47b7
Implemented an odv exporter for product type 'Horizontales Schnittprofil' (issue260).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1030
diff
changeset
|
117 private int depthIdx; |
50a5ce7a47b7
Implemented an odv exporter for product type 'Horizontales Schnittprofil' (issue260).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1030
diff
changeset
|
118 private int valueIdx; |
50a5ce7a47b7
Implemented an odv exporter for product type 'Horizontales Schnittprofil' (issue260).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1030
diff
changeset
|
119 private int shpIdx; |
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 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
|
122 this.parameters = parameters; |
50a5ce7a47b7
Implemented an odv exporter for product type 'Horizontales Schnittprofil' (issue260).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1030
diff
changeset
|
123 } |
50a5ce7a47b7
Implemented an odv exporter for product type 'Horizontales Schnittprofil' (issue260).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1030
diff
changeset
|
124 |
50a5ce7a47b7
Implemented an odv exporter for product type 'Horizontales Schnittprofil' (issue260).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1030
diff
changeset
|
125 public void create( |
50a5ce7a47b7
Implemented an odv exporter for product type 'Horizontales Schnittprofil' (issue260).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1030
diff
changeset
|
126 Profile profile, |
50a5ce7a47b7
Implemented an odv exporter for product type 'Horizontales Schnittprofil' (issue260).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1030
diff
changeset
|
127 OutputStream outputStream, |
50a5ce7a47b7
Implemented an odv exporter for product type 'Horizontales Schnittprofil' (issue260).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1030
diff
changeset
|
128 Collection result) |
50a5ce7a47b7
Implemented an odv exporter for product type 'Horizontales Schnittprofil' (issue260).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1030
diff
changeset
|
129 throws |
50a5ce7a47b7
Implemented an odv exporter for product type 'Horizontales Schnittprofil' (issue260).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1030
diff
changeset
|
130 IOException, |
50a5ce7a47b7
Implemented an odv exporter for product type 'Horizontales Schnittprofil' (issue260).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1030
diff
changeset
|
131 UnsupportedEncodingException, |
50a5ce7a47b7
Implemented an odv exporter for product type 'Horizontales Schnittprofil' (issue260).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1030
diff
changeset
|
132 StateException |
50a5ce7a47b7
Implemented an odv exporter for product type 'Horizontales Schnittprofil' (issue260).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1030
diff
changeset
|
133 { |
50a5ce7a47b7
Implemented an odv exporter for product type 'Horizontales Schnittprofil' (issue260).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1030
diff
changeset
|
134 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
|
135 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
|
136 profile.getSeparator(), |
50a5ce7a47b7
Implemented an odv exporter for product type 'Horizontales Schnittprofil' (issue260).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1030
diff
changeset
|
137 profile.getQuoteCharacter(), |
50a5ce7a47b7
Implemented an odv exporter for product type 'Horizontales Schnittprofil' (issue260).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1030
diff
changeset
|
138 profile.getEscapeCharacter()); |
50a5ce7a47b7
Implemented an odv exporter for product type 'Horizontales Schnittprofil' (issue260).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1030
diff
changeset
|
139 |
50a5ce7a47b7
Implemented an odv exporter for product type 'Horizontales Schnittprofil' (issue260).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1030
diff
changeset
|
140 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
|
141 |
50a5ce7a47b7
Implemented an odv exporter for product type 'Horizontales Schnittprofil' (issue260).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1030
diff
changeset
|
142 writer.close(); |
50a5ce7a47b7
Implemented an odv exporter for product type 'Horizontales Schnittprofil' (issue260).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1030
diff
changeset
|
143 } |
50a5ce7a47b7
Implemented an odv exporter for product type 'Horizontales Schnittprofil' (issue260).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1030
diff
changeset
|
144 |
50a5ce7a47b7
Implemented an odv exporter for product type 'Horizontales Schnittprofil' (issue260).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1030
diff
changeset
|
145 protected void writeData( |
50a5ce7a47b7
Implemented an odv exporter for product type 'Horizontales Schnittprofil' (issue260).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1030
diff
changeset
|
146 Profile profile, |
50a5ce7a47b7
Implemented an odv exporter for product type 'Horizontales Schnittprofil' (issue260).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1030
diff
changeset
|
147 CSVWriter writer, |
50a5ce7a47b7
Implemented an odv exporter for product type 'Horizontales Schnittprofil' (issue260).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1030
diff
changeset
|
148 Collection<Result> results) |
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 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
|
151 |
50a5ce7a47b7
Implemented an odv exporter for product type 'Horizontales Schnittprofil' (issue260).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1030
diff
changeset
|
152 // 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
|
153 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
|
154 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
|
155 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
|
156 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
|
157 } |
50a5ce7a47b7
Implemented an odv exporter for product type 'Horizontales Schnittprofil' (issue260).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1030
diff
changeset
|
158 |
50a5ce7a47b7
Implemented an odv exporter for product type 'Horizontales Schnittprofil' (issue260).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1030
diff
changeset
|
159 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
|
160 |
50a5ce7a47b7
Implemented an odv exporter for product type 'Horizontales Schnittprofil' (issue260).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1030
diff
changeset
|
161 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
|
162 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
|
163 |
50a5ce7a47b7
Implemented an odv exporter for product type 'Horizontales Schnittprofil' (issue260).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1030
diff
changeset
|
164 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
|
165 if (rd == null) { |
50a5ce7a47b7
Implemented an odv exporter for product type 'Horizontales Schnittprofil' (issue260).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1030
diff
changeset
|
166 rd = res.getResultDescriptor(); |
50a5ce7a47b7
Implemented an odv exporter for product type 'Horizontales Schnittprofil' (issue260).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1030
diff
changeset
|
167 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
|
168 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
|
169 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
|
170 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
|
171 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
|
172 } |
50a5ce7a47b7
Implemented an odv exporter for product type 'Horizontales Schnittprofil' (issue260).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1030
diff
changeset
|
173 |
50a5ce7a47b7
Implemented an odv exporter for product type 'Horizontales Schnittprofil' (issue260).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1030
diff
changeset
|
174 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
|
175 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
|
176 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
|
177 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
|
178 |
50a5ce7a47b7
Implemented an odv exporter for product type 'Horizontales Schnittprofil' (issue260).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1030
diff
changeset
|
179 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
|
180 paramids.add(parameterID); |
50a5ce7a47b7
Implemented an odv exporter for product type 'Horizontales Schnittprofil' (issue260).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1030
diff
changeset
|
181 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
|
182 headerList.add("QF"); |
50a5ce7a47b7
Implemented an odv exporter for product type 'Horizontales Schnittprofil' (issue260).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1030
diff
changeset
|
183 } |
50a5ce7a47b7
Implemented an odv exporter for product type 'Horizontales Schnittprofil' (issue260).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1030
diff
changeset
|
184 |
50a5ce7a47b7
Implemented an odv exporter for product type 'Horizontales Schnittprofil' (issue260).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1030
diff
changeset
|
185 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
|
186 if (aggregatedRow != null) { |
50a5ce7a47b7
Implemented an odv exporter for product type 'Horizontales Schnittprofil' (issue260).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1030
diff
changeset
|
187 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
|
188 } |
50a5ce7a47b7
Implemented an odv exporter for product type 'Horizontales Schnittprofil' (issue260).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1030
diff
changeset
|
189 else{ |
50a5ce7a47b7
Implemented an odv exporter for product type 'Horizontales Schnittprofil' (issue260).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1030
diff
changeset
|
190 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
|
191 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
|
192 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
|
193 } |
50a5ce7a47b7
Implemented an odv exporter for product type 'Horizontales Schnittprofil' (issue260).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1030
diff
changeset
|
194 } |
50a5ce7a47b7
Implemented an odv exporter for product type 'Horizontales Schnittprofil' (issue260).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1030
diff
changeset
|
195 |
50a5ce7a47b7
Implemented an odv exporter for product type 'Horizontales Schnittprofil' (issue260).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1030
diff
changeset
|
196 if (header != null){ |
50a5ce7a47b7
Implemented an odv exporter for product type 'Horizontales Schnittprofil' (issue260).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1030
diff
changeset
|
197 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
|
198 } |
50a5ce7a47b7
Implemented an odv exporter for product type 'Horizontales Schnittprofil' (issue260).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1030
diff
changeset
|
199 |
50a5ce7a47b7
Implemented an odv exporter for product type 'Horizontales Schnittprofil' (issue260).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1030
diff
changeset
|
200 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
|
201 int idx = 1; |
50a5ce7a47b7
Implemented an odv exporter for product type 'Horizontales Schnittprofil' (issue260).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1030
diff
changeset
|
202 while (rows.hasNext()){ |
50a5ce7a47b7
Implemented an odv exporter for product type 'Horizontales Schnittprofil' (issue260).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1030
diff
changeset
|
203 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
|
204 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
|
205 |
50a5ce7a47b7
Implemented an odv exporter for product type 'Horizontales Schnittprofil' (issue260).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1030
diff
changeset
|
206 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
|
207 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
|
208 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
|
209 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
|
210 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
|
211 value += "_" + idx++; |
50a5ce7a47b7
Implemented an odv exporter for product type 'Horizontales Schnittprofil' (issue260).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1030
diff
changeset
|
212 } |
50a5ce7a47b7
Implemented an odv exporter for product type 'Horizontales Schnittprofil' (issue260).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1030
diff
changeset
|
213 rowList.add(value); |
50a5ce7a47b7
Implemented an odv exporter for product type 'Horizontales Schnittprofil' (issue260).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1030
diff
changeset
|
214 } |
50a5ce7a47b7
Implemented an odv exporter for product type 'Horizontales Schnittprofil' (issue260).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1030
diff
changeset
|
215 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
|
216 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
|
217 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
|
218 if (value == null){ |
50a5ce7a47b7
Implemented an odv exporter for product type 'Horizontales Schnittprofil' (issue260).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1030
diff
changeset
|
219 value = ""; |
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 rowList.add("1"); |
50a5ce7a47b7
Implemented an odv exporter for product type 'Horizontales Schnittprofil' (issue260).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1030
diff
changeset
|
223 } |
50a5ce7a47b7
Implemented an odv exporter for product type 'Horizontales Schnittprofil' (issue260).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1030
diff
changeset
|
224 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
|
225 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
|
226 } |
50a5ce7a47b7
Implemented an odv exporter for product type 'Horizontales Schnittprofil' (issue260).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1030
diff
changeset
|
227 } |
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 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
|
230 Date tmpDate = null; |
50a5ce7a47b7
Implemented an odv exporter for product type 'Horizontales Schnittprofil' (issue260).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1030
diff
changeset
|
231 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
|
232 try { |
50a5ce7a47b7
Implemented an odv exporter for product type 'Horizontales Schnittprofil' (issue260).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1030
diff
changeset
|
233 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
|
234 } |
50a5ce7a47b7
Implemented an odv exporter for product type 'Horizontales Schnittprofil' (issue260).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1030
diff
changeset
|
235 catch (ParseException pe) { |
50a5ce7a47b7
Implemented an odv exporter for product type 'Horizontales Schnittprofil' (issue260).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1030
diff
changeset
|
236 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
|
237 } |
50a5ce7a47b7
Implemented an odv exporter for product type 'Horizontales Schnittprofil' (issue260).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1030
diff
changeset
|
238 |
50a5ce7a47b7
Implemented an odv exporter for product type 'Horizontales Schnittprofil' (issue260).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1030
diff
changeset
|
239 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
|
240 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
|
241 |
50a5ce7a47b7
Implemented an odv exporter for product type 'Horizontales Schnittprofil' (issue260).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1030
diff
changeset
|
242 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
|
243 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
|
244 String type = "*"; |
50a5ce7a47b7
Implemented an odv exporter for product type 'Horizontales Schnittprofil' (issue260).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1030
diff
changeset
|
245 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
|
246 ? destFormat.format(tmpDate) |
50a5ce7a47b7
Implemented an odv exporter for product type 'Horizontales Schnittprofil' (issue260).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1030
diff
changeset
|
247 : dateTmp; |
50a5ce7a47b7
Implemented an odv exporter for product type 'Horizontales Schnittprofil' (issue260).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1030
diff
changeset
|
248 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
|
249 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
|
250 String botDepth = "0"; |
50a5ce7a47b7
Implemented an odv exporter for product type 'Horizontales Schnittprofil' (issue260).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1030
diff
changeset
|
251 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
|
252 |
50a5ce7a47b7
Implemented an odv exporter for product type 'Horizontales Schnittprofil' (issue260).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1030
diff
changeset
|
253 return new String[] { |
50a5ce7a47b7
Implemented an odv exporter for product type 'Horizontales Schnittprofil' (issue260).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1030
diff
changeset
|
254 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
|
255 }; |
50a5ce7a47b7
Implemented an odv exporter for product type 'Horizontales Schnittprofil' (issue260).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1030
diff
changeset
|
256 } |
50a5ce7a47b7
Implemented an odv exporter for product type 'Horizontales Schnittprofil' (issue260).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1030
diff
changeset
|
257 |
50a5ce7a47b7
Implemented an odv exporter for product type 'Horizontales Schnittprofil' (issue260).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1030
diff
changeset
|
258 /** |
50a5ce7a47b7
Implemented an odv exporter for product type 'Horizontales Schnittprofil' (issue260).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1030
diff
changeset
|
259 * 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
|
260 * <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
|
261 * |
50a5ce7a47b7
Implemented an odv exporter for product type 'Horizontales Schnittprofil' (issue260).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1030
diff
changeset
|
262 * @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
|
263 * @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
|
264 * |
50a5ce7a47b7
Implemented an odv exporter for product type 'Horizontales Schnittprofil' (issue260).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1030
diff
changeset
|
265 * @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
|
266 */ |
50a5ce7a47b7
Implemented an odv exporter for product type 'Horizontales Schnittprofil' (issue260).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1030
diff
changeset
|
267 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
|
268 if (values != null){ |
50a5ce7a47b7
Implemented an odv exporter for product type 'Horizontales Schnittprofil' (issue260).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1030
diff
changeset
|
269 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
|
270 while (it.hasNext()) { |
50a5ce7a47b7
Implemented an odv exporter for product type 'Horizontales Schnittprofil' (issue260).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1030
diff
changeset
|
271 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
|
272 |
50a5ce7a47b7
Implemented an odv exporter for product type 'Horizontales Schnittprofil' (issue260).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1030
diff
changeset
|
273 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
|
274 return data.getValue(); |
50a5ce7a47b7
Implemented an odv exporter for product type 'Horizontales Schnittprofil' (issue260).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1030
diff
changeset
|
275 } |
50a5ce7a47b7
Implemented an odv exporter for product type 'Horizontales Schnittprofil' (issue260).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1030
diff
changeset
|
276 } |
50a5ce7a47b7
Implemented an odv exporter for product type 'Horizontales Schnittprofil' (issue260).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1030
diff
changeset
|
277 return ""; |
50a5ce7a47b7
Implemented an odv exporter for product type 'Horizontales Schnittprofil' (issue260).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1030
diff
changeset
|
278 } |
50a5ce7a47b7
Implemented an odv exporter for product type 'Horizontales Schnittprofil' (issue260).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1030
diff
changeset
|
279 } // HorizontalProfileMeshCrossODVExporter |
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 |
528
44415ae01ddb
Fixed issue gnv/issue159
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
519
diff
changeset
|
282 public static final boolean USE_INDEX_BUFFER = |
44415ae01ddb
Fixed issue gnv/issue159
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
519
diff
changeset
|
283 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
|
284 |
352
24c21a720aa5
Added Support for "horizontale Schnittprofile"
Tim Englich <tim.englich@intevation.de>
parents:
diff
changeset
|
285 private static final long serialVersionUID = 2205958041745637263L; |
778
9a828e5a2390
Removed trailing whitespace
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
528
diff
changeset
|
286 |
352
24c21a720aa5
Added Support for "horizontale Schnittprofile"
Tim Englich <tim.englich@intevation.de>
parents:
diff
changeset
|
287 /** |
24c21a720aa5
Added Support for "horizontale Schnittprofile"
Tim Englich <tim.englich@intevation.de>
parents:
diff
changeset
|
288 * the logger, used to log exceptions and additonaly information |
24c21a720aa5
Added Support for "horizontale Schnittprofile"
Tim Englich <tim.englich@intevation.de>
parents:
diff
changeset
|
289 */ |
528
44415ae01ddb
Fixed issue gnv/issue159
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
519
diff
changeset
|
290 private static Logger log = Logger.getLogger( |
44415ae01ddb
Fixed issue gnv/issue159
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
519
diff
changeset
|
291 HorizontalProfileMeshCrossOutputState.class); |
352
24c21a720aa5
Added Support for "horizontale Schnittprofile"
Tim Englich <tim.englich@intevation.de>
parents:
diff
changeset
|
292 |
24c21a720aa5
Added Support for "horizontale Schnittprofile"
Tim Englich <tim.englich@intevation.de>
parents:
diff
changeset
|
293 private String ijkQueryID = null; |
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 * Constructor |
24c21a720aa5
Added Support for "horizontale Schnittprofile"
Tim Englich <tim.englich@intevation.de>
parents:
diff
changeset
|
297 */ |
24c21a720aa5
Added Support for "horizontale Schnittprofile"
Tim Englich <tim.englich@intevation.de>
parents:
diff
changeset
|
298 public HorizontalProfileMeshCrossOutputState() { |
24c21a720aa5
Added Support for "horizontale Schnittprofile"
Tim Englich <tim.englich@intevation.de>
parents:
diff
changeset
|
299 super(); |
24c21a720aa5
Added Support for "horizontale Schnittprofile"
Tim Englich <tim.englich@intevation.de>
parents:
diff
changeset
|
300 } |
778
9a828e5a2390
Removed trailing whitespace
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
528
diff
changeset
|
301 |
811
df6d980c5418
Added more Javadoc in state.profile.horizontal package.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
780
diff
changeset
|
302 |
352
24c21a720aa5
Added Support for "horizontale Schnittprofile"
Tim Englich <tim.englich@intevation.de>
parents:
diff
changeset
|
303 @Override |
24c21a720aa5
Added Support for "horizontale Schnittprofile"
Tim Englich <tim.englich@intevation.de>
parents:
diff
changeset
|
304 public void setup(Node configuration) { |
24c21a720aa5
Added Support for "horizontale Schnittprofile"
Tim Englich <tim.englich@intevation.de>
parents:
diff
changeset
|
305 super.setup(configuration); |
24c21a720aa5
Added Support for "horizontale Schnittprofile"
Tim Englich <tim.englich@intevation.de>
parents:
diff
changeset
|
306 this.ijkQueryID = Config.getStringXPath(configuration,"queryID-ijk"); |
778
9a828e5a2390
Removed trailing whitespace
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
528
diff
changeset
|
307 |
352
24c21a720aa5
Added Support for "horizontale Schnittprofile"
Tim Englich <tim.englich@intevation.de>
parents:
diff
changeset
|
308 } |
24c21a720aa5
Added Support for "horizontale Schnittprofile"
Tim Englich <tim.englich@intevation.de>
parents:
diff
changeset
|
309 |
365
f66088a43ecc
Added horizontal crossprofile charts to chart pallet. Fixed some bugs before interpolation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
362
diff
changeset
|
310 |
811
df6d980c5418
Added more Javadoc in state.profile.horizontal package.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
780
diff
changeset
|
311 /** |
df6d980c5418
Added more Javadoc in state.profile.horizontal package.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
780
diff
changeset
|
312 * 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
|
313 * |
df6d980c5418
Added more Javadoc in state.profile.horizontal package.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
780
diff
changeset
|
314 * @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
|
315 * @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
|
316 * @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
|
317 * @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
|
318 * @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
|
319 * @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
|
320 * @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
|
321 * @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
|
322 * @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
|
323 * 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
|
324 * @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
|
325 * 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
|
326 * @param callContext The CallContext object. |
df6d980c5418
Added more Javadoc in state.profile.horizontal package.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
780
diff
changeset
|
327 * @return a <code>HorizontalCrossProfileChart</code>. |
df6d980c5418
Added more Javadoc in state.profile.horizontal package.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
780
diff
changeset
|
328 */ |
365
f66088a43ecc
Added horizontal crossprofile charts to chart pallet. Fixed some bugs before interpolation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
362
diff
changeset
|
329 @Override |
f66088a43ecc
Added horizontal crossprofile charts to chart pallet. Fixed some bugs before interpolation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
362
diff
changeset
|
330 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
|
331 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
|
332 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
|
333 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
|
334 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
|
335 Collection dates, |
429
bed9735adf84
Finished preprocessing data for interpolation in verticalcrosssection charts.ß
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
425
diff
changeset
|
336 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
|
337 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
|
338 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
|
339 boolean linesVisible, |
439
8975de9d7483
Loop through configuration to chart generation.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
429
diff
changeset
|
340 boolean shapesVisible, |
8975de9d7483
Loop through configuration to chart generation.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
429
diff
changeset
|
341 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
|
342 ) { |
f66088a43ecc
Added horizontal crossprofile charts to chart pallet. Fixed some bugs before interpolation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
362
diff
changeset
|
343 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
|
344 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
|
345 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
|
346 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
|
347 } |
f66088a43ecc
Added horizontal crossprofile charts to chart pallet. Fixed some bugs before interpolation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
362
diff
changeset
|
348 |
f66088a43ecc
Added horizontal crossprofile charts to chart pallet. Fixed some bugs before interpolation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
362
diff
changeset
|
349 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
|
350 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
|
351 |
f66088a43ecc
Added horizontal crossprofile charts to chart pallet. Fixed some bugs before interpolation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
362
diff
changeset
|
352 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
|
353 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
|
354 chartLables, |
f66088a43ecc
Added horizontal crossprofile charts to chart pallet. Fixed some bugs before interpolation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
362
diff
changeset
|
355 theme, |
f66088a43ecc
Added horizontal crossprofile charts to chart pallet. Fixed some bugs before interpolation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
362
diff
changeset
|
356 parameters, |
f66088a43ecc
Added horizontal crossprofile charts to chart pallet. Fixed some bugs before interpolation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
362
diff
changeset
|
357 measurements, |
f66088a43ecc
Added horizontal crossprofile charts to chart pallet. Fixed some bugs before interpolation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
362
diff
changeset
|
358 dates, |
429
bed9735adf84
Finished preprocessing data for interpolation in verticalcrosssection charts.ß
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
425
diff
changeset
|
359 (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
|
360 null, |
f66088a43ecc
Added horizontal crossprofile charts to chart pallet. Fixed some bugs before interpolation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
362
diff
changeset
|
361 locale, |
f66088a43ecc
Added horizontal crossprofile charts to chart pallet. Fixed some bugs before interpolation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
362
diff
changeset
|
362 linesVisible, |
f66088a43ecc
Added horizontal crossprofile charts to chart pallet. Fixed some bugs before interpolation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
362
diff
changeset
|
363 shapesVisible |
f66088a43ecc
Added horizontal crossprofile charts to chart pallet. Fixed some bugs before interpolation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
362
diff
changeset
|
364 ); |
f66088a43ecc
Added horizontal crossprofile charts to chart pallet. Fixed some bugs before interpolation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
362
diff
changeset
|
365 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
|
366 |
f66088a43ecc
Added horizontal crossprofile charts to chart pallet. Fixed some bugs before interpolation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
362
diff
changeset
|
367 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
|
368 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
|
369 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
|
370 } |
f66088a43ecc
Added horizontal crossprofile charts to chart pallet. Fixed some bugs before interpolation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
362
diff
changeset
|
371 |
f66088a43ecc
Added horizontal crossprofile charts to chart pallet. Fixed some bugs before interpolation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
362
diff
changeset
|
372 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
|
373 } |
f66088a43ecc
Added horizontal crossprofile charts to chart pallet. Fixed some bugs before interpolation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
362
diff
changeset
|
374 |
1034
50a5ce7a47b7
Implemented an odv exporter for product type 'Horizontales Schnittprofil' (issue260).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1030
diff
changeset
|
375 |
50a5ce7a47b7
Implemented an odv exporter for product type 'Horizontales Schnittprofil' (issue260).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1030
diff
changeset
|
376 @Override |
50a5ce7a47b7
Implemented an odv exporter for product type 'Horizontales Schnittprofil' (issue260).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1030
diff
changeset
|
377 protected void createODV( |
50a5ce7a47b7
Implemented an odv exporter for product type 'Horizontales Schnittprofil' (issue260).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1030
diff
changeset
|
378 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
|
379 throws IOException, StateException { |
50a5ce7a47b7
Implemented an odv exporter for product type 'Horizontales Schnittprofil' (issue260).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1030
diff
changeset
|
380 |
50a5ce7a47b7
Implemented an odv exporter for product type 'Horizontales Schnittprofil' (issue260).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1030
diff
changeset
|
381 String [] COLUMN_HEADER = { |
50a5ce7a47b7
Implemented an odv exporter for product type 'Horizontales Schnittprofil' (issue260).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1030
diff
changeset
|
382 "Cruise", |
50a5ce7a47b7
Implemented an odv exporter for product type 'Horizontales Schnittprofil' (issue260).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1030
diff
changeset
|
383 "Station", |
50a5ce7a47b7
Implemented an odv exporter for product type 'Horizontales Schnittprofil' (issue260).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1030
diff
changeset
|
384 "Type", |
50a5ce7a47b7
Implemented an odv exporter for product type 'Horizontales Schnittprofil' (issue260).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1030
diff
changeset
|
385 "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
|
386 "Lon (°E)", |
50a5ce7a47b7
Implemented an odv exporter for product type 'Horizontales Schnittprofil' (issue260).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1030
diff
changeset
|
387 "Lat (°N)", |
50a5ce7a47b7
Implemented an odv exporter for product type 'Horizontales Schnittprofil' (issue260).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1030
diff
changeset
|
388 "Bot. Depth [m]", |
50a5ce7a47b7
Implemented an odv exporter for product type 'Horizontales Schnittprofil' (issue260).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1030
diff
changeset
|
389 "Depth [m]" |
50a5ce7a47b7
Implemented an odv exporter for product type 'Horizontales Schnittprofil' (issue260).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1030
diff
changeset
|
390 }; |
50a5ce7a47b7
Implemented an odv exporter for product type 'Horizontales Schnittprofil' (issue260).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1030
diff
changeset
|
391 |
50a5ce7a47b7
Implemented an odv exporter for product type 'Horizontales Schnittprofil' (issue260).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1030
diff
changeset
|
392 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
|
393 COLUMN_HEADER, |
50a5ce7a47b7
Implemented an odv exporter for product type 'Horizontales Schnittprofil' (issue260).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1030
diff
changeset
|
394 '\t', |
50a5ce7a47b7
Implemented an odv exporter for product type 'Horizontales Schnittprofil' (issue260).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1030
diff
changeset
|
395 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
|
396 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
|
397 "ODV", |
50a5ce7a47b7
Implemented an odv exporter for product type 'Horizontales Schnittprofil' (issue260).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1030
diff
changeset
|
398 "ISO-8859-1"); |
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 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
|
401 uuid, callContext); |
50a5ce7a47b7
Implemented an odv exporter for product type 'Horizontales Schnittprofil' (issue260).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1030
diff
changeset
|
402 |
50a5ce7a47b7
Implemented an odv exporter for product type 'Horizontales Schnittprofil' (issue260).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1030
diff
changeset
|
403 if (result == null) { |
50a5ce7a47b7
Implemented an odv exporter for product type 'Horizontales Schnittprofil' (issue260).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1030
diff
changeset
|
404 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
|
405 return; |
50a5ce7a47b7
Implemented an odv exporter for product type 'Horizontales Schnittprofil' (issue260).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1030
diff
changeset
|
406 } |
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 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
|
409 getParameters(uuid)); |
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 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
|
412 } |
50a5ce7a47b7
Implemented an odv exporter for product type 'Horizontales Schnittprofil' (issue260).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1030
diff
changeset
|
413 |
50a5ce7a47b7
Implemented an odv exporter for product type 'Horizontales Schnittprofil' (issue260).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1030
diff
changeset
|
414 |
443
da21c256a0ba
"horizontale Schnittprofile" are now configured via conf.xml
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
440
diff
changeset
|
415 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
|
416 GNVArtifactContext context = |
da21c256a0ba
"horizontale Schnittprofile" are now configured via conf.xml
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
440
diff
changeset
|
417 (GNVArtifactContext)callContext.globalContext(); |
da21c256a0ba
"horizontale Schnittprofile" are now configured via conf.xml
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
440
diff
changeset
|
418 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
|
419 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
|
420 return samples != null |
da21c256a0ba
"horizontale Schnittprofile" are now configured via conf.xml
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
440
diff
changeset
|
421 ? samples.intValue() |
da21c256a0ba
"horizontale Schnittprofile" are now configured via conf.xml
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
440
diff
changeset
|
422 : 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
|
423 } |
da21c256a0ba
"horizontale Schnittprofile" are now configured via conf.xml
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
440
diff
changeset
|
424 |
352
24c21a720aa5
Added Support for "horizontale Schnittprofile"
Tim Englich <tim.englich@intevation.de>
parents:
diff
changeset
|
425 @Override |
439
8975de9d7483
Loop through configuration to chart generation.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
429
diff
changeset
|
426 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
|
427 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
|
428 |
1030
c07d9f9a738c
Removed bugs that existed in the caching mechanism (issue264, issue268).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
856
diff
changeset
|
429 String key = getHash(uuid); |
c07d9f9a738c
Removed bugs that existed in the caching mechanism (issue264, issue268).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
856
diff
changeset
|
430 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
|
431 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
|
432 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
|
433 |
1030
c07d9f9a738c
Removed bugs that existed in the caching mechanism (issue264, issue268).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
856
diff
changeset
|
434 if (value != null) { |
c07d9f9a738c
Removed bugs that existed in the caching mechanism (issue264, issue268).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
856
diff
changeset
|
435 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
|
436 return (Collection<Result>) (value.getObjectValue()); |
352
24c21a720aa5
Added Support for "horizontale Schnittprofile"
Tim Englich <tim.englich@intevation.de>
parents:
diff
changeset
|
437 } |
24c21a720aa5
Added Support for "horizontale Schnittprofile"
Tim Englich <tim.englich@intevation.de>
parents:
diff
changeset
|
438 } |
1030
c07d9f9a738c
Removed bugs that existed in the caching mechanism (issue264, issue268).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
856
diff
changeset
|
439 |
c07d9f9a738c
Removed bugs that existed in the caching mechanism (issue264, issue268).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
856
diff
changeset
|
440 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
|
441 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
|
442 |
c07d9f9a738c
Removed bugs that existed in the caching mechanism (issue264, issue268).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
856
diff
changeset
|
443 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
|
444 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
|
445 |
c07d9f9a738c
Removed bugs that existed in the caching mechanism (issue264, issue268).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
856
diff
changeset
|
446 if (meshLine == null) { |
c07d9f9a738c
Removed bugs that existed in the caching mechanism (issue264, issue268).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
856
diff
changeset
|
447 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
|
448 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
|
449 } |
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 if (meshId == null) { |
c07d9f9a738c
Removed bugs that existed in the caching mechanism (issue264, issue268).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
856
diff
changeset
|
452 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
|
453 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
|
454 } |
c07d9f9a738c
Removed bugs that existed in the caching mechanism (issue264, issue268).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
856
diff
changeset
|
455 |
c07d9f9a738c
Removed bugs that existed in the caching mechanism (issue264, issue268).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
856
diff
changeset
|
456 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
|
457 meshLine.getValue()); |
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 (coords == null) { |
c07d9f9a738c
Removed bugs that existed in the caching mechanism (issue264, issue268).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
856
diff
changeset
|
460 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
|
461 } |
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 try { |
c07d9f9a738c
Removed bugs that existed in the caching mechanism (issue264, issue268).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
856
diff
changeset
|
464 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
|
465 ? WKTUtils.worldCoordinatesToIndex( |
c07d9f9a738c
Removed bugs that existed in the caching mechanism (issue264, issue268).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
856
diff
changeset
|
466 coords, |
c07d9f9a738c
Removed bugs that existed in the caching mechanism (issue264, issue268).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
856
diff
changeset
|
467 result, |
c07d9f9a738c
Removed bugs that existed in the caching mechanism (issue264, issue268).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
856
diff
changeset
|
468 meshId.getValue(), |
c07d9f9a738c
Removed bugs that existed in the caching mechanism (issue264, issue268).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
856
diff
changeset
|
469 ijkQueryID) |
c07d9f9a738c
Removed bugs that existed in the caching mechanism (issue264, issue268).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
856
diff
changeset
|
470 : WKTUtils.TRUE_EXPRESSION; |
c07d9f9a738c
Removed bugs that existed in the caching mechanism (issue264, issue268).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
856
diff
changeset
|
471 |
c07d9f9a738c
Removed bugs that existed in the caching mechanism (issue264, issue268).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
856
diff
changeset
|
472 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
|
473 generateFilterValuesFromInputData(), |
c07d9f9a738c
Removed bugs that existed in the caching mechanism (issue264, issue268).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
856
diff
changeset
|
474 additionWhere); |
c07d9f9a738c
Removed bugs that existed in the caching mechanism (issue264, issue268).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
856
diff
changeset
|
475 |
c07d9f9a738c
Removed bugs that existed in the caching mechanism (issue264, issue268).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
856
diff
changeset
|
476 QueryExecutor queryExecutor = QueryExecutorFactory |
c07d9f9a738c
Removed bugs that existed in the caching mechanism (issue264, issue268).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
856
diff
changeset
|
477 .getInstance() |
c07d9f9a738c
Removed bugs that existed in the caching mechanism (issue264, issue268).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
856
diff
changeset
|
478 .getQueryExecutor(); |
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 result = process( |
c07d9f9a738c
Removed bugs that existed in the caching mechanism (issue264, issue268).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
856
diff
changeset
|
481 Arrays.asList(coords), |
c07d9f9a738c
Removed bugs that existed in the caching mechanism (issue264, issue268).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
856
diff
changeset
|
482 numSamples(callContext), |
c07d9f9a738c
Removed bugs that existed in the caching mechanism (issue264, issue268).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
856
diff
changeset
|
483 queryExecutor.executeQuery( |
c07d9f9a738c
Removed bugs that existed in the caching mechanism (issue264, issue268).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
856
diff
changeset
|
484 queryID, |
c07d9f9a738c
Removed bugs that existed in the caching mechanism (issue264, issue268).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
856
diff
changeset
|
485 addedFilterValues)); |
c07d9f9a738c
Removed bugs that existed in the caching mechanism (issue264, issue268).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
856
diff
changeset
|
486 } |
c07d9f9a738c
Removed bugs that existed in the caching mechanism (issue264, issue268).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
856
diff
changeset
|
487 catch (QueryException e) { |
c07d9f9a738c
Removed bugs that existed in the caching mechanism (issue264, issue268).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
856
diff
changeset
|
488 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
|
489 } |
c07d9f9a738c
Removed bugs that existed in the caching mechanism (issue264, issue268).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
856
diff
changeset
|
490 |
c07d9f9a738c
Removed bugs that existed in the caching mechanism (issue264, issue268).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
856
diff
changeset
|
491 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
|
492 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
|
493 } |
c07d9f9a738c
Removed bugs that existed in the caching mechanism (issue264, issue268).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
856
diff
changeset
|
494 |
352
24c21a720aa5
Added Support for "horizontale Schnittprofile"
Tim Englich <tim.englich@intevation.de>
parents:
diff
changeset
|
495 return result; |
24c21a720aa5
Added Support for "horizontale Schnittprofile"
Tim Englich <tim.englich@intevation.de>
parents:
diff
changeset
|
496 } |
24c21a720aa5
Added Support for "horizontale Schnittprofile"
Tim Englich <tim.englich@intevation.de>
parents:
diff
changeset
|
497 |
365
f66088a43ecc
Added horizontal crossprofile charts to chart pallet. Fixed some bugs before interpolation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
362
diff
changeset
|
498 |
811
df6d980c5418
Added more Javadoc in state.profile.horizontal package.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
780
diff
changeset
|
499 /** |
df6d980c5418
Added more Javadoc in state.profile.horizontal package.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
780
diff
changeset
|
500 * 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
|
501 * |
df6d980c5418
Added more Javadoc in state.profile.horizontal package.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
780
diff
changeset
|
502 * @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
|
503 * for. |
df6d980c5418
Added more Javadoc in state.profile.horizontal package.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
780
diff
changeset
|
504 * @param numSamples Number of samples. |
df6d980c5418
Added more Javadoc in state.profile.horizontal package.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
780
diff
changeset
|
505 * @param input The input data. |
df6d980c5418
Added more Javadoc in state.profile.horizontal package.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
780
diff
changeset
|
506 * @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
|
507 */ |
423
2402173a1490
Moved some methods back to old place.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
420
diff
changeset
|
508 public static Collection<Result> process( |
2402173a1490
Moved some methods back to old place.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
420
diff
changeset
|
509 List<Coordinate> path, |
443
da21c256a0ba
"horizontale Schnittprofile" are now configured via conf.xml
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
440
diff
changeset
|
510 int numSamples, |
423
2402173a1490
Moved some methods back to old place.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
420
diff
changeset
|
511 Collection<Result> input |
2402173a1490
Moved some methods back to old place.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
420
diff
changeset
|
512 ) { |
443
da21c256a0ba
"horizontale Schnittprofile" are now configured via conf.xml
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
440
diff
changeset
|
513 boolean debug = log.isDebugEnabled(); |
da21c256a0ba
"horizontale Schnittprofile" are now configured via conf.xml
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
440
diff
changeset
|
514 |
da21c256a0ba
"horizontale Schnittprofile" are now configured via conf.xml
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
440
diff
changeset
|
515 if (debug) { |
da21c256a0ba
"horizontale Schnittprofile" are now configured via conf.xml
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
440
diff
changeset
|
516 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
|
517 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
|
518 } |
da21c256a0ba
"horizontale Schnittprofile" are now configured via conf.xml
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
440
diff
changeset
|
519 |
423
2402173a1490
Moved some methods back to old place.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
420
diff
changeset
|
520 ArrayList<Result> output = new ArrayList<Result>(); |
2402173a1490
Moved some methods back to old place.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
420
diff
changeset
|
521 |
2402173a1490
Moved some methods back to old place.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
420
diff
changeset
|
522 Result last = null; |
2402173a1490
Moved some methods back to old place.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
420
diff
changeset
|
523 |
2402173a1490
Moved some methods back to old place.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
420
diff
changeset
|
524 int [] diffColums = null; |
2402173a1490
Moved some methods back to old place.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
420
diff
changeset
|
525 |
2402173a1490
Moved some methods back to old place.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
420
diff
changeset
|
526 SectionHandler sectionHandler = null; |
2402173a1490
Moved some methods back to old place.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
420
diff
changeset
|
527 |
2402173a1490
Moved some methods back to old place.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
420
diff
changeset
|
528 for (Result result: input) { |
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 if (sectionHandler == 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 ResultDescriptor rd = result.getResultDescriptor(); |
2402173a1490
Moved some methods back to old place.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
420
diff
changeset
|
533 diffColums = rd.getColumnIndices(DIFF_COLUMS); |
2402173a1490
Moved some methods back to old place.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
420
diff
changeset
|
534 int columns = rd.getColumnCount(); |
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 DefaultResultDescriptor resultDescriptor = |
2402173a1490
Moved some methods back to old place.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
420
diff
changeset
|
537 new DefaultResultDescriptor(); |
2402173a1490
Moved some methods back to old place.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
420
diff
changeset
|
538 |
1034
50a5ce7a47b7
Implemented an odv exporter for product type 'Horizontales Schnittprofil' (issue260).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1030
diff
changeset
|
539 log.debug("------------------------------------------------------"); |
423
2402173a1490
Moved some methods back to old place.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
420
diff
changeset
|
540 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
|
541 String columnName = rd.getColumnName(j); |
439
8975de9d7483
Loop through configuration to chart generation.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
429
diff
changeset
|
542 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
|
543 log.debug("!!! COLUMN NAME: " + columnName); |
423
2402173a1490
Moved some methods back to old place.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
420
diff
changeset
|
544 resultDescriptor.addColumn( |
2402173a1490
Moved some methods back to old place.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
420
diff
changeset
|
545 columnName, |
2402173a1490
Moved some methods back to old place.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
420
diff
changeset
|
546 rd.getColumnClassName(j)); |
2402173a1490
Moved some methods back to old place.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
420
diff
changeset
|
547 } |
2402173a1490
Moved some methods back to old place.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
420
diff
changeset
|
548 } |
2402173a1490
Moved some methods back to old place.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
420
diff
changeset
|
549 |
2402173a1490
Moved some methods back to old place.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
420
diff
changeset
|
550 sectionHandler = new SectionHandler( |
2402173a1490
Moved some methods back to old place.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
420
diff
changeset
|
551 path, |
443
da21c256a0ba
"horizontale Schnittprofile" are now configured via conf.xml
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
440
diff
changeset
|
552 numSamples, |
423
2402173a1490
Moved some methods back to old place.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
420
diff
changeset
|
553 output, |
2402173a1490
Moved some methods back to old place.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
420
diff
changeset
|
554 resultDescriptor); |
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 sectionHandler.setPrototyp(result); |
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 |
2402173a1490
Moved some methods back to old place.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
420
diff
changeset
|
559 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
|
560 sectionHandler.finish(); |
2402173a1490
Moved some methods back to old place.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
420
diff
changeset
|
561 sectionHandler.setPrototyp(result); |
2402173a1490
Moved some methods back to old place.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
420
diff
changeset
|
562 } |
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.handle(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 last = result; |
2402173a1490
Moved some methods back to old place.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
420
diff
changeset
|
567 } |
2402173a1490
Moved some methods back to old place.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
420
diff
changeset
|
568 |
2402173a1490
Moved some methods back to old place.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
420
diff
changeset
|
569 if (sectionHandler != null) { |
2402173a1490
Moved some methods back to old place.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
420
diff
changeset
|
570 sectionHandler.finish(); |
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 |
443
da21c256a0ba
"horizontale Schnittprofile" are now configured via conf.xml
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
440
diff
changeset
|
573 if (debug) { |
da21c256a0ba
"horizontale Schnittprofile" are now configured via conf.xml
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
440
diff
changeset
|
574 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
|
575 } |
423
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 return output; |
2402173a1490
Moved some methods back to old place.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
420
diff
changeset
|
578 } |
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 |
2402173a1490
Moved some methods back to old place.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
420
diff
changeset
|
581 private static final String [] DIFF_COLUMS = { |
2402173a1490
Moved some methods back to old place.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
420
diff
changeset
|
582 "GROUP1", |
2402173a1490
Moved some methods back to old place.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
420
diff
changeset
|
583 "GROUP2", |
2402173a1490
Moved some methods back to old place.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
420
diff
changeset
|
584 "GROUP3" |
2402173a1490
Moved some methods back to old place.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
420
diff
changeset
|
585 }; |
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 private static final String [] COLUMN_BLACKLIST = { |
2402173a1490
Moved some methods back to old place.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
420
diff
changeset
|
588 "MEDIAN.MESHPOINT.JPOSITION", |
2402173a1490
Moved some methods back to old place.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
420
diff
changeset
|
589 "MEDIAN.MESHPOINT.IPOSITION" |
2402173a1490
Moved some methods back to old place.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
420
diff
changeset
|
590 }; |
2402173a1490
Moved some methods back to old place.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
420
diff
changeset
|
591 |
2402173a1490
Moved some methods back to old place.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
420
diff
changeset
|
592 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
|
593 |
2402173a1490
Moved some methods back to old place.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
420
diff
changeset
|
594 public static final class SectionHandler |
2402173a1490
Moved some methods back to old place.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
420
diff
changeset
|
595 implements Interpolation2D.Consumer |
2402173a1490
Moved some methods back to old place.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
420
diff
changeset
|
596 { |
2402173a1490
Moved some methods back to old place.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
420
diff
changeset
|
597 private ArrayList<Point2d> points; |
2402173a1490
Moved some methods back to old place.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
420
diff
changeset
|
598 private List<Coordinate> path; |
2402173a1490
Moved some methods back to old place.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
420
diff
changeset
|
599 private Collection<Result> output; |
2402173a1490
Moved some methods back to old place.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
420
diff
changeset
|
600 private Result prototyp; |
2402173a1490
Moved some methods back to old place.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
420
diff
changeset
|
601 private ResultDescriptor descriptor; |
2402173a1490
Moved some methods back to old place.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
420
diff
changeset
|
602 private boolean lastWasSuccess; |
443
da21c256a0ba
"horizontale Schnittprofile" are now configured via conf.xml
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
440
diff
changeset
|
603 private int numSamples; |
423
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 public SectionHandler() { |
2402173a1490
Moved some methods back to old place.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
420
diff
changeset
|
606 } |
2402173a1490
Moved some methods back to old place.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
420
diff
changeset
|
607 |
2402173a1490
Moved some methods back to old place.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
420
diff
changeset
|
608 public SectionHandler( |
2402173a1490
Moved some methods back to old place.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
420
diff
changeset
|
609 List<Coordinate> path, |
443
da21c256a0ba
"horizontale Schnittprofile" are now configured via conf.xml
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
440
diff
changeset
|
610 int numSamples, |
423
2402173a1490
Moved some methods back to old place.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
420
diff
changeset
|
611 Collection<Result> output, |
2402173a1490
Moved some methods back to old place.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
420
diff
changeset
|
612 ResultDescriptor descriptor |
2402173a1490
Moved some methods back to old place.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
420
diff
changeset
|
613 ) { |
2402173a1490
Moved some methods back to old place.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
420
diff
changeset
|
614 this.path = path; |
443
da21c256a0ba
"horizontale Schnittprofile" are now configured via conf.xml
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
440
diff
changeset
|
615 this.numSamples = numSamples; |
423
2402173a1490
Moved some methods back to old place.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
420
diff
changeset
|
616 this.output = output; |
2402173a1490
Moved some methods back to old place.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
420
diff
changeset
|
617 this.descriptor = descriptor; |
2402173a1490
Moved some methods back to old place.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
420
diff
changeset
|
618 points = new ArrayList<Point2d>(); |
2402173a1490
Moved some methods back to old place.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
420
diff
changeset
|
619 lastWasSuccess = true; |
2402173a1490
Moved some methods back to old place.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
420
diff
changeset
|
620 } |
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 public void finish() { |
2402173a1490
Moved some methods back to old place.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
420
diff
changeset
|
623 if (!points.isEmpty()) { |
2402173a1490
Moved some methods back to old place.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
420
diff
changeset
|
624 double distance = WKTUtils.toKM( |
2402173a1490
Moved some methods back to old place.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
420
diff
changeset
|
625 DistanceCalculator.calculateDistance(path)); |
2402173a1490
Moved some methods back to old place.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
420
diff
changeset
|
626 |
2402173a1490
Moved some methods back to old place.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
420
diff
changeset
|
627 if (distance > EPSILON) { |
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 Interpolation2D.interpolate( |
2402173a1490
Moved some methods back to old place.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
420
diff
changeset
|
630 path, |
2402173a1490
Moved some methods back to old place.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
420
diff
changeset
|
631 points, |
2402173a1490
Moved some methods back to old place.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
420
diff
changeset
|
632 0d, |
2402173a1490
Moved some methods back to old place.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
420
diff
changeset
|
633 distance, |
443
da21c256a0ba
"horizontale Schnittprofile" are now configured via conf.xml
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
440
diff
changeset
|
634 numSamples, |
423
2402173a1490
Moved some methods back to old place.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
420
diff
changeset
|
635 LinearMetrics.INSTANCE, |
2402173a1490
Moved some methods back to old place.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
420
diff
changeset
|
636 this); |
2402173a1490
Moved some methods back to old place.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
420
diff
changeset
|
637 } |
2402173a1490
Moved some methods back to old place.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
420
diff
changeset
|
638 |
2402173a1490
Moved some methods back to old place.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
420
diff
changeset
|
639 points.clear(); |
2402173a1490
Moved some methods back to old place.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
420
diff
changeset
|
640 } |
2402173a1490
Moved some methods back to old place.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
420
diff
changeset
|
641 lastWasSuccess = true; |
2402173a1490
Moved some methods back to old place.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
420
diff
changeset
|
642 } |
2402173a1490
Moved some methods back to old place.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
420
diff
changeset
|
643 |
2402173a1490
Moved some methods back to old place.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
420
diff
changeset
|
644 public void setPrototyp(Result prototyp) { |
2402173a1490
Moved some methods back to old place.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
420
diff
changeset
|
645 this.prototyp = prototyp; |
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 |
2402173a1490
Moved some methods back to old place.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
420
diff
changeset
|
648 public void handle(Result result) { |
2402173a1490
Moved some methods back to old place.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
420
diff
changeset
|
649 Coordinate coordinate = |
2402173a1490
Moved some methods back to old place.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
420
diff
changeset
|
650 WKTUtils.toCoordinate(result.getString("SHAPE")); |
2402173a1490
Moved some methods back to old place.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
420
diff
changeset
|
651 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
|
652 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
|
653 int jPos = result.getInteger("JPOSITION"); |
423
2402173a1490
Moved some methods back to old place.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
420
diff
changeset
|
654 Point2d p = new Point2d( |
2402173a1490
Moved some methods back to old place.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
420
diff
changeset
|
655 coordinate.x, |
2402173a1490
Moved some methods back to old place.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
420
diff
changeset
|
656 coordinate.y, |
2402173a1490
Moved some methods back to old place.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
420
diff
changeset
|
657 value, |
2402173a1490
Moved some methods back to old place.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
420
diff
changeset
|
658 iPos, jPos); |
2402173a1490
Moved some methods back to old place.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
420
diff
changeset
|
659 points.add(p); |
2402173a1490
Moved some methods back to old place.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
420
diff
changeset
|
660 } |
2402173a1490
Moved some methods back to old place.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
420
diff
changeset
|
661 |
2402173a1490
Moved some methods back to old place.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
420
diff
changeset
|
662 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
|
663 |
15b8e95fa8da
Horizontale Schnittprofile. Ignore invalid interpolation correctly.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
423
diff
changeset
|
664 if (!success && !lastWasSuccess) { |
15b8e95fa8da
Horizontale Schnittprofile. Ignore invalid interpolation correctly.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
423
diff
changeset
|
665 // 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
|
666 // 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
|
667 // if interpolating over a large gap. |
15b8e95fa8da
Horizontale Schnittprofile. Ignore invalid interpolation correctly.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
423
diff
changeset
|
668 return; |
15b8e95fa8da
Horizontale Schnittprofile. Ignore invalid interpolation correctly.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
423
diff
changeset
|
669 } |
15b8e95fa8da
Horizontale Schnittprofile. Ignore invalid interpolation correctly.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
423
diff
changeset
|
670 |
423
2402173a1490
Moved some methods back to old place.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
420
diff
changeset
|
671 DefaultResult result = new DefaultResult(descriptor); |
2402173a1490
Moved some methods back to old place.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
420
diff
changeset
|
672 ResultDescriptor pd = prototyp.getResultDescriptor(); |
2402173a1490
Moved some methods back to old place.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
420
diff
changeset
|
673 |
2402173a1490
Moved some methods back to old place.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
420
diff
changeset
|
674 int pcolums = pd.getColumnCount(); |
2402173a1490
Moved some methods back to old place.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
420
diff
changeset
|
675 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
|
676 String colname = pd.getColumnName(i); |
439
8975de9d7483
Loop through configuration to chart generation.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
429
diff
changeset
|
677 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
|
678 continue; |
2402173a1490
Moved some methods back to old place.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
420
diff
changeset
|
679 } |
2402173a1490
Moved some methods back to old place.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
420
diff
changeset
|
680 if (colname.equals("SHAPE")) { |
2402173a1490
Moved some methods back to old place.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
420
diff
changeset
|
681 result.addColumnValue(j, WKTUtils.toWKT(coordinate)); |
2402173a1490
Moved some methods back to old place.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
420
diff
changeset
|
682 } |
2402173a1490
Moved some methods back to old place.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
420
diff
changeset
|
683 else if (colname.equals("YORDINATE")) { |
425
15b8e95fa8da
Horizontale Schnittprofile. Ignore invalid interpolation correctly.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
423
diff
changeset
|
684 result.addColumnValue(j, success |
15b8e95fa8da
Horizontale Schnittprofile. Ignore invalid interpolation correctly.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
423
diff
changeset
|
685 ? Double.valueOf(coordinate.z) |
15b8e95fa8da
Horizontale Schnittprofile. Ignore invalid interpolation correctly.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
423
diff
changeset
|
686 : null); |
423
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 else { |
2402173a1490
Moved some methods back to old place.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
420
diff
changeset
|
689 result.addColumnValue(j, prototyp.getObject(i)); |
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 ++j; |
2402173a1490
Moved some methods back to old place.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
420
diff
changeset
|
692 } |
2402173a1490
Moved some methods back to old place.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
420
diff
changeset
|
693 output.add(result); |
2402173a1490
Moved some methods back to old place.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
420
diff
changeset
|
694 lastWasSuccess = success; |
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 } |
352
24c21a720aa5
Added Support for "horizontale Schnittprofile"
Tim Englich <tim.englich@intevation.de>
parents:
diff
changeset
|
697 } |
836
05bf8534a35a
Using unix line endings only.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
835
diff
changeset
|
698 // vim:set ts=4 sw=4 si et sta sts=4 fenc=utf8 : |