annotate artifacts/src/main/java/org/dive4elements/river/artifacts/sinfo/common/AbstractSInfoExporter.java @ 8953:c40db8e8dcae

SINFO - Flow depth development - implemented exporters
author gernotbelger
date Mon, 19 Mar 2018 14:01:21 +0100
parents a4f1ac81f26d
children 7c1611b5a59e
rev   line source
8928
791714b92b5c Basically implemented SINFO-Tkh Exports
gernotbelger
parents:
diff changeset
1 /** Copyright (C) 2017 by Bundesanstalt für Gewässerkunde
791714b92b5c Basically implemented SINFO-Tkh Exports
gernotbelger
parents:
diff changeset
2 * Software engineering by
791714b92b5c Basically implemented SINFO-Tkh Exports
gernotbelger
parents:
diff changeset
3 * Björnsen Beratende Ingenieure GmbH
791714b92b5c Basically implemented SINFO-Tkh Exports
gernotbelger
parents:
diff changeset
4 * Dr. Schumacher Ingenieurbüro für Wasser und Umwelt
791714b92b5c Basically implemented SINFO-Tkh Exports
gernotbelger
parents:
diff changeset
5 *
791714b92b5c Basically implemented SINFO-Tkh Exports
gernotbelger
parents:
diff changeset
6 * This file is Free Software under the GNU AGPL (>=v3)
791714b92b5c Basically implemented SINFO-Tkh Exports
gernotbelger
parents:
diff changeset
7 * and comes with ABSOLUTELY NO WARRANTY! Check out the
791714b92b5c Basically implemented SINFO-Tkh Exports
gernotbelger
parents:
diff changeset
8 * documentation coming with Dive4Elements River for details.
791714b92b5c Basically implemented SINFO-Tkh Exports
gernotbelger
parents:
diff changeset
9 */
791714b92b5c Basically implemented SINFO-Tkh Exports
gernotbelger
parents:
diff changeset
10 package org.dive4elements.river.artifacts.sinfo.common;
791714b92b5c Basically implemented SINFO-Tkh Exports
gernotbelger
parents:
diff changeset
11
791714b92b5c Basically implemented SINFO-Tkh Exports
gernotbelger
parents:
diff changeset
12 import java.io.OutputStream;
8946
5d5d482da3e9 Implementing SINFO - FlowDepthMinMax calculation
gernotbelger
parents: 8938
diff changeset
13 import java.text.DateFormat;
5d5d482da3e9 Implementing SINFO - FlowDepthMinMax calculation
gernotbelger
parents: 8938
diff changeset
14 import java.text.NumberFormat;
8928
791714b92b5c Basically implemented SINFO-Tkh Exports
gernotbelger
parents:
diff changeset
15 import java.util.Collection;
8946
5d5d482da3e9 Implementing SINFO - FlowDepthMinMax calculation
gernotbelger
parents: 8938
diff changeset
16 import java.util.Date;
8928
791714b92b5c Basically implemented SINFO-Tkh Exports
gernotbelger
parents:
diff changeset
17 import java.util.HashMap;
8946
5d5d482da3e9 Implementing SINFO - FlowDepthMinMax calculation
gernotbelger
parents: 8938
diff changeset
18 import java.util.Locale;
8928
791714b92b5c Basically implemented SINFO-Tkh Exports
gernotbelger
parents:
diff changeset
19 import java.util.Map;
791714b92b5c Basically implemented SINFO-Tkh Exports
gernotbelger
parents:
diff changeset
20
8946
5d5d482da3e9 Implementing SINFO - FlowDepthMinMax calculation
gernotbelger
parents: 8938
diff changeset
21 import org.apache.commons.lang.math.DoubleRange;
8928
791714b92b5c Basically implemented SINFO-Tkh Exports
gernotbelger
parents:
diff changeset
22 import org.apache.log4j.Logger;
791714b92b5c Basically implemented SINFO-Tkh Exports
gernotbelger
parents:
diff changeset
23 import org.dive4elements.artifacts.CallMeta;
791714b92b5c Basically implemented SINFO-Tkh Exports
gernotbelger
parents:
diff changeset
24 import org.dive4elements.artifacts.common.utils.Config;
8946
5d5d482da3e9 Implementing SINFO - FlowDepthMinMax calculation
gernotbelger
parents: 8938
diff changeset
25 import org.dive4elements.river.FLYS;
8928
791714b92b5c Basically implemented SINFO-Tkh Exports
gernotbelger
parents:
diff changeset
26 import org.dive4elements.river.artifacts.model.CalculationResult;
791714b92b5c Basically implemented SINFO-Tkh Exports
gernotbelger
parents:
diff changeset
27 import org.dive4elements.river.artifacts.resources.Resources;
8946
5d5d482da3e9 Implementing SINFO - FlowDepthMinMax calculation
gernotbelger
parents: 8938
diff changeset
28 import org.dive4elements.river.artifacts.sinfo.SInfoI18NStrings;
5d5d482da3e9 Implementing SINFO - FlowDepthMinMax calculation
gernotbelger
parents: 8938
diff changeset
29 import org.dive4elements.river.artifacts.sinfo.util.BedHeightInfo;
8928
791714b92b5c Basically implemented SINFO-Tkh Exports
gernotbelger
parents:
diff changeset
30 import org.dive4elements.river.artifacts.sinfo.util.MetaAndTableJRDataSource;
791714b92b5c Basically implemented SINFO-Tkh Exports
gernotbelger
parents:
diff changeset
31 import org.dive4elements.river.artifacts.sinfo.util.RiverInfo;
8946
5d5d482da3e9 Implementing SINFO - FlowDepthMinMax calculation
gernotbelger
parents: 8938
diff changeset
32 import org.dive4elements.river.artifacts.sinfo.util.WstInfo;
8928
791714b92b5c Basically implemented SINFO-Tkh Exports
gernotbelger
parents:
diff changeset
33 import org.dive4elements.river.exports.AbstractExporter;
791714b92b5c Basically implemented SINFO-Tkh Exports
gernotbelger
parents:
diff changeset
34
791714b92b5c Basically implemented SINFO-Tkh Exports
gernotbelger
parents:
diff changeset
35 import au.com.bytecode.opencsv.CSVWriter;
791714b92b5c Basically implemented SINFO-Tkh Exports
gernotbelger
parents:
diff changeset
36 import net.sf.jasperreports.engine.JRDataSource;
791714b92b5c Basically implemented SINFO-Tkh Exports
gernotbelger
parents:
diff changeset
37 import net.sf.jasperreports.engine.JRException;
791714b92b5c Basically implemented SINFO-Tkh Exports
gernotbelger
parents:
diff changeset
38 import net.sf.jasperreports.engine.JasperExportManager;
791714b92b5c Basically implemented SINFO-Tkh Exports
gernotbelger
parents:
diff changeset
39 import net.sf.jasperreports.engine.JasperFillManager;
791714b92b5c Basically implemented SINFO-Tkh Exports
gernotbelger
parents:
diff changeset
40 import net.sf.jasperreports.engine.JasperPrint;
791714b92b5c Basically implemented SINFO-Tkh Exports
gernotbelger
parents:
diff changeset
41
791714b92b5c Basically implemented SINFO-Tkh Exports
gernotbelger
parents:
diff changeset
42 /**
791714b92b5c Basically implemented SINFO-Tkh Exports
gernotbelger
parents:
diff changeset
43 * @author Gernot Belger
791714b92b5c Basically implemented SINFO-Tkh Exports
gernotbelger
parents:
diff changeset
44 */
8948
a4f1ac81f26d Work on SINFO-FlowDepthMinMax.
gernotbelger
parents: 8946
diff changeset
45 public abstract class AbstractSInfoExporter<RESULT extends AbstractSInfoCalculationResult, RESULTS extends AbstractSInfoCalculationResults<RESULT>> extends AbstractExporter {
8928
791714b92b5c Basically implemented SINFO-Tkh Exports
gernotbelger
parents:
diff changeset
46
8946
5d5d482da3e9 Implementing SINFO - FlowDepthMinMax calculation
gernotbelger
parents: 8938
diff changeset
47 private static final String CSV_META_HEADER_SOUNDING = "sinfo.export.flow_depth.csv.meta.header.sounding";
5d5d482da3e9 Implementing SINFO - FlowDepthMinMax calculation
gernotbelger
parents: 8938
diff changeset
48
5d5d482da3e9 Implementing SINFO - FlowDepthMinMax calculation
gernotbelger
parents: 8938
diff changeset
49 private static final String CSV_META_HEADER_SOUNDING_YEAR = "sinfo.export.flow_depth.csv.meta.header.sounding.year";
5d5d482da3e9 Implementing SINFO - FlowDepthMinMax calculation
gernotbelger
parents: 8938
diff changeset
50
5d5d482da3e9 Implementing SINFO - FlowDepthMinMax calculation
gernotbelger
parents: 8938
diff changeset
51 private static final String CSV_META_HEADER_SOUNDING_TYPE = "sinfo.export.flow_depth.csv.meta.header.sounding.type";
5d5d482da3e9 Implementing SINFO - FlowDepthMinMax calculation
gernotbelger
parents: 8938
diff changeset
52
5d5d482da3e9 Implementing SINFO - FlowDepthMinMax calculation
gernotbelger
parents: 8938
diff changeset
53 private static final String CSV_META_HEADER_SOUNDING_EVALUATOR = "sinfo.export.flow_depth.csv.meta.header.sounding.evaluator";
5d5d482da3e9 Implementing SINFO - FlowDepthMinMax calculation
gernotbelger
parents: 8938
diff changeset
54
5d5d482da3e9 Implementing SINFO - FlowDepthMinMax calculation
gernotbelger
parents: 8938
diff changeset
55 private static final String CSV_META_HEADER_SOUNDING_PRJ = "sinfo.export.flow_depth.csv.meta.header.sounding.prj";
5d5d482da3e9 Implementing SINFO - FlowDepthMinMax calculation
gernotbelger
parents: 8938
diff changeset
56
5d5d482da3e9 Implementing SINFO - FlowDepthMinMax calculation
gernotbelger
parents: 8938
diff changeset
57 private static final String CSV_META_HEADER_SOUNDING_ELEVATIOIN_MODEL = "sinfo.export.flow_depth.csv.meta.header.sounding.elevationmodel";
5d5d482da3e9 Implementing SINFO - FlowDepthMinMax calculation
gernotbelger
parents: 8938
diff changeset
58
5d5d482da3e9 Implementing SINFO - FlowDepthMinMax calculation
gernotbelger
parents: 8938
diff changeset
59 private static final String CSV_META_HEADER_SOUNDING_ELEVATIOIN_MODEL_ORIGINAL = "sinfo.export.flow_depth.csv.meta.header.sounding.elevationmodel.original";
5d5d482da3e9 Implementing SINFO - FlowDepthMinMax calculation
gernotbelger
parents: 8938
diff changeset
60
8928
791714b92b5c Basically implemented SINFO-Tkh Exports
gernotbelger
parents:
diff changeset
61 /** The storage that contains the current calculation result. */
791714b92b5c Basically implemented SINFO-Tkh Exports
gernotbelger
parents:
diff changeset
62 private RESULTS data = null;
791714b92b5c Basically implemented SINFO-Tkh Exports
gernotbelger
parents:
diff changeset
63
791714b92b5c Basically implemented SINFO-Tkh Exports
gernotbelger
parents:
diff changeset
64 protected abstract Logger getLog();
791714b92b5c Basically implemented SINFO-Tkh Exports
gernotbelger
parents:
diff changeset
65
791714b92b5c Basically implemented SINFO-Tkh Exports
gernotbelger
parents:
diff changeset
66 public RESULTS getData() {
791714b92b5c Basically implemented SINFO-Tkh Exports
gernotbelger
parents:
diff changeset
67 return this.data;
791714b92b5c Basically implemented SINFO-Tkh Exports
gernotbelger
parents:
diff changeset
68 }
791714b92b5c Basically implemented SINFO-Tkh Exports
gernotbelger
parents:
diff changeset
69
791714b92b5c Basically implemented SINFO-Tkh Exports
gernotbelger
parents:
diff changeset
70 @Override
791714b92b5c Basically implemented SINFO-Tkh Exports
gernotbelger
parents:
diff changeset
71 protected final void addData(final Object d) {
791714b92b5c Basically implemented SINFO-Tkh Exports
gernotbelger
parents:
diff changeset
72 /* reset */
791714b92b5c Basically implemented SINFO-Tkh Exports
gernotbelger
parents:
diff changeset
73 this.data = null;
791714b92b5c Basically implemented SINFO-Tkh Exports
gernotbelger
parents:
diff changeset
74
791714b92b5c Basically implemented SINFO-Tkh Exports
gernotbelger
parents:
diff changeset
75 if (d instanceof CalculationResult) {
791714b92b5c Basically implemented SINFO-Tkh Exports
gernotbelger
parents:
diff changeset
76
791714b92b5c Basically implemented SINFO-Tkh Exports
gernotbelger
parents:
diff changeset
77 final Object dat = ((CalculationResult) d).getData();
8938
9c02733a1b3c Work on Sinfo-tkh - exports; using same logic for wst-description as winfo
gernotbelger
parents: 8928
diff changeset
78 if (dat != null) {
9c02733a1b3c Work on Sinfo-tkh - exports; using same logic for wst-description as winfo
gernotbelger
parents: 8928
diff changeset
79 @SuppressWarnings("unchecked")
9c02733a1b3c Work on Sinfo-tkh - exports; using same logic for wst-description as winfo
gernotbelger
parents: 8928
diff changeset
80 final RESULTS result = (RESULTS) dat;
9c02733a1b3c Work on Sinfo-tkh - exports; using same logic for wst-description as winfo
gernotbelger
parents: 8928
diff changeset
81 this.data = result;
9c02733a1b3c Work on Sinfo-tkh - exports; using same logic for wst-description as winfo
gernotbelger
parents: 8928
diff changeset
82 }
8928
791714b92b5c Basically implemented SINFO-Tkh Exports
gernotbelger
parents:
diff changeset
83 }
791714b92b5c Basically implemented SINFO-Tkh Exports
gernotbelger
parents:
diff changeset
84 }
791714b92b5c Basically implemented SINFO-Tkh Exports
gernotbelger
parents:
diff changeset
85
8953
c40db8e8dcae SINFO - Flow depth development - implemented exporters
gernotbelger
parents: 8948
diff changeset
86 /**
c40db8e8dcae SINFO - Flow depth development - implemented exporters
gernotbelger
parents: 8948
diff changeset
87 * Formats header with unit and label: msg [unit] (label)
c40db8e8dcae SINFO - Flow depth development - implemented exporters
gernotbelger
parents: 8948
diff changeset
88 */
c40db8e8dcae SINFO - Flow depth development - implemented exporters
gernotbelger
parents: 8948
diff changeset
89 protected final String msgUnitLabel(final String key, final String unit, final String label) {
c40db8e8dcae SINFO - Flow depth development - implemented exporters
gernotbelger
parents: 8948
diff changeset
90 final String msg = msg(key);
c40db8e8dcae SINFO - Flow depth development - implemented exporters
gernotbelger
parents: 8948
diff changeset
91 return String.format("%s [%s] (%s)", msg, unit, label);
c40db8e8dcae SINFO - Flow depth development - implemented exporters
gernotbelger
parents: 8948
diff changeset
92 }
c40db8e8dcae SINFO - Flow depth development - implemented exporters
gernotbelger
parents: 8948
diff changeset
93
8928
791714b92b5c Basically implemented SINFO-Tkh Exports
gernotbelger
parents:
diff changeset
94 @Override
791714b92b5c Basically implemented SINFO-Tkh Exports
gernotbelger
parents:
diff changeset
95 protected final void writeCSVData(final CSVWriter writer) {
791714b92b5c Basically implemented SINFO-Tkh Exports
gernotbelger
parents:
diff changeset
96 getLog().info("writeCSVData");
791714b92b5c Basically implemented SINFO-Tkh Exports
gernotbelger
parents:
diff changeset
97
791714b92b5c Basically implemented SINFO-Tkh Exports
gernotbelger
parents:
diff changeset
98 /* fetch calculation results */
791714b92b5c Basically implemented SINFO-Tkh Exports
gernotbelger
parents:
diff changeset
99 final RESULTS results = this.data;
791714b92b5c Basically implemented SINFO-Tkh Exports
gernotbelger
parents:
diff changeset
100
791714b92b5c Basically implemented SINFO-Tkh Exports
gernotbelger
parents:
diff changeset
101 final RiverInfo river = results.getRiver();
791714b92b5c Basically implemented SINFO-Tkh Exports
gernotbelger
parents:
diff changeset
102
791714b92b5c Basically implemented SINFO-Tkh Exports
gernotbelger
parents:
diff changeset
103 /* write as csv */
8938
9c02733a1b3c Work on Sinfo-tkh - exports; using same logic for wst-description as winfo
gernotbelger
parents: 8928
diff changeset
104 writeCSVGlobalMetadata(writer, results);
9c02733a1b3c Work on Sinfo-tkh - exports; using same logic for wst-description as winfo
gernotbelger
parents: 8928
diff changeset
105 writeCSVHeader(writer, results, river);
8928
791714b92b5c Basically implemented SINFO-Tkh Exports
gernotbelger
parents:
diff changeset
106
791714b92b5c Basically implemented SINFO-Tkh Exports
gernotbelger
parents:
diff changeset
107 for (final RESULT result : results.getResults()) {
8938
9c02733a1b3c Work on Sinfo-tkh - exports; using same logic for wst-description as winfo
gernotbelger
parents: 8928
diff changeset
108 writeCSVResult(writer, results, result);
8928
791714b92b5c Basically implemented SINFO-Tkh Exports
gernotbelger
parents:
diff changeset
109 }
791714b92b5c Basically implemented SINFO-Tkh Exports
gernotbelger
parents:
diff changeset
110 }
791714b92b5c Basically implemented SINFO-Tkh Exports
gernotbelger
parents:
diff changeset
111
8938
9c02733a1b3c Work on Sinfo-tkh - exports; using same logic for wst-description as winfo
gernotbelger
parents: 8928
diff changeset
112 protected abstract void writeCSVHeader(final CSVWriter writer, final RESULTS results, final RiverInfo river);
8928
791714b92b5c Basically implemented SINFO-Tkh Exports
gernotbelger
parents:
diff changeset
113
8938
9c02733a1b3c Work on Sinfo-tkh - exports; using same logic for wst-description as winfo
gernotbelger
parents: 8928
diff changeset
114 /**
9c02733a1b3c Work on Sinfo-tkh - exports; using same logic for wst-description as winfo
gernotbelger
parents: 8928
diff changeset
115 * Add metadata that is once written to the top of the file.
9c02733a1b3c Work on Sinfo-tkh - exports; using same logic for wst-description as winfo
gernotbelger
parents: 8928
diff changeset
116 */
9c02733a1b3c Work on Sinfo-tkh - exports; using same logic for wst-description as winfo
gernotbelger
parents: 8928
diff changeset
117 protected abstract void writeCSVGlobalMetadata(final CSVWriter writer, final RESULTS results);
8928
791714b92b5c Basically implemented SINFO-Tkh Exports
gernotbelger
parents:
diff changeset
118
791714b92b5c Basically implemented SINFO-Tkh Exports
gernotbelger
parents:
diff changeset
119 protected final void writeCSVMetaEntry(final CSVWriter writer, final String message, final Object... messageArgs) {
791714b92b5c Basically implemented SINFO-Tkh Exports
gernotbelger
parents:
diff changeset
120
791714b92b5c Basically implemented SINFO-Tkh Exports
gernotbelger
parents:
diff changeset
121 final CallMeta meta = this.context.getMeta();
791714b92b5c Basically implemented SINFO-Tkh Exports
gernotbelger
parents:
diff changeset
122
791714b92b5c Basically implemented SINFO-Tkh Exports
gernotbelger
parents:
diff changeset
123 writer.writeNext(new String[] { Resources.getMsg(meta, message, message, messageArgs) });
791714b92b5c Basically implemented SINFO-Tkh Exports
gernotbelger
parents:
diff changeset
124 }
791714b92b5c Basically implemented SINFO-Tkh Exports
gernotbelger
parents:
diff changeset
125
8938
9c02733a1b3c Work on Sinfo-tkh - exports; using same logic for wst-description as winfo
gernotbelger
parents: 8928
diff changeset
126 protected final void writeCSVResult(final CSVWriter writer, final RESULTS results, final RESULT result) {
8928
791714b92b5c Basically implemented SINFO-Tkh Exports
gernotbelger
parents:
diff changeset
127
8938
9c02733a1b3c Work on Sinfo-tkh - exports; using same logic for wst-description as winfo
gernotbelger
parents: 8928
diff changeset
128 writeCSVResultMetadata(writer, results, result);
8928
791714b92b5c Basically implemented SINFO-Tkh Exports
gernotbelger
parents:
diff changeset
129
791714b92b5c Basically implemented SINFO-Tkh Exports
gernotbelger
parents:
diff changeset
130 /* nwo the value rows */
8948
a4f1ac81f26d Work on SINFO-FlowDepthMinMax.
gernotbelger
parents: 8946
diff changeset
131 final Collection<SInfoResultRow> rows = result.getRows();
a4f1ac81f26d Work on SINFO-FlowDepthMinMax.
gernotbelger
parents: 8946
diff changeset
132 for (final SInfoResultRow row : rows) {
a4f1ac81f26d Work on SINFO-FlowDepthMinMax.
gernotbelger
parents: 8946
diff changeset
133 writeCSVRow(writer, results, result, row);
8928
791714b92b5c Basically implemented SINFO-Tkh Exports
gernotbelger
parents:
diff changeset
134 }
791714b92b5c Basically implemented SINFO-Tkh Exports
gernotbelger
parents:
diff changeset
135 }
791714b92b5c Basically implemented SINFO-Tkh Exports
gernotbelger
parents:
diff changeset
136
8938
9c02733a1b3c Work on Sinfo-tkh - exports; using same logic for wst-description as winfo
gernotbelger
parents: 8928
diff changeset
137 /**
9c02733a1b3c Work on Sinfo-tkh - exports; using same logic for wst-description as winfo
gernotbelger
parents: 8928
diff changeset
138 * Add metadata that is written once per result set.
9c02733a1b3c Work on Sinfo-tkh - exports; using same logic for wst-description as winfo
gernotbelger
parents: 8928
diff changeset
139 */
9c02733a1b3c Work on Sinfo-tkh - exports; using same logic for wst-description as winfo
gernotbelger
parents: 8928
diff changeset
140 protected abstract void writeCSVResultMetadata(CSVWriter writer, RESULTS results, RESULT result);
8928
791714b92b5c Basically implemented SINFO-Tkh Exports
gernotbelger
parents:
diff changeset
141
8948
a4f1ac81f26d Work on SINFO-FlowDepthMinMax.
gernotbelger
parents: 8946
diff changeset
142 protected final void writeCSVRow(final CSVWriter writer, final RESULTS results, final RESULT result, final SInfoResultRow row) {
8928
791714b92b5c Basically implemented SINFO-Tkh Exports
gernotbelger
parents:
diff changeset
143 getLog().debug("writeCSVFlowDepthRow");
791714b92b5c Basically implemented SINFO-Tkh Exports
gernotbelger
parents:
diff changeset
144
8948
a4f1ac81f26d Work on SINFO-FlowDepthMinMax.
gernotbelger
parents: 8946
diff changeset
145 final String[] formattedRow = formatCSVRow(results, result, row);
8928
791714b92b5c Basically implemented SINFO-Tkh Exports
gernotbelger
parents:
diff changeset
146 writer.writeNext(formattedRow);
791714b92b5c Basically implemented SINFO-Tkh Exports
gernotbelger
parents:
diff changeset
147 }
791714b92b5c Basically implemented SINFO-Tkh Exports
gernotbelger
parents:
diff changeset
148
8948
a4f1ac81f26d Work on SINFO-FlowDepthMinMax.
gernotbelger
parents: 8946
diff changeset
149 protected abstract String[] formatCSVRow(RESULTS results, RESULT result, final SInfoResultRow row);
8928
791714b92b5c Basically implemented SINFO-Tkh Exports
gernotbelger
parents:
diff changeset
150
791714b92b5c Basically implemented SINFO-Tkh Exports
gernotbelger
parents:
diff changeset
151 @Override
791714b92b5c Basically implemented SINFO-Tkh Exports
gernotbelger
parents:
diff changeset
152 protected final void writePDF(final OutputStream outStream) {
791714b92b5c Basically implemented SINFO-Tkh Exports
gernotbelger
parents:
diff changeset
153 getLog().debug("write PDF");
791714b92b5c Basically implemented SINFO-Tkh Exports
gernotbelger
parents:
diff changeset
154
791714b92b5c Basically implemented SINFO-Tkh Exports
gernotbelger
parents:
diff changeset
155 final JRDataSource source = createJRData();
791714b92b5c Basically implemented SINFO-Tkh Exports
gernotbelger
parents:
diff changeset
156
791714b92b5c Basically implemented SINFO-Tkh Exports
gernotbelger
parents:
diff changeset
157 final String confPath = Config.getConfigDirectory().toString();
791714b92b5c Basically implemented SINFO-Tkh Exports
gernotbelger
parents:
diff changeset
158
791714b92b5c Basically implemented SINFO-Tkh Exports
gernotbelger
parents:
diff changeset
159 // FIXME: distinguish between with and without tkh: we need two jasper reports!
791714b92b5c Basically implemented SINFO-Tkh Exports
gernotbelger
parents:
diff changeset
160
791714b92b5c Basically implemented SINFO-Tkh Exports
gernotbelger
parents:
diff changeset
161 final Map<String, Object> parameters = new HashMap<>();
791714b92b5c Basically implemented SINFO-Tkh Exports
gernotbelger
parents:
diff changeset
162 parameters.put("ReportTitle", "Exported Data");
791714b92b5c Basically implemented SINFO-Tkh Exports
gernotbelger
parents:
diff changeset
163
791714b92b5c Basically implemented SINFO-Tkh Exports
gernotbelger
parents:
diff changeset
164 try {
791714b92b5c Basically implemented SINFO-Tkh Exports
gernotbelger
parents:
diff changeset
165 final String jasperPath = confPath + getJasperFile();
791714b92b5c Basically implemented SINFO-Tkh Exports
gernotbelger
parents:
diff changeset
166
791714b92b5c Basically implemented SINFO-Tkh Exports
gernotbelger
parents:
diff changeset
167 final JasperPrint print = JasperFillManager.fillReport(jasperPath, parameters, source);
791714b92b5c Basically implemented SINFO-Tkh Exports
gernotbelger
parents:
diff changeset
168 JasperExportManager.exportReportToPdfStream(print, outStream);
791714b92b5c Basically implemented SINFO-Tkh Exports
gernotbelger
parents:
diff changeset
169 }
791714b92b5c Basically implemented SINFO-Tkh Exports
gernotbelger
parents:
diff changeset
170 catch (final JRException je) {
791714b92b5c Basically implemented SINFO-Tkh Exports
gernotbelger
parents:
diff changeset
171 getLog().warn("Error generating PDF Report!", je);
791714b92b5c Basically implemented SINFO-Tkh Exports
gernotbelger
parents:
diff changeset
172 }
791714b92b5c Basically implemented SINFO-Tkh Exports
gernotbelger
parents:
diff changeset
173 }
791714b92b5c Basically implemented SINFO-Tkh Exports
gernotbelger
parents:
diff changeset
174
791714b92b5c Basically implemented SINFO-Tkh Exports
gernotbelger
parents:
diff changeset
175 protected abstract String getJasperFile();
791714b92b5c Basically implemented SINFO-Tkh Exports
gernotbelger
parents:
diff changeset
176
791714b92b5c Basically implemented SINFO-Tkh Exports
gernotbelger
parents:
diff changeset
177 private JRDataSource createJRData() {
791714b92b5c Basically implemented SINFO-Tkh Exports
gernotbelger
parents:
diff changeset
178
791714b92b5c Basically implemented SINFO-Tkh Exports
gernotbelger
parents:
diff changeset
179 /* fetch calculation results */
791714b92b5c Basically implemented SINFO-Tkh Exports
gernotbelger
parents:
diff changeset
180 final RESULTS results = this.data;
791714b92b5c Basically implemented SINFO-Tkh Exports
gernotbelger
parents:
diff changeset
181
791714b92b5c Basically implemented SINFO-Tkh Exports
gernotbelger
parents:
diff changeset
182 final MetaAndTableJRDataSource source = new MetaAndTableJRDataSource();
791714b92b5c Basically implemented SINFO-Tkh Exports
gernotbelger
parents:
diff changeset
183
791714b92b5c Basically implemented SINFO-Tkh Exports
gernotbelger
parents:
diff changeset
184 addJRMetaData(source, results);
791714b92b5c Basically implemented SINFO-Tkh Exports
gernotbelger
parents:
diff changeset
185
791714b92b5c Basically implemented SINFO-Tkh Exports
gernotbelger
parents:
diff changeset
186 for (final RESULT result : results.getResults()) {
8938
9c02733a1b3c Work on Sinfo-tkh - exports; using same logic for wst-description as winfo
gernotbelger
parents: 8928
diff changeset
187 addJRTableData(source, results, result);
8928
791714b92b5c Basically implemented SINFO-Tkh Exports
gernotbelger
parents:
diff changeset
188 }
791714b92b5c Basically implemented SINFO-Tkh Exports
gernotbelger
parents:
diff changeset
189
791714b92b5c Basically implemented SINFO-Tkh Exports
gernotbelger
parents:
diff changeset
190 return source;
791714b92b5c Basically implemented SINFO-Tkh Exports
gernotbelger
parents:
diff changeset
191 }
791714b92b5c Basically implemented SINFO-Tkh Exports
gernotbelger
parents:
diff changeset
192
791714b92b5c Basically implemented SINFO-Tkh Exports
gernotbelger
parents:
diff changeset
193 protected abstract void addJRMetaData(final MetaAndTableJRDataSource source, final RESULTS results);
791714b92b5c Basically implemented SINFO-Tkh Exports
gernotbelger
parents:
diff changeset
194
8938
9c02733a1b3c Work on Sinfo-tkh - exports; using same logic for wst-description as winfo
gernotbelger
parents: 8928
diff changeset
195 protected final void addJRTableData(final MetaAndTableJRDataSource source, final RESULTS results, final RESULT result) {
8928
791714b92b5c Basically implemented SINFO-Tkh Exports
gernotbelger
parents:
diff changeset
196
8948
a4f1ac81f26d Work on SINFO-FlowDepthMinMax.
gernotbelger
parents: 8946
diff changeset
197 final Collection<SInfoResultRow> rows = result.getRows();
8928
791714b92b5c Basically implemented SINFO-Tkh Exports
gernotbelger
parents:
diff changeset
198
8948
a4f1ac81f26d Work on SINFO-FlowDepthMinMax.
gernotbelger
parents: 8946
diff changeset
199 for (final SInfoResultRow row : rows) {
8928
791714b92b5c Basically implemented SINFO-Tkh Exports
gernotbelger
parents:
diff changeset
200
8938
9c02733a1b3c Work on Sinfo-tkh - exports; using same logic for wst-description as winfo
gernotbelger
parents: 8928
diff changeset
201 final String[] formattedRow = formatPDFRow(results, row);
8928
791714b92b5c Basically implemented SINFO-Tkh Exports
gernotbelger
parents:
diff changeset
202 source.addData(formattedRow);
791714b92b5c Basically implemented SINFO-Tkh Exports
gernotbelger
parents:
diff changeset
203 }
791714b92b5c Basically implemented SINFO-Tkh Exports
gernotbelger
parents:
diff changeset
204 }
791714b92b5c Basically implemented SINFO-Tkh Exports
gernotbelger
parents:
diff changeset
205
8948
a4f1ac81f26d Work on SINFO-FlowDepthMinMax.
gernotbelger
parents: 8946
diff changeset
206 protected abstract String[] formatPDFRow(RESULTS results, final SInfoResultRow row);
8946
5d5d482da3e9 Implementing SINFO - FlowDepthMinMax calculation
gernotbelger
parents: 8938
diff changeset
207
8948
a4f1ac81f26d Work on SINFO-FlowDepthMinMax.
gernotbelger
parents: 8946
diff changeset
208 protected final void writeCSVGlobalMetadataDefaults(final CSVWriter writer, final AbstractSInfoCalculationResults<?> results) {
8946
5d5d482da3e9 Implementing SINFO - FlowDepthMinMax calculation
gernotbelger
parents: 8938
diff changeset
209
5d5d482da3e9 Implementing SINFO - FlowDepthMinMax calculation
gernotbelger
parents: 8938
diff changeset
210 final String calcModeLabel = results.getCalcModeLabel();
5d5d482da3e9 Implementing SINFO - FlowDepthMinMax calculation
gernotbelger
parents: 8938
diff changeset
211 final RiverInfo river = results.getRiver();
5d5d482da3e9 Implementing SINFO - FlowDepthMinMax calculation
gernotbelger
parents: 8938
diff changeset
212 final DoubleRange calcRange = results.getCalcRange();
5d5d482da3e9 Implementing SINFO - FlowDepthMinMax calculation
gernotbelger
parents: 8938
diff changeset
213
5d5d482da3e9 Implementing SINFO - FlowDepthMinMax calculation
gernotbelger
parents: 8938
diff changeset
214 writeCSVMetaEntry(writer, SInfoI18NStrings.CSV_META_HEADER_RESULT, msg(SInfoI18NStrings.CSV_META_HEADER_RESULT_LABEL), river.getName(), calcModeLabel);
5d5d482da3e9 Implementing SINFO - FlowDepthMinMax calculation
gernotbelger
parents: 8938
diff changeset
215
5d5d482da3e9 Implementing SINFO - FlowDepthMinMax calculation
gernotbelger
parents: 8938
diff changeset
216 // "# FLYS-Version: "
5d5d482da3e9 Implementing SINFO - FlowDepthMinMax calculation
gernotbelger
parents: 8938
diff changeset
217 writeCSVMetaEntry(writer, SInfoI18NStrings.CSV_META_VERSION, msg(SInfoI18NStrings.CSV_META_VERSION_LABEL), FLYS.VERSION);
5d5d482da3e9 Implementing SINFO - FlowDepthMinMax calculation
gernotbelger
parents: 8938
diff changeset
218
5d5d482da3e9 Implementing SINFO - FlowDepthMinMax calculation
gernotbelger
parents: 8938
diff changeset
219 // "# Bearbeiter: "
5d5d482da3e9 Implementing SINFO - FlowDepthMinMax calculation
gernotbelger
parents: 8938
diff changeset
220 writeCSVMetaEntry(writer, SInfoI18NStrings.CSV_META_USER, msg(SInfoI18NStrings.CSV_META_USER_LABEL), results.getUser());
5d5d482da3e9 Implementing SINFO - FlowDepthMinMax calculation
gernotbelger
parents: 8938
diff changeset
221
5d5d482da3e9 Implementing SINFO - FlowDepthMinMax calculation
gernotbelger
parents: 8938
diff changeset
222 // "# Datum der Erstellung: "
5d5d482da3e9 Implementing SINFO - FlowDepthMinMax calculation
gernotbelger
parents: 8938
diff changeset
223 final Locale locale = Resources.getLocale(this.context.getMeta());
5d5d482da3e9 Implementing SINFO - FlowDepthMinMax calculation
gernotbelger
parents: 8938
diff changeset
224 final DateFormat df = DateFormat.getDateInstance(DateFormat.SHORT, locale);
5d5d482da3e9 Implementing SINFO - FlowDepthMinMax calculation
gernotbelger
parents: 8938
diff changeset
225 writeCSVMetaEntry(writer, SInfoI18NStrings.CSV_META_CREATION, msg(SInfoI18NStrings.CSV_META_CREATION_LABEL), df.format(new Date()));
5d5d482da3e9 Implementing SINFO - FlowDepthMinMax calculation
gernotbelger
parents: 8938
diff changeset
226
5d5d482da3e9 Implementing SINFO - FlowDepthMinMax calculation
gernotbelger
parents: 8938
diff changeset
227 // "# Gewässer: "
5d5d482da3e9 Implementing SINFO - FlowDepthMinMax calculation
gernotbelger
parents: 8938
diff changeset
228 writeCSVMetaEntry(writer, SInfoI18NStrings.CSV_META_RIVER, msg(SInfoI18NStrings.CSV_META_RIVER_LABEL), river.getName());
5d5d482da3e9 Implementing SINFO - FlowDepthMinMax calculation
gernotbelger
parents: 8938
diff changeset
229
5d5d482da3e9 Implementing SINFO - FlowDepthMinMax calculation
gernotbelger
parents: 8938
diff changeset
230 // "# Höhensystem des Flusses: "
5d5d482da3e9 Implementing SINFO - FlowDepthMinMax calculation
gernotbelger
parents: 8938
diff changeset
231 writeCSVMetaEntry(writer, SInfoI18NStrings.CSV_META_HEIGHT_UNIT_RIVER, river.getWstUnit());
5d5d482da3e9 Implementing SINFO - FlowDepthMinMax calculation
gernotbelger
parents: 8938
diff changeset
232
5d5d482da3e9 Implementing SINFO - FlowDepthMinMax calculation
gernotbelger
parents: 8938
diff changeset
233 // "# Ort/Bereich (km): "
5d5d482da3e9 Implementing SINFO - FlowDepthMinMax calculation
gernotbelger
parents: 8938
diff changeset
234 writeCSVMetaEntry(writer, SInfoI18NStrings.CSV_META_RANGE, msg(SInfoI18NStrings.CSV_META_RANGE_LABEL),
5d5d482da3e9 Implementing SINFO - FlowDepthMinMax calculation
gernotbelger
parents: 8938
diff changeset
235 getKmFormatter().format(calcRange.getMinimumDouble()), getKmFormatter().format(calcRange.getMaximumDouble()));
5d5d482da3e9 Implementing SINFO - FlowDepthMinMax calculation
gernotbelger
parents: 8938
diff changeset
236 }
5d5d482da3e9 Implementing SINFO - FlowDepthMinMax calculation
gernotbelger
parents: 8938
diff changeset
237
5d5d482da3e9 Implementing SINFO - FlowDepthMinMax calculation
gernotbelger
parents: 8938
diff changeset
238 protected final void writeCSVSoundingMetadata(final CSVWriter writer, final BedHeightInfo sounding) {
8953
c40db8e8dcae SINFO - Flow depth development - implemented exporters
gernotbelger
parents: 8948
diff changeset
239 writeCSVSoundingMetadata(writer, sounding, CSV_META_HEADER_SOUNDING);
c40db8e8dcae SINFO - Flow depth development - implemented exporters
gernotbelger
parents: 8948
diff changeset
240 }
c40db8e8dcae SINFO - Flow depth development - implemented exporters
gernotbelger
parents: 8948
diff changeset
241
c40db8e8dcae SINFO - Flow depth development - implemented exporters
gernotbelger
parents: 8948
diff changeset
242 protected final void writeCSVSoundingMetadata(final CSVWriter writer, final BedHeightInfo sounding, final String mainLabel) {
8946
5d5d482da3e9 Implementing SINFO - FlowDepthMinMax calculation
gernotbelger
parents: 8938
diff changeset
243 // "##METADATEN PEILUNG"
8953
c40db8e8dcae SINFO - Flow depth development - implemented exporters
gernotbelger
parents: 8948
diff changeset
244 writeCSVMetaEntry(writer, mainLabel);
8946
5d5d482da3e9 Implementing SINFO - FlowDepthMinMax calculation
gernotbelger
parents: 8938
diff changeset
245
5d5d482da3e9 Implementing SINFO - FlowDepthMinMax calculation
gernotbelger
parents: 8938
diff changeset
246 // "# Jahr der Peilung: "
5d5d482da3e9 Implementing SINFO - FlowDepthMinMax calculation
gernotbelger
parents: 8938
diff changeset
247 writeCSVMetaEntry(writer, CSV_META_HEADER_SOUNDING_YEAR, Integer.toString(sounding.getYear()));
5d5d482da3e9 Implementing SINFO - FlowDepthMinMax calculation
gernotbelger
parents: 8938
diff changeset
248 // "# Aufnahmeart: "
5d5d482da3e9 Implementing SINFO - FlowDepthMinMax calculation
gernotbelger
parents: 8938
diff changeset
249 writeCSVMetaEntry(writer, CSV_META_HEADER_SOUNDING_TYPE, sounding.getType());
5d5d482da3e9 Implementing SINFO - FlowDepthMinMax calculation
gernotbelger
parents: 8938
diff changeset
250 // "# Auswerter: "
5d5d482da3e9 Implementing SINFO - FlowDepthMinMax calculation
gernotbelger
parents: 8938
diff changeset
251 writeCSVMetaEntry(writer, CSV_META_HEADER_SOUNDING_EVALUATOR, sounding.getEvaluationBy());
5d5d482da3e9 Implementing SINFO - FlowDepthMinMax calculation
gernotbelger
parents: 8938
diff changeset
252 // "# Lagesystem: "
5d5d482da3e9 Implementing SINFO - FlowDepthMinMax calculation
gernotbelger
parents: 8938
diff changeset
253 writeCSVMetaEntry(writer, CSV_META_HEADER_SOUNDING_PRJ, sounding.getLocationSystem());
5d5d482da3e9 Implementing SINFO - FlowDepthMinMax calculation
gernotbelger
parents: 8938
diff changeset
254 // "# Höhensystem: "
5d5d482da3e9 Implementing SINFO - FlowDepthMinMax calculation
gernotbelger
parents: 8938
diff changeset
255 writeCSVMetaEntry(writer, CSV_META_HEADER_SOUNDING_ELEVATIOIN_MODEL, sounding.getCurElevationModelUnit());
5d5d482da3e9 Implementing SINFO - FlowDepthMinMax calculation
gernotbelger
parents: 8938
diff changeset
256 // "# ursprüngliches Höhensystem: "
5d5d482da3e9 Implementing SINFO - FlowDepthMinMax calculation
gernotbelger
parents: 8938
diff changeset
257 writeCSVMetaEntry(writer, CSV_META_HEADER_SOUNDING_ELEVATIOIN_MODEL_ORIGINAL, sounding.getOldElevationModelUnit());
5d5d482da3e9 Implementing SINFO - FlowDepthMinMax calculation
gernotbelger
parents: 8938
diff changeset
258 }
5d5d482da3e9 Implementing SINFO - FlowDepthMinMax calculation
gernotbelger
parents: 8938
diff changeset
259
5d5d482da3e9 Implementing SINFO - FlowDepthMinMax calculation
gernotbelger
parents: 8938
diff changeset
260 protected final void writeCSVWaterlevelMetadata(final CSVWriter writer, final WstInfo wst) {
8953
c40db8e8dcae SINFO - Flow depth development - implemented exporters
gernotbelger
parents: 8948
diff changeset
261 writeCSVWaterlevelMetadata(writer, wst, SInfoI18NStrings.CSV_META_HEADER_WATERLEVEL);
c40db8e8dcae SINFO - Flow depth development - implemented exporters
gernotbelger
parents: 8948
diff changeset
262 }
c40db8e8dcae SINFO - Flow depth development - implemented exporters
gernotbelger
parents: 8948
diff changeset
263
c40db8e8dcae SINFO - Flow depth development - implemented exporters
gernotbelger
parents: 8948
diff changeset
264 protected final void writeCSVWaterlevelMetadata(final CSVWriter writer, final WstInfo wst, final String mainLabel) {
8946
5d5d482da3e9 Implementing SINFO - FlowDepthMinMax calculation
gernotbelger
parents: 8938
diff changeset
265 // "##METADATEN WASSERSPIEGELLAGE"
8953
c40db8e8dcae SINFO - Flow depth development - implemented exporters
gernotbelger
parents: 8948
diff changeset
266 writeCSVMetaEntry(writer, mainLabel);
8946
5d5d482da3e9 Implementing SINFO - FlowDepthMinMax calculation
gernotbelger
parents: 8938
diff changeset
267
5d5d482da3e9 Implementing SINFO - FlowDepthMinMax calculation
gernotbelger
parents: 8938
diff changeset
268 // "# Bezeichnung der Wasserspiegellage: "
5d5d482da3e9 Implementing SINFO - FlowDepthMinMax calculation
gernotbelger
parents: 8938
diff changeset
269 writeCSVMetaEntry(writer, SInfoI18NStrings.CSV_META_HEADER_WATERLEVEL_NAME, wst.getLabel());
5d5d482da3e9 Implementing SINFO - FlowDepthMinMax calculation
gernotbelger
parents: 8938
diff changeset
270
5d5d482da3e9 Implementing SINFO - FlowDepthMinMax calculation
gernotbelger
parents: 8938
diff changeset
271 // "# Bezugspegel: "
5d5d482da3e9 Implementing SINFO - FlowDepthMinMax calculation
gernotbelger
parents: 8938
diff changeset
272 writeCSVMetaEntry(writer, SInfoI18NStrings.CSV_META_HEADER_WATERLEVEL_GAUGE, wst.getGauge());
5d5d482da3e9 Implementing SINFO - FlowDepthMinMax calculation
gernotbelger
parents: 8938
diff changeset
273
5d5d482da3e9 Implementing SINFO - FlowDepthMinMax calculation
gernotbelger
parents: 8938
diff changeset
274 // "# Jahr/Zeitraum der Wasserspiegellage: "
5d5d482da3e9 Implementing SINFO - FlowDepthMinMax calculation
gernotbelger
parents: 8938
diff changeset
275 final int year = wst.getYear();
5d5d482da3e9 Implementing SINFO - FlowDepthMinMax calculation
gernotbelger
parents: 8938
diff changeset
276 if (year > 0)
5d5d482da3e9 Implementing SINFO - FlowDepthMinMax calculation
gernotbelger
parents: 8938
diff changeset
277 writeCSVMetaEntry(writer, SInfoI18NStrings.CSV_META_HEADER_WATERLEVEL_YEAR, Integer.toString(year));
5d5d482da3e9 Implementing SINFO - FlowDepthMinMax calculation
gernotbelger
parents: 8938
diff changeset
278 }
5d5d482da3e9 Implementing SINFO - FlowDepthMinMax calculation
gernotbelger
parents: 8938
diff changeset
279
8948
a4f1ac81f26d Work on SINFO-FlowDepthMinMax.
gernotbelger
parents: 8946
diff changeset
280 protected final void addJRMetaDataDefaults(final MetaAndTableJRDataSource source, final AbstractSInfoCalculationResults<?> results) {
8946
5d5d482da3e9 Implementing SINFO - FlowDepthMinMax calculation
gernotbelger
parents: 8938
diff changeset
281
5d5d482da3e9 Implementing SINFO - FlowDepthMinMax calculation
gernotbelger
parents: 8938
diff changeset
282 final RiverInfo river = results.getRiver();
5d5d482da3e9 Implementing SINFO - FlowDepthMinMax calculation
gernotbelger
parents: 8938
diff changeset
283 final String wstUnitName = river.getWstUnit();
5d5d482da3e9 Implementing SINFO - FlowDepthMinMax calculation
gernotbelger
parents: 8938
diff changeset
284
5d5d482da3e9 Implementing SINFO - FlowDepthMinMax calculation
gernotbelger
parents: 8938
diff changeset
285 source.addMetaData("header", msg(SInfoI18NStrings.CSV_META_HEADER_RESULT_LABEL));
5d5d482da3e9 Implementing SINFO - FlowDepthMinMax calculation
gernotbelger
parents: 8938
diff changeset
286 source.addMetaData("calcMode", results.getCalcModeLabel());
5d5d482da3e9 Implementing SINFO - FlowDepthMinMax calculation
gernotbelger
parents: 8938
diff changeset
287
5d5d482da3e9 Implementing SINFO - FlowDepthMinMax calculation
gernotbelger
parents: 8938
diff changeset
288 source.addMetaData("version_label", msg(SInfoI18NStrings.CSV_META_VERSION_LABEL));
5d5d482da3e9 Implementing SINFO - FlowDepthMinMax calculation
gernotbelger
parents: 8938
diff changeset
289 source.addMetaData("version", FLYS.VERSION);
5d5d482da3e9 Implementing SINFO - FlowDepthMinMax calculation
gernotbelger
parents: 8938
diff changeset
290
5d5d482da3e9 Implementing SINFO - FlowDepthMinMax calculation
gernotbelger
parents: 8938
diff changeset
291 source.addMetaData("user_label", msg(SInfoI18NStrings.CSV_META_USER_LABEL));
5d5d482da3e9 Implementing SINFO - FlowDepthMinMax calculation
gernotbelger
parents: 8938
diff changeset
292 source.addMetaData("user", results.getUser());
5d5d482da3e9 Implementing SINFO - FlowDepthMinMax calculation
gernotbelger
parents: 8938
diff changeset
293
5d5d482da3e9 Implementing SINFO - FlowDepthMinMax calculation
gernotbelger
parents: 8938
diff changeset
294 final Locale locale = Resources.getLocale(this.context.getMeta());
5d5d482da3e9 Implementing SINFO - FlowDepthMinMax calculation
gernotbelger
parents: 8938
diff changeset
295 final DateFormat df = DateFormat.getDateInstance(DateFormat.SHORT, locale);
5d5d482da3e9 Implementing SINFO - FlowDepthMinMax calculation
gernotbelger
parents: 8938
diff changeset
296 source.addMetaData("date_label", msg(SInfoI18NStrings.CSV_META_CREATION_LABEL));
5d5d482da3e9 Implementing SINFO - FlowDepthMinMax calculation
gernotbelger
parents: 8938
diff changeset
297 source.addMetaData("date", df.format(new Date()));
5d5d482da3e9 Implementing SINFO - FlowDepthMinMax calculation
gernotbelger
parents: 8938
diff changeset
298
5d5d482da3e9 Implementing SINFO - FlowDepthMinMax calculation
gernotbelger
parents: 8938
diff changeset
299 source.addMetaData("river_label", msg(SInfoI18NStrings.CSV_META_RIVER_LABEL));
5d5d482da3e9 Implementing SINFO - FlowDepthMinMax calculation
gernotbelger
parents: 8938
diff changeset
300 source.addMetaData("river", river.getName());
5d5d482da3e9 Implementing SINFO - FlowDepthMinMax calculation
gernotbelger
parents: 8938
diff changeset
301 source.addMetaData("river_unit", wstUnitName);
5d5d482da3e9 Implementing SINFO - FlowDepthMinMax calculation
gernotbelger
parents: 8938
diff changeset
302
5d5d482da3e9 Implementing SINFO - FlowDepthMinMax calculation
gernotbelger
parents: 8938
diff changeset
303 final DoubleRange calcRange = results.getCalcRange();
5d5d482da3e9 Implementing SINFO - FlowDepthMinMax calculation
gernotbelger
parents: 8938
diff changeset
304 final NumberFormat kmFormatter = getKmFormatter();
5d5d482da3e9 Implementing SINFO - FlowDepthMinMax calculation
gernotbelger
parents: 8938
diff changeset
305 final String rangeValue = String.format("%s - %s", kmFormatter.format(calcRange.getMinimumDouble()), kmFormatter.format(calcRange.getMaximumDouble()));
5d5d482da3e9 Implementing SINFO - FlowDepthMinMax calculation
gernotbelger
parents: 8938
diff changeset
306 source.addMetaData("range_label", msg(SInfoI18NStrings.CSV_META_RANGE_LABEL));
5d5d482da3e9 Implementing SINFO - FlowDepthMinMax calculation
gernotbelger
parents: 8938
diff changeset
307 source.addMetaData("range", rangeValue);
5d5d482da3e9 Implementing SINFO - FlowDepthMinMax calculation
gernotbelger
parents: 8938
diff changeset
308 }
8928
791714b92b5c Basically implemented SINFO-Tkh Exports
gernotbelger
parents:
diff changeset
309 }

http://dive4elements.wald.intevation.org