annotate gnv-artifacts/src/main/java/de/intevation/gnv/state/profile/horizontal/HorizontalProfileMeshCrossOutputState.java @ 1034:50a5ce7a47b7

Implemented an odv exporter for product type 'Horizontales Schnittprofil' (issue260). gnv-artifacts/trunk@1082 c6561f87-3c4e-4783-a992-168aeb5c3f6f
author Ingo Weinzierl <ingo.weinzierl@intevation.de>
date Mon, 10 May 2010 10:29:55 +0000
parents c07d9f9a738c
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 :

http://dive4elements.wald.intevation.org