annotate gnv-artifacts/src/main/java/de/intevation/gnv/state/profile/horizontal/HorizontalProfileMeshCrossOutputState.java @ 1115:f953c9a559d8

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

http://dive4elements.wald.intevation.org