annotate artifacts/src/main/java/org/dive4elements/river/artifacts/uinfo/commons/AbstractUInfoExporter.java @ 9006:7134a4c7d1b6

U-Info S-Info general work
author gernotbelger
date Tue, 17 Apr 2018 13:20:25 +0200
parents fb9430250899
children 41f4bc83aa7a
rev   line source
8996
fb9430250899 Work on uinfo
gernotbelger
parents:
diff changeset
1 /** Copyright (C) 2017 by Bundesanstalt für Gewässerkunde
fb9430250899 Work on uinfo
gernotbelger
parents:
diff changeset
2 * Software engineering by
fb9430250899 Work on uinfo
gernotbelger
parents:
diff changeset
3 * Björnsen Beratende Ingenieure GmbH
fb9430250899 Work on uinfo
gernotbelger
parents:
diff changeset
4 * Dr. Schumacher Ingenieurbüro für Wasser und Umwelt
fb9430250899 Work on uinfo
gernotbelger
parents:
diff changeset
5 *
fb9430250899 Work on uinfo
gernotbelger
parents:
diff changeset
6 * This file is Free Software under the GNU AGPL (>=v3)
fb9430250899 Work on uinfo
gernotbelger
parents:
diff changeset
7 * and comes with ABSOLUTELY NO WARRANTY! Check out the
fb9430250899 Work on uinfo
gernotbelger
parents:
diff changeset
8 * documentation coming with Dive4Elements River for details.
fb9430250899 Work on uinfo
gernotbelger
parents:
diff changeset
9 */
fb9430250899 Work on uinfo
gernotbelger
parents:
diff changeset
10 package org.dive4elements.river.artifacts.uinfo.commons;
fb9430250899 Work on uinfo
gernotbelger
parents:
diff changeset
11
fb9430250899 Work on uinfo
gernotbelger
parents:
diff changeset
12 import java.text.DateFormat;
fb9430250899 Work on uinfo
gernotbelger
parents:
diff changeset
13 import java.text.NumberFormat;
fb9430250899 Work on uinfo
gernotbelger
parents:
diff changeset
14 import java.util.Date;
fb9430250899 Work on uinfo
gernotbelger
parents:
diff changeset
15 import java.util.Locale;
fb9430250899 Work on uinfo
gernotbelger
parents:
diff changeset
16
fb9430250899 Work on uinfo
gernotbelger
parents:
diff changeset
17 import org.apache.commons.lang.math.DoubleRange;
fb9430250899 Work on uinfo
gernotbelger
parents:
diff changeset
18 import org.dive4elements.river.FLYS;
fb9430250899 Work on uinfo
gernotbelger
parents:
diff changeset
19 import org.dive4elements.river.artifacts.common.AbstractCalculationResult;
fb9430250899 Work on uinfo
gernotbelger
parents:
diff changeset
20 import org.dive4elements.river.artifacts.common.AbstractCalculationResults;
fb9430250899 Work on uinfo
gernotbelger
parents:
diff changeset
21 import org.dive4elements.river.artifacts.common.AbstractCommonExporter;
fb9430250899 Work on uinfo
gernotbelger
parents:
diff changeset
22 import org.dive4elements.river.artifacts.common.I18NStrings;
9006
7134a4c7d1b6 U-Info S-Info general work
gernotbelger
parents: 8996
diff changeset
23 import org.dive4elements.river.artifacts.common.MetaAndTableJRDataSource;
8996
fb9430250899 Work on uinfo
gernotbelger
parents:
diff changeset
24 import org.dive4elements.river.artifacts.resources.Resources;
fb9430250899 Work on uinfo
gernotbelger
parents:
diff changeset
25 import org.dive4elements.river.artifacts.sinfo.util.RiverInfo;
fb9430250899 Work on uinfo
gernotbelger
parents:
diff changeset
26
fb9430250899 Work on uinfo
gernotbelger
parents:
diff changeset
27 import au.com.bytecode.opencsv.CSVWriter;
fb9430250899 Work on uinfo
gernotbelger
parents:
diff changeset
28
fb9430250899 Work on uinfo
gernotbelger
parents:
diff changeset
29 /**
fb9430250899 Work on uinfo
gernotbelger
parents:
diff changeset
30 * @author Gernot Belger
fb9430250899 Work on uinfo
gernotbelger
parents:
diff changeset
31 */
fb9430250899 Work on uinfo
gernotbelger
parents:
diff changeset
32 public abstract class AbstractUInfoExporter<RESULT extends AbstractCalculationResult, RESULTS extends AbstractCalculationResults<RESULT>> extends AbstractCommonExporter<RESULT, RESULTS> {
fb9430250899 Work on uinfo
gernotbelger
parents:
diff changeset
33
fb9430250899 Work on uinfo
gernotbelger
parents:
diff changeset
34 @Override
fb9430250899 Work on uinfo
gernotbelger
parents:
diff changeset
35 protected void addJRMetaData(final MetaAndTableJRDataSource source, final RESULTS results) {
fb9430250899 Work on uinfo
gernotbelger
parents:
diff changeset
36
fb9430250899 Work on uinfo
gernotbelger
parents:
diff changeset
37 /* general metadata */
fb9430250899 Work on uinfo
gernotbelger
parents:
diff changeset
38 this.addJRMetaDataDefaults(source, results);
fb9430250899 Work on uinfo
gernotbelger
parents:
diff changeset
39
fb9430250899 Work on uinfo
gernotbelger
parents:
diff changeset
40 /* general metadata */
fb9430250899 Work on uinfo
gernotbelger
parents:
diff changeset
41 this.addJRMetaDataDefaults(source, results);
fb9430250899 Work on uinfo
gernotbelger
parents:
diff changeset
42
fb9430250899 Work on uinfo
gernotbelger
parents:
diff changeset
43 final RiverInfo river = results.getRiver();
fb9430250899 Work on uinfo
gernotbelger
parents:
diff changeset
44 final String wstUnitName = river.getWstUnit();
fb9430250899 Work on uinfo
gernotbelger
parents:
diff changeset
45
fb9430250899 Work on uinfo
gernotbelger
parents:
diff changeset
46 source.addMetaData("river_label", msg(I18NStrings.CSV_META_RIVER_LABEL));
fb9430250899 Work on uinfo
gernotbelger
parents:
diff changeset
47 source.addMetaData("river", river.getName());
fb9430250899 Work on uinfo
gernotbelger
parents:
diff changeset
48 source.addMetaData("river_unit", wstUnitName);
fb9430250899 Work on uinfo
gernotbelger
parents:
diff changeset
49
fb9430250899 Work on uinfo
gernotbelger
parents:
diff changeset
50 source.addMetaData("range_label", msg(I18NStrings.CSV_META_RANGE_LABEL));
fb9430250899 Work on uinfo
gernotbelger
parents:
diff changeset
51 final DoubleRange calcRange = results.getCalcRange();
fb9430250899 Work on uinfo
gernotbelger
parents:
diff changeset
52 final NumberFormat kmFormatter = getKmFormatter();
fb9430250899 Work on uinfo
gernotbelger
parents:
diff changeset
53 if (calcRange != null) {
fb9430250899 Work on uinfo
gernotbelger
parents:
diff changeset
54 final String rangeValue = String.format("%s - %s", kmFormatter.format(calcRange.getMinimumDouble()),
fb9430250899 Work on uinfo
gernotbelger
parents:
diff changeset
55 kmFormatter.format(calcRange.getMaximumDouble()));
fb9430250899 Work on uinfo
gernotbelger
parents:
diff changeset
56 source.addMetaData("range", rangeValue);
fb9430250899 Work on uinfo
gernotbelger
parents:
diff changeset
57 }
fb9430250899 Work on uinfo
gernotbelger
parents:
diff changeset
58
fb9430250899 Work on uinfo
gernotbelger
parents:
diff changeset
59 /* column headings */
fb9430250899 Work on uinfo
gernotbelger
parents:
diff changeset
60 // source.addMetaData("station_header", GeneralResultType.station.getPdfHeader(this.context.getMeta())); // moved to
fb9430250899 Work on uinfo
gernotbelger
parents:
diff changeset
61 // super
fb9430250899 Work on uinfo
gernotbelger
parents:
diff changeset
62
fb9430250899 Work on uinfo
gernotbelger
parents:
diff changeset
63 // TODO: move to subs
fb9430250899 Work on uinfo
gernotbelger
parents:
diff changeset
64 // source.addMetaData("flowdepth_header", SInfoResultType.flowdepth.getPdfHeader(this.context.getMeta()));
fb9430250899 Work on uinfo
gernotbelger
parents:
diff changeset
65 // source.addMetaData("flowdepth_tkh_header", SInfoResultType.flowdepthtkh.getPdfHeader(this.context.getMeta()));
fb9430250899 Work on uinfo
gernotbelger
parents:
diff changeset
66 // source.addMetaData("tkh_header", SInfoResultType.tkh.getPdfHeader(this.context.getMeta()));
fb9430250899 Work on uinfo
gernotbelger
parents:
diff changeset
67 // source.addMetaData("waterlevel_header", SInfoResultType.waterlevel.getPdfHeader(this.context.getMeta()));
fb9430250899 Work on uinfo
gernotbelger
parents:
diff changeset
68 // source.addMetaData("discharge_header", SInfoResultType.discharge.getPdfHeader(this.context.getMeta()));
fb9430250899 Work on uinfo
gernotbelger
parents:
diff changeset
69
fb9430250899 Work on uinfo
gernotbelger
parents:
diff changeset
70 }
fb9430250899 Work on uinfo
gernotbelger
parents:
diff changeset
71
fb9430250899 Work on uinfo
gernotbelger
parents:
diff changeset
72 @Override
fb9430250899 Work on uinfo
gernotbelger
parents:
diff changeset
73 protected void writeCSVGlobalMetadataDefaults(final CSVWriter writer, final RESULTS results) {
fb9430250899 Work on uinfo
gernotbelger
parents:
diff changeset
74
fb9430250899 Work on uinfo
gernotbelger
parents:
diff changeset
75 final String calcModeLabel = results.getCalcModeLabel();
fb9430250899 Work on uinfo
gernotbelger
parents:
diff changeset
76 final RiverInfo river = results.getRiver();
fb9430250899 Work on uinfo
gernotbelger
parents:
diff changeset
77 final DoubleRange calcRange = results.getCalcRange();
fb9430250899 Work on uinfo
gernotbelger
parents:
diff changeset
78
fb9430250899 Work on uinfo
gernotbelger
parents:
diff changeset
79 writeCSVMetaEntry(writer, I18NStrings.CSV_META_HEADER_RESULT, msg(I18NStrings.CSV_META_HEADER_RESULT_LABEL), river.getName(), calcModeLabel);
fb9430250899 Work on uinfo
gernotbelger
parents:
diff changeset
80
fb9430250899 Work on uinfo
gernotbelger
parents:
diff changeset
81 // "# FLYS-Version: "
fb9430250899 Work on uinfo
gernotbelger
parents:
diff changeset
82 writeCSVMetaEntry(writer, I18NStrings.CSV_META_VERSION, msg(I18NStrings.CSV_META_VERSION_LABEL), FLYS.VERSION);
fb9430250899 Work on uinfo
gernotbelger
parents:
diff changeset
83
fb9430250899 Work on uinfo
gernotbelger
parents:
diff changeset
84 // "# Bearbeiter: "
fb9430250899 Work on uinfo
gernotbelger
parents:
diff changeset
85 writeCSVMetaEntry(writer, I18NStrings.CSV_META_USER, msg(I18NStrings.CSV_META_USER_LABEL), results.getUser());
fb9430250899 Work on uinfo
gernotbelger
parents:
diff changeset
86
fb9430250899 Work on uinfo
gernotbelger
parents:
diff changeset
87 // "# Datum der Erstellung: "
fb9430250899 Work on uinfo
gernotbelger
parents:
diff changeset
88 final Locale locale = Resources.getLocale(this.context.getMeta());
fb9430250899 Work on uinfo
gernotbelger
parents:
diff changeset
89 final DateFormat df = DateFormat.getDateInstance(DateFormat.SHORT, locale);
fb9430250899 Work on uinfo
gernotbelger
parents:
diff changeset
90 writeCSVMetaEntry(writer, I18NStrings.CSV_META_CREATION, msg(I18NStrings.CSV_META_CREATION_LABEL), df.format(new Date()));
fb9430250899 Work on uinfo
gernotbelger
parents:
diff changeset
91
fb9430250899 Work on uinfo
gernotbelger
parents:
diff changeset
92 // "# Gewässer: "
fb9430250899 Work on uinfo
gernotbelger
parents:
diff changeset
93 writeCSVMetaEntry(writer, I18NStrings.CSV_META_RIVER, msg(I18NStrings.CSV_META_RIVER_LABEL), river.getName());
fb9430250899 Work on uinfo
gernotbelger
parents:
diff changeset
94
fb9430250899 Work on uinfo
gernotbelger
parents:
diff changeset
95 // "# Höhensystem des Flusses: "
fb9430250899 Work on uinfo
gernotbelger
parents:
diff changeset
96 writeCSVMetaEntry(writer, I18NStrings.CSV_META_HEIGHT_UNIT_RIVER, river.getWstUnit()); // move to child?
fb9430250899 Work on uinfo
gernotbelger
parents:
diff changeset
97
fb9430250899 Work on uinfo
gernotbelger
parents:
diff changeset
98 if (calcRange != null) {
fb9430250899 Work on uinfo
gernotbelger
parents:
diff changeset
99 // "# Ort/Bereich (km): "
fb9430250899 Work on uinfo
gernotbelger
parents:
diff changeset
100 writeCSVMetaEntry(writer, I18NStrings.CSV_META_RANGE, msg(I18NStrings.CSV_META_RANGE_LABEL), getKmFormatter().format(calcRange.getMinimumDouble()),
fb9430250899 Work on uinfo
gernotbelger
parents:
diff changeset
101 getKmFormatter().format(calcRange.getMaximumDouble()));
fb9430250899 Work on uinfo
gernotbelger
parents:
diff changeset
102 }
fb9430250899 Work on uinfo
gernotbelger
parents:
diff changeset
103 }
fb9430250899 Work on uinfo
gernotbelger
parents:
diff changeset
104
fb9430250899 Work on uinfo
gernotbelger
parents:
diff changeset
105 @Override
fb9430250899 Work on uinfo
gernotbelger
parents:
diff changeset
106 protected void addJRMetaDataDefaults(final MetaAndTableJRDataSource source, final RESULTS results) {
fb9430250899 Work on uinfo
gernotbelger
parents:
diff changeset
107
fb9430250899 Work on uinfo
gernotbelger
parents:
diff changeset
108 source.addMetaData("header", msg(I18NStrings.CSV_META_HEADER_RESULT_LABEL));
fb9430250899 Work on uinfo
gernotbelger
parents:
diff changeset
109 source.addMetaData("calcMode", results.getCalcModeLabel());
fb9430250899 Work on uinfo
gernotbelger
parents:
diff changeset
110
fb9430250899 Work on uinfo
gernotbelger
parents:
diff changeset
111 source.addMetaData("version_label", msg(I18NStrings.CSV_META_VERSION_LABEL));
fb9430250899 Work on uinfo
gernotbelger
parents:
diff changeset
112 source.addMetaData("version", FLYS.VERSION);
fb9430250899 Work on uinfo
gernotbelger
parents:
diff changeset
113
fb9430250899 Work on uinfo
gernotbelger
parents:
diff changeset
114 source.addMetaData("user_label", msg(I18NStrings.CSV_META_USER_LABEL));
fb9430250899 Work on uinfo
gernotbelger
parents:
diff changeset
115 source.addMetaData("user", results.getUser());
fb9430250899 Work on uinfo
gernotbelger
parents:
diff changeset
116
fb9430250899 Work on uinfo
gernotbelger
parents:
diff changeset
117 final Locale locale = Resources.getLocale(this.context.getMeta());
fb9430250899 Work on uinfo
gernotbelger
parents:
diff changeset
118 final DateFormat df = DateFormat.getDateInstance(DateFormat.SHORT, locale);
fb9430250899 Work on uinfo
gernotbelger
parents:
diff changeset
119 source.addMetaData("date_label", msg(I18NStrings.CSV_META_CREATION_LABEL));
fb9430250899 Work on uinfo
gernotbelger
parents:
diff changeset
120 source.addMetaData("date", df.format(new Date()));
fb9430250899 Work on uinfo
gernotbelger
parents:
diff changeset
121
fb9430250899 Work on uinfo
gernotbelger
parents:
diff changeset
122 }
fb9430250899 Work on uinfo
gernotbelger
parents:
diff changeset
123
fb9430250899 Work on uinfo
gernotbelger
parents:
diff changeset
124 }

http://dive4elements.wald.intevation.org