annotate artifacts/src/main/java/org/dive4elements/river/artifacts/common/ExportContextCSV.java @ 9150:23945061daec

gigantic refactoring: exporter, result, results to support multiple jaspers -> collisions
author gernotbelger
date Thu, 14 Jun 2018 16:56:31 +0200
parents
children cd24db77f044
rev   line source
9150
23945061daec gigantic refactoring: exporter, result, results
gernotbelger
parents:
diff changeset
1 /** Copyright (C) 2017 by Bundesanstalt für Gewässerkunde
23945061daec gigantic refactoring: exporter, result, results
gernotbelger
parents:
diff changeset
2 * Software engineering by
23945061daec gigantic refactoring: exporter, result, results
gernotbelger
parents:
diff changeset
3 * Björnsen Beratende Ingenieure GmbH
23945061daec gigantic refactoring: exporter, result, results
gernotbelger
parents:
diff changeset
4 * Dr. Schumacher Ingenieurbüro für Wasser und Umwelt
23945061daec gigantic refactoring: exporter, result, results
gernotbelger
parents:
diff changeset
5 *
23945061daec gigantic refactoring: exporter, result, results
gernotbelger
parents:
diff changeset
6 * This file is Free Software under the GNU AGPL (>=v3)
23945061daec gigantic refactoring: exporter, result, results
gernotbelger
parents:
diff changeset
7 * and comes with ABSOLUTELY NO WARRANTY! Check out the
23945061daec gigantic refactoring: exporter, result, results
gernotbelger
parents:
diff changeset
8 * documentation coming with Dive4Elements River for details.
23945061daec gigantic refactoring: exporter, result, results
gernotbelger
parents:
diff changeset
9 */
23945061daec gigantic refactoring: exporter, result, results
gernotbelger
parents:
diff changeset
10 package org.dive4elements.river.artifacts.common;
23945061daec gigantic refactoring: exporter, result, results
gernotbelger
parents:
diff changeset
11
23945061daec gigantic refactoring: exporter, result, results
gernotbelger
parents:
diff changeset
12 import java.text.DateFormat;
23945061daec gigantic refactoring: exporter, result, results
gernotbelger
parents:
diff changeset
13 import java.text.NumberFormat;
23945061daec gigantic refactoring: exporter, result, results
gernotbelger
parents:
diff changeset
14 import java.util.Date;
23945061daec gigantic refactoring: exporter, result, results
gernotbelger
parents:
diff changeset
15 import java.util.Locale;
23945061daec gigantic refactoring: exporter, result, results
gernotbelger
parents:
diff changeset
16
23945061daec gigantic refactoring: exporter, result, results
gernotbelger
parents:
diff changeset
17 import org.apache.commons.lang.math.DoubleRange;
23945061daec gigantic refactoring: exporter, result, results
gernotbelger
parents:
diff changeset
18 import org.dive4elements.artifacts.CallContext;
23945061daec gigantic refactoring: exporter, result, results
gernotbelger
parents:
diff changeset
19 import org.dive4elements.artifacts.CallMeta;
23945061daec gigantic refactoring: exporter, result, results
gernotbelger
parents:
diff changeset
20 import org.dive4elements.river.FLYS;
23945061daec gigantic refactoring: exporter, result, results
gernotbelger
parents:
diff changeset
21 import org.dive4elements.river.artifacts.resources.Resources;
23945061daec gigantic refactoring: exporter, result, results
gernotbelger
parents:
diff changeset
22 import org.dive4elements.river.artifacts.sinfo.common.SInfoI18NStrings;
23945061daec gigantic refactoring: exporter, result, results
gernotbelger
parents:
diff changeset
23 import org.dive4elements.river.artifacts.sinfo.common.SInfoResultType;
23945061daec gigantic refactoring: exporter, result, results
gernotbelger
parents:
diff changeset
24 import org.dive4elements.river.artifacts.sinfo.util.BedHeightInfo;
23945061daec gigantic refactoring: exporter, result, results
gernotbelger
parents:
diff changeset
25 import org.dive4elements.river.artifacts.sinfo.util.RiverInfo;
23945061daec gigantic refactoring: exporter, result, results
gernotbelger
parents:
diff changeset
26 import org.dive4elements.river.artifacts.sinfo.util.WstInfo;
23945061daec gigantic refactoring: exporter, result, results
gernotbelger
parents:
diff changeset
27 import org.dive4elements.river.utils.Formatter;
23945061daec gigantic refactoring: exporter, result, results
gernotbelger
parents:
diff changeset
28
23945061daec gigantic refactoring: exporter, result, results
gernotbelger
parents:
diff changeset
29 import au.com.bytecode.opencsv.CSVWriter;
23945061daec gigantic refactoring: exporter, result, results
gernotbelger
parents:
diff changeset
30
23945061daec gigantic refactoring: exporter, result, results
gernotbelger
parents:
diff changeset
31 /**
23945061daec gigantic refactoring: exporter, result, results
gernotbelger
parents:
diff changeset
32 * @author Domenico Nardi Tironi
23945061daec gigantic refactoring: exporter, result, results
gernotbelger
parents:
diff changeset
33 *
23945061daec gigantic refactoring: exporter, result, results
gernotbelger
parents:
diff changeset
34 */
23945061daec gigantic refactoring: exporter, result, results
gernotbelger
parents:
diff changeset
35 public final class ExportContextCSV {
23945061daec gigantic refactoring: exporter, result, results
gernotbelger
parents:
diff changeset
36
23945061daec gigantic refactoring: exporter, result, results
gernotbelger
parents:
diff changeset
37 private static final String CSV_META_HEADER_EVALUATOR = "sinfo.export.flow_depth.csv.meta.header.sounding.evaluator";
23945061daec gigantic refactoring: exporter, result, results
gernotbelger
parents:
diff changeset
38
23945061daec gigantic refactoring: exporter, result, results
gernotbelger
parents:
diff changeset
39 private static final String CSV_META_HEADER_SOUNDING = "sinfo.export.flow_depth.csv.meta.header.sounding";
23945061daec gigantic refactoring: exporter, result, results
gernotbelger
parents:
diff changeset
40
23945061daec gigantic refactoring: exporter, result, results
gernotbelger
parents:
diff changeset
41 private static final String CSV_META_HEADER_SOUNDING_YEAR = "sinfo.export.flow_depth.csv.meta.header.sounding.year";
23945061daec gigantic refactoring: exporter, result, results
gernotbelger
parents:
diff changeset
42
23945061daec gigantic refactoring: exporter, result, results
gernotbelger
parents:
diff changeset
43 private static final String CSV_META_HEADER_SOUNDING_TYPE = "sinfo.export.flow_depth.csv.meta.header.sounding.type";
23945061daec gigantic refactoring: exporter, result, results
gernotbelger
parents:
diff changeset
44
23945061daec gigantic refactoring: exporter, result, results
gernotbelger
parents:
diff changeset
45 private static final String CSV_META_HEADER_SOUNDING_PRJ = "sinfo.export.flow_depth.csv.meta.header.sounding.prj";
23945061daec gigantic refactoring: exporter, result, results
gernotbelger
parents:
diff changeset
46
23945061daec gigantic refactoring: exporter, result, results
gernotbelger
parents:
diff changeset
47 private static final String CSV_META_HEADER_SOUNDING_ELEVATIOIN_MODEL = "sinfo.export.flow_depth.csv.meta.header.sounding.elevationmodel";
23945061daec gigantic refactoring: exporter, result, results
gernotbelger
parents:
diff changeset
48
23945061daec gigantic refactoring: exporter, result, results
gernotbelger
parents:
diff changeset
49 private static final String CSV_META_HEADER_SOUNDING_ELEVATIOIN_MODEL_ORIGINAL = "sinfo.export.flow_depth.csv.meta.header.sounding.elevationmodel.original";
23945061daec gigantic refactoring: exporter, result, results
gernotbelger
parents:
diff changeset
50
23945061daec gigantic refactoring: exporter, result, results
gernotbelger
parents:
diff changeset
51 private static NumberFormat qFormat = null;
23945061daec gigantic refactoring: exporter, result, results
gernotbelger
parents:
diff changeset
52
23945061daec gigantic refactoring: exporter, result, results
gernotbelger
parents:
diff changeset
53 private static NumberFormat flowDepthFormat = null;
23945061daec gigantic refactoring: exporter, result, results
gernotbelger
parents:
diff changeset
54
23945061daec gigantic refactoring: exporter, result, results
gernotbelger
parents:
diff changeset
55 private NumberFormat kmFormat;
23945061daec gigantic refactoring: exporter, result, results
gernotbelger
parents:
diff changeset
56
23945061daec gigantic refactoring: exporter, result, results
gernotbelger
parents:
diff changeset
57 /** The CallContext object. */
23945061daec gigantic refactoring: exporter, result, results
gernotbelger
parents:
diff changeset
58 private final CallContext context;
23945061daec gigantic refactoring: exporter, result, results
gernotbelger
parents:
diff changeset
59
23945061daec gigantic refactoring: exporter, result, results
gernotbelger
parents:
diff changeset
60 private final CSVWriter writer;
23945061daec gigantic refactoring: exporter, result, results
gernotbelger
parents:
diff changeset
61
23945061daec gigantic refactoring: exporter, result, results
gernotbelger
parents:
diff changeset
62 public ExportContextCSV(final CallContext context, final CSVWriter writer) {
23945061daec gigantic refactoring: exporter, result, results
gernotbelger
parents:
diff changeset
63 this.context = context;
23945061daec gigantic refactoring: exporter, result, results
gernotbelger
parents:
diff changeset
64 this.writer = writer;
23945061daec gigantic refactoring: exporter, result, results
gernotbelger
parents:
diff changeset
65 }
23945061daec gigantic refactoring: exporter, result, results
gernotbelger
parents:
diff changeset
66
23945061daec gigantic refactoring: exporter, result, results
gernotbelger
parents:
diff changeset
67 private String msg(final String key) {
23945061daec gigantic refactoring: exporter, result, results
gernotbelger
parents:
diff changeset
68 return Resources.getMsg(this.context.getMeta(), key, key);
23945061daec gigantic refactoring: exporter, result, results
gernotbelger
parents:
diff changeset
69 }
23945061daec gigantic refactoring: exporter, result, results
gernotbelger
parents:
diff changeset
70
23945061daec gigantic refactoring: exporter, result, results
gernotbelger
parents:
diff changeset
71 public String msg(final String key, final Object... args) {
23945061daec gigantic refactoring: exporter, result, results
gernotbelger
parents:
diff changeset
72 return Resources.getMsg(this.context.getMeta(), key, key, args);
23945061daec gigantic refactoring: exporter, result, results
gernotbelger
parents:
diff changeset
73 }
23945061daec gigantic refactoring: exporter, result, results
gernotbelger
parents:
diff changeset
74
23945061daec gigantic refactoring: exporter, result, results
gernotbelger
parents:
diff changeset
75 public final void writeCSVMetaEntry(final String message, final Object... messageArgs) {
23945061daec gigantic refactoring: exporter, result, results
gernotbelger
parents:
diff changeset
76
23945061daec gigantic refactoring: exporter, result, results
gernotbelger
parents:
diff changeset
77 final CallMeta meta = this.context.getMeta();
23945061daec gigantic refactoring: exporter, result, results
gernotbelger
parents:
diff changeset
78
23945061daec gigantic refactoring: exporter, result, results
gernotbelger
parents:
diff changeset
79 this.writer.writeNext(new String[] { Resources.getMsg(meta, message, message, messageArgs) });
23945061daec gigantic refactoring: exporter, result, results
gernotbelger
parents:
diff changeset
80 }
23945061daec gigantic refactoring: exporter, result, results
gernotbelger
parents:
diff changeset
81
23945061daec gigantic refactoring: exporter, result, results
gernotbelger
parents:
diff changeset
82 public void writeBlankLine() {
23945061daec gigantic refactoring: exporter, result, results
gernotbelger
parents:
diff changeset
83 writeCSVLine(new String[] { "" });
23945061daec gigantic refactoring: exporter, result, results
gernotbelger
parents:
diff changeset
84
23945061daec gigantic refactoring: exporter, result, results
gernotbelger
parents:
diff changeset
85 }
23945061daec gigantic refactoring: exporter, result, results
gernotbelger
parents:
diff changeset
86
23945061daec gigantic refactoring: exporter, result, results
gernotbelger
parents:
diff changeset
87 // *** CUSTOM STUFF that is used multiple times ***///
23945061daec gigantic refactoring: exporter, result, results
gernotbelger
parents:
diff changeset
88
23945061daec gigantic refactoring: exporter, result, results
gernotbelger
parents:
diff changeset
89 public final void writeCSVSoundingMetadata2(final BedHeightInfo sounding, final String mainLabel) {
23945061daec gigantic refactoring: exporter, result, results
gernotbelger
parents:
diff changeset
90 // "##METADATEN PEILUNG"
23945061daec gigantic refactoring: exporter, result, results
gernotbelger
parents:
diff changeset
91 writeCSVMetaEntry(mainLabel);
23945061daec gigantic refactoring: exporter, result, results
gernotbelger
parents:
diff changeset
92
23945061daec gigantic refactoring: exporter, result, results
gernotbelger
parents:
diff changeset
93 // "# Jahr der Peilung: "
23945061daec gigantic refactoring: exporter, result, results
gernotbelger
parents:
diff changeset
94 writeCSVMetaEntry(CSV_META_HEADER_SOUNDING_YEAR, Integer.toString(sounding.getYear()));
23945061daec gigantic refactoring: exporter, result, results
gernotbelger
parents:
diff changeset
95 // "# Aufnahmeart: "
23945061daec gigantic refactoring: exporter, result, results
gernotbelger
parents:
diff changeset
96 writeCSVMetaEntry(CSV_META_HEADER_SOUNDING_TYPE, sounding.getType());
23945061daec gigantic refactoring: exporter, result, results
gernotbelger
parents:
diff changeset
97 // "# Auswerter: "
23945061daec gigantic refactoring: exporter, result, results
gernotbelger
parents:
diff changeset
98 writeCSVMetaEntry(CSV_META_HEADER_EVALUATOR, sounding.getEvaluationBy());
23945061daec gigantic refactoring: exporter, result, results
gernotbelger
parents:
diff changeset
99 // "# Lagesystem: "
23945061daec gigantic refactoring: exporter, result, results
gernotbelger
parents:
diff changeset
100 writeCSVMetaEntry(CSV_META_HEADER_SOUNDING_PRJ, sounding.getLocationSystem());
23945061daec gigantic refactoring: exporter, result, results
gernotbelger
parents:
diff changeset
101 // "# Höhensystem: "
23945061daec gigantic refactoring: exporter, result, results
gernotbelger
parents:
diff changeset
102 writeCSVMetaEntry(CSV_META_HEADER_SOUNDING_ELEVATIOIN_MODEL, sounding.getCurElevationModelUnit());
23945061daec gigantic refactoring: exporter, result, results
gernotbelger
parents:
diff changeset
103 // "# ursprüngliches Höhensystem: "
23945061daec gigantic refactoring: exporter, result, results
gernotbelger
parents:
diff changeset
104 writeCSVMetaEntry(CSV_META_HEADER_SOUNDING_ELEVATIOIN_MODEL_ORIGINAL, sounding.getOldElevationModelUnit());
23945061daec gigantic refactoring: exporter, result, results
gernotbelger
parents:
diff changeset
105 }
23945061daec gigantic refactoring: exporter, result, results
gernotbelger
parents:
diff changeset
106
23945061daec gigantic refactoring: exporter, result, results
gernotbelger
parents:
diff changeset
107 public final void writeCSVSoundingMetadata(final BedHeightInfo sounding) {
23945061daec gigantic refactoring: exporter, result, results
gernotbelger
parents:
diff changeset
108 // "##METADATEN PEILUNG"
23945061daec gigantic refactoring: exporter, result, results
gernotbelger
parents:
diff changeset
109 writeCSVMetaEntry(CSV_META_HEADER_SOUNDING);
23945061daec gigantic refactoring: exporter, result, results
gernotbelger
parents:
diff changeset
110
23945061daec gigantic refactoring: exporter, result, results
gernotbelger
parents:
diff changeset
111 }
23945061daec gigantic refactoring: exporter, result, results
gernotbelger
parents:
diff changeset
112
23945061daec gigantic refactoring: exporter, result, results
gernotbelger
parents:
diff changeset
113 public void writeCSVLine(final String[] line) {
23945061daec gigantic refactoring: exporter, result, results
gernotbelger
parents:
diff changeset
114 this.writer.writeNext(line);
23945061daec gigantic refactoring: exporter, result, results
gernotbelger
parents:
diff changeset
115 }
23945061daec gigantic refactoring: exporter, result, results
gernotbelger
parents:
diff changeset
116
23945061daec gigantic refactoring: exporter, result, results
gernotbelger
parents:
diff changeset
117 public String formatCsvHeader(final IResultType type) {
23945061daec gigantic refactoring: exporter, result, results
gernotbelger
parents:
diff changeset
118 return msg(type.getCsvHeader());
23945061daec gigantic refactoring: exporter, result, results
gernotbelger
parents:
diff changeset
119 }
23945061daec gigantic refactoring: exporter, result, results
gernotbelger
parents:
diff changeset
120
23945061daec gigantic refactoring: exporter, result, results
gernotbelger
parents:
diff changeset
121 public String formatRowValue(final ResultRow row, final IResultType type) {
23945061daec gigantic refactoring: exporter, result, results
gernotbelger
parents:
diff changeset
122 return row.exportValue(this.context, type);
23945061daec gigantic refactoring: exporter, result, results
gernotbelger
parents:
diff changeset
123 }
23945061daec gigantic refactoring: exporter, result, results
gernotbelger
parents:
diff changeset
124
23945061daec gigantic refactoring: exporter, result, results
gernotbelger
parents:
diff changeset
125 public void addJRMetadata(final MetaAndTableJRDataSource source, final String key, final IResultType type) {
23945061daec gigantic refactoring: exporter, result, results
gernotbelger
parents:
diff changeset
126 source.addMetaData(key, type.getPdfHeader(this.context.getMeta()));
23945061daec gigantic refactoring: exporter, result, results
gernotbelger
parents:
diff changeset
127 }
23945061daec gigantic refactoring: exporter, result, results
gernotbelger
parents:
diff changeset
128
23945061daec gigantic refactoring: exporter, result, results
gernotbelger
parents:
diff changeset
129 public final void writeCSVGlobalMetadataDefaults(final AbstractCalculationResults results) {
23945061daec gigantic refactoring: exporter, result, results
gernotbelger
parents:
diff changeset
130 // TODO: results as member
23945061daec gigantic refactoring: exporter, result, results
gernotbelger
parents:
diff changeset
131 final String calcModeLabel = results.getCalcModeLabel();
23945061daec gigantic refactoring: exporter, result, results
gernotbelger
parents:
diff changeset
132 final RiverInfo river = results.getRiver();
23945061daec gigantic refactoring: exporter, result, results
gernotbelger
parents:
diff changeset
133 final DoubleRange calcRange = results.getCalcRange();
23945061daec gigantic refactoring: exporter, result, results
gernotbelger
parents:
diff changeset
134
23945061daec gigantic refactoring: exporter, result, results
gernotbelger
parents:
diff changeset
135 writeCSVMetaEntry(I18NStrings.CSV_META_HEADER_RESULT, msg(I18NStrings.CSV_META_HEADER_RESULT_LABEL), river.getName(), calcModeLabel);
23945061daec gigantic refactoring: exporter, result, results
gernotbelger
parents:
diff changeset
136
23945061daec gigantic refactoring: exporter, result, results
gernotbelger
parents:
diff changeset
137 // "# FLYS-Version: "
23945061daec gigantic refactoring: exporter, result, results
gernotbelger
parents:
diff changeset
138 writeCSVMetaEntry(I18NStrings.CSV_META_VERSION, msg(I18NStrings.CSV_META_VERSION_LABEL), FLYS.VERSION);
23945061daec gigantic refactoring: exporter, result, results
gernotbelger
parents:
diff changeset
139
23945061daec gigantic refactoring: exporter, result, results
gernotbelger
parents:
diff changeset
140 // "# Bearbeiter: "
23945061daec gigantic refactoring: exporter, result, results
gernotbelger
parents:
diff changeset
141 writeCSVMetaEntry(I18NStrings.CSV_META_USER, msg(I18NStrings.CSV_META_USER_LABEL), results.getUser());
23945061daec gigantic refactoring: exporter, result, results
gernotbelger
parents:
diff changeset
142
23945061daec gigantic refactoring: exporter, result, results
gernotbelger
parents:
diff changeset
143 // "# Datum der Erstellung: "
23945061daec gigantic refactoring: exporter, result, results
gernotbelger
parents:
diff changeset
144 final Locale locale = Resources.getLocale(this.context.getMeta());
23945061daec gigantic refactoring: exporter, result, results
gernotbelger
parents:
diff changeset
145 final DateFormat df = DateFormat.getDateInstance(DateFormat.SHORT, locale);
23945061daec gigantic refactoring: exporter, result, results
gernotbelger
parents:
diff changeset
146 writeCSVMetaEntry(I18NStrings.CSV_META_CREATION, msg(I18NStrings.CSV_META_CREATION_LABEL), df.format(new Date()));
23945061daec gigantic refactoring: exporter, result, results
gernotbelger
parents:
diff changeset
147
23945061daec gigantic refactoring: exporter, result, results
gernotbelger
parents:
diff changeset
148 // "# Gewässer: "
23945061daec gigantic refactoring: exporter, result, results
gernotbelger
parents:
diff changeset
149 writeCSVMetaEntry(I18NStrings.CSV_META_RIVER, msg(I18NStrings.CSV_META_RIVER_LABEL), river.getName());
23945061daec gigantic refactoring: exporter, result, results
gernotbelger
parents:
diff changeset
150
23945061daec gigantic refactoring: exporter, result, results
gernotbelger
parents:
diff changeset
151 // "# Höhensystem des Flusses: "
23945061daec gigantic refactoring: exporter, result, results
gernotbelger
parents:
diff changeset
152 writeCSVMetaEntry(I18NStrings.CSV_META_HEIGHT_UNIT_RIVER, river.getWstUnit());
23945061daec gigantic refactoring: exporter, result, results
gernotbelger
parents:
diff changeset
153
23945061daec gigantic refactoring: exporter, result, results
gernotbelger
parents:
diff changeset
154 if (calcRange != null) {
23945061daec gigantic refactoring: exporter, result, results
gernotbelger
parents:
diff changeset
155 // "# Ort/Bereich (km): "
23945061daec gigantic refactoring: exporter, result, results
gernotbelger
parents:
diff changeset
156 writeCSVMetaEntry(I18NStrings.CSV_META_RANGE, msg(I18NStrings.CSV_META_RANGE_LABEL), getKmFormatter().format(calcRange.getMinimumDouble()),
23945061daec gigantic refactoring: exporter, result, results
gernotbelger
parents:
diff changeset
157 getKmFormatter().format(calcRange.getMaximumDouble()));
23945061daec gigantic refactoring: exporter, result, results
gernotbelger
parents:
diff changeset
158 }
23945061daec gigantic refactoring: exporter, result, results
gernotbelger
parents:
diff changeset
159 }
23945061daec gigantic refactoring: exporter, result, results
gernotbelger
parents:
diff changeset
160
23945061daec gigantic refactoring: exporter, result, results
gernotbelger
parents:
diff changeset
161 public final void writeCSVWaterlevelMetadata(final WstInfo wst) {
23945061daec gigantic refactoring: exporter, result, results
gernotbelger
parents:
diff changeset
162 writeCSVWaterlevelMetadata(wst, SInfoI18NStrings.CSV_META_HEADER_WATERLEVEL); // default Label; used in 99%
23945061daec gigantic refactoring: exporter, result, results
gernotbelger
parents:
diff changeset
163 }
23945061daec gigantic refactoring: exporter, result, results
gernotbelger
parents:
diff changeset
164
23945061daec gigantic refactoring: exporter, result, results
gernotbelger
parents:
diff changeset
165 public final void writeCSVWaterlevelMetadata(final WstInfo wst, final String mainLabel) {
23945061daec gigantic refactoring: exporter, result, results
gernotbelger
parents:
diff changeset
166 // "##METADATEN WASSERSPIEGELLAGE"
23945061daec gigantic refactoring: exporter, result, results
gernotbelger
parents:
diff changeset
167 writeCSVMetaEntry(mainLabel);
23945061daec gigantic refactoring: exporter, result, results
gernotbelger
parents:
diff changeset
168
23945061daec gigantic refactoring: exporter, result, results
gernotbelger
parents:
diff changeset
169 // "# Bezeichnung der Wasserspiegellage: "
23945061daec gigantic refactoring: exporter, result, results
gernotbelger
parents:
diff changeset
170 writeCSVMetaEntry(SInfoI18NStrings.CSV_META_HEADER_WATERLEVEL_NAME, wst.getLabel());
23945061daec gigantic refactoring: exporter, result, results
gernotbelger
parents:
diff changeset
171
23945061daec gigantic refactoring: exporter, result, results
gernotbelger
parents:
diff changeset
172 // "# Bezugspegel: "
23945061daec gigantic refactoring: exporter, result, results
gernotbelger
parents:
diff changeset
173 writeCSVMetaEntry(SInfoI18NStrings.CSV_META_HEADER_WATERLEVEL_GAUGE, wst.getGauge());
23945061daec gigantic refactoring: exporter, result, results
gernotbelger
parents:
diff changeset
174
23945061daec gigantic refactoring: exporter, result, results
gernotbelger
parents:
diff changeset
175 // "# Jahr/Zeitraum der Wasserspiegellage: "
23945061daec gigantic refactoring: exporter, result, results
gernotbelger
parents:
diff changeset
176 final int year = wst.getYear();
23945061daec gigantic refactoring: exporter, result, results
gernotbelger
parents:
diff changeset
177 if (year > 0)
23945061daec gigantic refactoring: exporter, result, results
gernotbelger
parents:
diff changeset
178 writeCSVMetaEntry(SInfoI18NStrings.CSV_META_HEADER_WATERLEVEL_YEAR, Integer.toString(year));
23945061daec gigantic refactoring: exporter, result, results
gernotbelger
parents:
diff changeset
179 }
23945061daec gigantic refactoring: exporter, result, results
gernotbelger
parents:
diff changeset
180
23945061daec gigantic refactoring: exporter, result, results
gernotbelger
parents:
diff changeset
181 // copy from AbstractExporter TODO merge with ExportContextPDF
23945061daec gigantic refactoring: exporter, result, results
gernotbelger
parents:
diff changeset
182 protected NumberFormat getKmFormatter() {
23945061daec gigantic refactoring: exporter, result, results
gernotbelger
parents:
diff changeset
183
23945061daec gigantic refactoring: exporter, result, results
gernotbelger
parents:
diff changeset
184 if (this.kmFormat == null) {
23945061daec gigantic refactoring: exporter, result, results
gernotbelger
parents:
diff changeset
185 this.kmFormat = Formatter.getWaterlevelKM(this.context);
23945061daec gigantic refactoring: exporter, result, results
gernotbelger
parents:
diff changeset
186 }
23945061daec gigantic refactoring: exporter, result, results
gernotbelger
parents:
diff changeset
187 return this.kmFormat;
23945061daec gigantic refactoring: exporter, result, results
gernotbelger
parents:
diff changeset
188 }
23945061daec gigantic refactoring: exporter, result, results
gernotbelger
parents:
diff changeset
189
23945061daec gigantic refactoring: exporter, result, results
gernotbelger
parents:
diff changeset
190 public void addJRMetadata(final MetaAndTableJRDataSource source, final String key, final String msg) {
23945061daec gigantic refactoring: exporter, result, results
gernotbelger
parents:
diff changeset
191 source.addMetaData(key, msg);
23945061daec gigantic refactoring: exporter, result, results
gernotbelger
parents:
diff changeset
192
23945061daec gigantic refactoring: exporter, result, results
gernotbelger
parents:
diff changeset
193 }
23945061daec gigantic refactoring: exporter, result, results
gernotbelger
parents:
diff changeset
194
23945061daec gigantic refactoring: exporter, result, results
gernotbelger
parents:
diff changeset
195 public NumberFormat getQFormatter() {
23945061daec gigantic refactoring: exporter, result, results
gernotbelger
parents:
diff changeset
196 if (this.qFormat == null) {
23945061daec gigantic refactoring: exporter, result, results
gernotbelger
parents:
diff changeset
197 this.qFormat = Formatter.getWaterlevelQ(this.context);
23945061daec gigantic refactoring: exporter, result, results
gernotbelger
parents:
diff changeset
198 }
23945061daec gigantic refactoring: exporter, result, results
gernotbelger
parents:
diff changeset
199 return this.qFormat;
23945061daec gigantic refactoring: exporter, result, results
gernotbelger
parents:
diff changeset
200 }
23945061daec gigantic refactoring: exporter, result, results
gernotbelger
parents:
diff changeset
201
23945061daec gigantic refactoring: exporter, result, results
gernotbelger
parents:
diff changeset
202 public final NumberFormat getFlowDepthFormatter() {
23945061daec gigantic refactoring: exporter, result, results
gernotbelger
parents:
diff changeset
203 if (this.flowDepthFormat == null)
23945061daec gigantic refactoring: exporter, result, results
gernotbelger
parents:
diff changeset
204 this.flowDepthFormat = Formatter.getFlowDepth(this.context);
23945061daec gigantic refactoring: exporter, result, results
gernotbelger
parents:
diff changeset
205 return this.flowDepthFormat;
23945061daec gigantic refactoring: exporter, result, results
gernotbelger
parents:
diff changeset
206 }
23945061daec gigantic refactoring: exporter, result, results
gernotbelger
parents:
diff changeset
207
23945061daec gigantic refactoring: exporter, result, results
gernotbelger
parents:
diff changeset
208 /**
23945061daec gigantic refactoring: exporter, result, results
gernotbelger
parents:
diff changeset
209 * Formats header with unit: msg [unit]
23945061daec gigantic refactoring: exporter, result, results
gernotbelger
parents:
diff changeset
210 */
23945061daec gigantic refactoring: exporter, result, results
gernotbelger
parents:
diff changeset
211
23945061daec gigantic refactoring: exporter, result, results
gernotbelger
parents:
diff changeset
212 public String msgUnitCSV(final IResultType typeWithUnit) { // TODO: use generic Type!
23945061daec gigantic refactoring: exporter, result, results
gernotbelger
parents:
diff changeset
213 final String unit = msg(typeWithUnit.getUnit());
23945061daec gigantic refactoring: exporter, result, results
gernotbelger
parents:
diff changeset
214 return msgUnitCSV(typeWithUnit, unit);
23945061daec gigantic refactoring: exporter, result, results
gernotbelger
parents:
diff changeset
215 }
23945061daec gigantic refactoring: exporter, result, results
gernotbelger
parents:
diff changeset
216
23945061daec gigantic refactoring: exporter, result, results
gernotbelger
parents:
diff changeset
217 public String msgUnitCSV(final IResultType type, final String unit) {
23945061daec gigantic refactoring: exporter, result, results
gernotbelger
parents:
diff changeset
218 final String msg = msg(type.getCsvHeader());
23945061daec gigantic refactoring: exporter, result, results
gernotbelger
parents:
diff changeset
219 return String.format("%s [%s]", msg, unit);
23945061daec gigantic refactoring: exporter, result, results
gernotbelger
parents:
diff changeset
220 }
23945061daec gigantic refactoring: exporter, result, results
gernotbelger
parents:
diff changeset
221
23945061daec gigantic refactoring: exporter, result, results
gernotbelger
parents:
diff changeset
222 public void writeCSVSoundingMetadata(final BedHeightInfo currentSounding, final String csvMetaHeaderSoundingCurrent) {
23945061daec gigantic refactoring: exporter, result, results
gernotbelger
parents:
diff changeset
223
23945061daec gigantic refactoring: exporter, result, results
gernotbelger
parents:
diff changeset
224 }
23945061daec gigantic refactoring: exporter, result, results
gernotbelger
parents:
diff changeset
225
23945061daec gigantic refactoring: exporter, result, results
gernotbelger
parents:
diff changeset
226 public final String msgUnitLabel(final IResultType typeWithUnit, final String label) {
23945061daec gigantic refactoring: exporter, result, results
gernotbelger
parents:
diff changeset
227 final String msg = msg(typeWithUnit.getCsvHeader());
23945061daec gigantic refactoring: exporter, result, results
gernotbelger
parents:
diff changeset
228 final String unit = msg(typeWithUnit.getUnit());
23945061daec gigantic refactoring: exporter, result, results
gernotbelger
parents:
diff changeset
229 return String.format("%s [%s] (%s)", msg, unit, label);
23945061daec gigantic refactoring: exporter, result, results
gernotbelger
parents:
diff changeset
230 }
23945061daec gigantic refactoring: exporter, result, results
gernotbelger
parents:
diff changeset
231
23945061daec gigantic refactoring: exporter, result, results
gernotbelger
parents:
diff changeset
232 public String msgPdf(final SInfoResultType type) {
23945061daec gigantic refactoring: exporter, result, results
gernotbelger
parents:
diff changeset
233 return type.getPdfHeader(this.context.getMeta());
23945061daec gigantic refactoring: exporter, result, results
gernotbelger
parents:
diff changeset
234
23945061daec gigantic refactoring: exporter, result, results
gernotbelger
parents:
diff changeset
235 }
23945061daec gigantic refactoring: exporter, result, results
gernotbelger
parents:
diff changeset
236 }

http://dive4elements.wald.intevation.org