Mercurial > dive4elements > river
diff artifacts/src/main/java/org/dive4elements/river/exports/fixings/DeltaWtExporter.java @ 9082:42c15e2f95fb
2.3.4.1.4 Wasserstand falsche Einheit
FixAnalysis PDF start
author | gernotbelger |
---|---|
date | Fri, 25 May 2018 10:44:24 +0200 |
parents | 5e38e2924c07 |
children | 8024e51e828a |
line wrap: on
line diff
--- a/artifacts/src/main/java/org/dive4elements/river/exports/fixings/DeltaWtExporter.java Fri May 25 09:10:19 2018 +0200 +++ b/artifacts/src/main/java/org/dive4elements/river/exports/fixings/DeltaWtExporter.java Fri May 25 10:44:24 2018 +0200 @@ -8,63 +8,48 @@ package org.dive4elements.river.exports.fixings; -import au.com.bytecode.opencsv.CSVWriter; - -import org.dive4elements.artifacts.CallMeta; - -import org.dive4elements.river.artifacts.model.CalculationResult; - -import org.dive4elements.river.artifacts.model.fixings.AnalysisPeriod; -import org.dive4elements.river.artifacts.model.fixings.FixAnalysisResult; -import org.dive4elements.river.artifacts.model.fixings.QWD; - -import org.dive4elements.river.artifacts.resources.Resources; - -import org.dive4elements.river.exports.AbstractExporter; - -import org.dive4elements.river.utils.Formatter; -import org.dive4elements.river.utils.KMIndex; - import java.io.IOException; import java.io.OutputStream; - import java.text.DateFormat; import java.text.MessageFormat; import java.text.NumberFormat; - import java.util.ArrayList; import java.util.List; import java.util.TreeMap; import org.apache.log4j.Logger; +import org.dive4elements.artifacts.CallMeta; +import org.dive4elements.river.artifacts.D4EArtifact; +import org.dive4elements.river.artifacts.access.RiverAccess; +import org.dive4elements.river.artifacts.model.CalculationResult; +import org.dive4elements.river.artifacts.model.fixings.AnalysisPeriod; +import org.dive4elements.river.artifacts.model.fixings.FixAnalysisResult; +import org.dive4elements.river.artifacts.model.fixings.QWD; +import org.dive4elements.river.artifacts.resources.Resources; +import org.dive4elements.river.exports.AbstractExporter; +import org.dive4elements.river.utils.Formatter; +import org.dive4elements.river.utils.KMIndex; + +import au.com.bytecode.opencsv.CSVWriter; /** Exports fixation analysis deltaw(t) computation results to csv. */ -public class DeltaWtExporter -extends AbstractExporter -{ +public class DeltaWtExporter extends AbstractExporter { /** Private log. */ private static Logger log = Logger.getLogger(DeltaWtExporter.class); - public static final String CSV_KM_HEADER = - "export.fixings.deltawt.csv.header.km"; - - public static final String CSV_DELTA_W_HEADER = - "export.fixings.deltawt.csv.header.deltaw"; - - public static final String CSV_Q_HEADER = - "export.fixings.deltawt.csv.header.q"; + public static final String CSV_KM_HEADER = "export.fixings.deltawt.csv.header.km"; - public static final String CSV_W_HEADER = - "export.fixings.deltawt.csv.header.w"; + public static final String CSV_DELTA_W_HEADER = "export.fixings.deltawt.csv.header.deltaw"; - public static final String CSV_TRANGE_HEADER = - "export.fixings.deltawt.csv.header.time.range"; + public static final String CSV_Q_HEADER = "export.fixings.deltawt.csv.header.q"; - public static final String CSV_T_HEADER = - "export.fixings.deltawt.csv.header.t"; + public static final String CSV_W_HEADER = "export.fixings.deltawt.csv.header.w"; - public static final String CSV_T_FORMAT = - "export.fixings.deltawt.csv.t.format"; + public static final String CSV_TRANGE_HEADER = "export.fixings.deltawt.csv.header.time.range"; + + public static final String CSV_T_HEADER = "export.fixings.deltawt.csv.header.t"; + + public static final String CSV_T_FORMAT = "export.fixings.deltawt.csv.t.format"; public static final String DEFAULT_CSV_KM_HEADER = "km"; @@ -76,143 +61,122 @@ public static final String DEFAULT_CSV_T_HEADER = "Datum"; - public static final String DEFAULT_CSV_TRANGE_DESC_HEADER = - "Status"; - - public static final String CSV_REFERENCE = - "export.fixings.deltawt.csv.reference"; - - public static final String CSV_ANALYSIS = - "export.fixings.deltawt.csv.analysis"; + public static final String DEFAULT_CSV_TRANGE_DESC_HEADER = "Status"; - public static final String DEFAULT_CSV_REFERENCE = - "B"; + public static final String CSV_REFERENCE = "export.fixings.deltawt.csv.reference"; - public static final String DEFAULT_CSV_ANALYSIS = - "A{0,number,integer}"; + public static final String CSV_ANALYSIS = "export.fixings.deltawt.csv.analysis"; - public static final String DEFAULT_CSV_T_FORMAT = - "dd.MM.yyyy"; + public static final String DEFAULT_CSV_REFERENCE = "B"; - protected List<KMIndex<AnalysisPeriod []>> analysisPeriods; + public static final String DEFAULT_CSV_ANALYSIS = "A{0,number,integer}"; + + public static final String DEFAULT_CSV_T_FORMAT = "dd.MM.yyyy"; + + protected List<KMIndex<AnalysisPeriod[]>> analysisPeriods; protected List<KMIndex<QWD[]>> referenceEvents; public DeltaWtExporter() { - analysisPeriods = new ArrayList<KMIndex<AnalysisPeriod []>>(); - referenceEvents = new ArrayList<KMIndex<QWD[]>>(); + this.analysisPeriods = new ArrayList<>(); + this.referenceEvents = new ArrayList<>(); } @Override - protected void addData(Object d) { + protected void addData(final Object d) { log.debug("DeltaWtExporter.addData"); if (!(d instanceof CalculationResult)) { log.warn("Invalid data type"); return; } - Object data = ((CalculationResult)d).getData(); + final Object data = ((CalculationResult) d).getData(); if (!(data instanceof FixAnalysisResult)) { log.warn("Invalid data stored in result."); } - FixAnalysisResult result = (FixAnalysisResult)data; - analysisPeriods.add(result.getAnalysisPeriods()); - referenceEvents.add(result.getReferenced()); + final FixAnalysisResult result = (FixAnalysisResult) data; + this.analysisPeriods.add(result.getAnalysisPeriods()); + this.referenceEvents.add(result.getReferenced()); } @Override - protected void writeCSVData(CSVWriter writer) throws IOException { + protected void writeCSVData(final CSVWriter writer) throws IOException { - boolean debug = log.isDebugEnabled(); + final boolean debug = log.isDebugEnabled(); writeCSVHeader(writer); - NumberFormat kmF = getKMFormatter(); - NumberFormat dwF = getDeltaWFormatter(); - NumberFormat qF = getQFormatter(); - NumberFormat wF = getWFormatter(); - - DateFormat dF = getDateFormatter(); + final NumberFormat kmF = getKMFormatter(); + final NumberFormat dwF = getDeltaWFormatter(); + final NumberFormat qF = getQFormatter(); + final NumberFormat wF = getWFormatter(); - TreeMap<Double, ArrayList<String []>> sorted = - new TreeMap<Double, ArrayList<String []>>(); - - String referenceS = getReference(); + final DateFormat dF = getDateFormatter(); - for (KMIndex<QWD[]> reference: referenceEvents) { + final TreeMap<Double, ArrayList<String[]>> sorted = new TreeMap<>(); - for (KMIndex.Entry<QWD[]> kmEntry: reference) { + final String referenceS = getReference(); - Double km = kmEntry.getKm(); + for (final KMIndex<QWD[]> reference : this.referenceEvents) { - ArrayList<String []> list = sorted.get(km); + for (final KMIndex.Entry<QWD[]> kmEntry : reference) { + + final Double km = kmEntry.getKm(); + + ArrayList<String[]> list = sorted.get(km); if (list == null) { - list = new ArrayList<String []>(); + list = new ArrayList<>(); sorted.put(km, list); } - String kmS = kmF.format(kmEntry.getKm()); - for (QWD qwd: kmEntry.getValue()) { - String deltaWS = dwF.format(qwd.getDeltaW()); - String qS = qF.format(qwd.getQ()); - String wS = wF.format(qwd.getW()); - String dateS = dF.format(qwd.getDate()); + final String kmS = kmF.format(kmEntry.getKm()); + for (final QWD qwd : kmEntry.getValue()) { + final String deltaWS = dwF.format(qwd.getDeltaW()); + final String qS = qF.format(qwd.getQ()); + final String wS = wF.format(qwd.getW()); + final String dateS = dF.format(qwd.getDate()); - list.add(new String[] { - kmS, - dateS, - qS, - wS, - referenceS, - deltaWS - }); + list.add(new String[] { kmS, dateS, qS, wS, referenceS, deltaWS }); } } } if (debug) { - log.debug("AnalysisPeriods: " + analysisPeriods.size()); + log.debug("AnalysisPeriods: " + this.analysisPeriods.size()); } - String analysisTemplate = getAnalysisTemplate(); - - for (KMIndex<AnalysisPeriod []> periods: analysisPeriods) { + final String analysisTemplate = getAnalysisTemplate(); - for (KMIndex.Entry<AnalysisPeriod []> kmEntry: periods) { + for (final KMIndex<AnalysisPeriod[]> periods : this.analysisPeriods) { - Double km = kmEntry.getKm(); + for (final KMIndex.Entry<AnalysisPeriod[]> kmEntry : periods) { - ArrayList<String []> list = sorted.get(km); + final Double km = kmEntry.getKm(); + + ArrayList<String[]> list = sorted.get(km); if (list == null) { - list = new ArrayList<String []>(); + list = new ArrayList<>(); sorted.put(km, list); } - String kmS = kmF.format(kmEntry.getKm()); + final String kmS = kmF.format(kmEntry.getKm()); int analysisCount = 1; - for (AnalysisPeriod period: kmEntry.getValue()) { + for (final AnalysisPeriod period : kmEntry.getValue()) { // Typically resulting in A1,A2... - String analyisS = MessageFormat.format(analysisTemplate, - analysisCount); - QWD [] qwds = period.getQWDs(); + final String analyisS = MessageFormat.format(analysisTemplate, analysisCount); + final QWD[] qwds = period.getQWDs(); if (qwds != null) { - for (QWD qwd: qwds) { - String deltaWS = dwF.format(qwd.getDeltaW()); - String qS = qF.format(qwd.getQ()); - String wS = wF.format(qwd.getW()); - String dateS = dF.format(qwd.getDate()); + for (final QWD qwd : qwds) { + final String deltaWS = dwF.format(qwd.getDeltaW()); + final String qS = qF.format(qwd.getQ()); + final String wS = wF.format(qwd.getW()); + final String dateS = dF.format(qwd.getDate()); - list.add(new String[] { - kmS, - dateS, - qS, - wS, - analyisS, - deltaWS }); + list.add(new String[] { kmS, dateS, qS, wS, analyisS, deltaWS }); } } ++analysisCount; @@ -220,8 +184,8 @@ } } - for (ArrayList<String []> list: sorted.values()) { - for (String [] row: list) { + for (final ArrayList<String[]> list : sorted.values()) { + for (final String[] row : list) { writer.writeNext(row); } } @@ -231,64 +195,56 @@ /** Template to create "State" strings like A1,A2... */ protected String getAnalysisTemplate() { - return Resources.getMsg( - context.getMeta(), - CSV_ANALYSIS, DEFAULT_CSV_ANALYSIS); + return Resources.getMsg(this.context.getMeta(), CSV_ANALYSIS, DEFAULT_CSV_ANALYSIS); } protected String getReference() { - return Resources.getMsg( - context.getMeta(), - CSV_REFERENCE, DEFAULT_CSV_REFERENCE); + return Resources.getMsg(this.context.getMeta(), CSV_REFERENCE, DEFAULT_CSV_REFERENCE); } protected NumberFormat getKMFormatter() { - return Formatter.getFixDeltaWKM(context); + return Formatter.getFixDeltaWKM(this.context); } protected NumberFormat getDeltaWFormatter() { - return Formatter.getFixDeltaWDeltaW(context); + return Formatter.getFixDeltaWDeltaW(this.context); } + @Override protected NumberFormat getQFormatter() { - return Formatter.getFixDeltaWQ(context); + return Formatter.getFixDeltaWQ(this.context); } + @Override protected NumberFormat getWFormatter() { - return Formatter.getFixDeltaWW(context); + return Formatter.getFixDeltaWW(this.context); } protected DateFormat getDateFormatter() { - CallMeta meta = context.getMeta(); - return Formatter.getDateFormatter( - meta, - Resources.getMsg( - meta, - CSV_T_FORMAT, - DEFAULT_CSV_T_FORMAT)); + final CallMeta meta = this.context.getMeta(); + return Formatter.getDateFormatter(meta, Resources.getMsg(meta, CSV_T_FORMAT, DEFAULT_CSV_T_FORMAT)); } - protected void writeCSVHeader(CSVWriter writer) { + protected void writeCSVHeader(final CSVWriter writer) { log.debug("DeltaWtExporter.writeCSVHeader"); - /* issue825 - km; Ereignis, Abfluss, GEMESSENER Wasserstand; - Status (RECHTSBÜNDIG), del W - */ + /* + * issue825 + * km; Ereignis, Abfluss, GEMESSENER Wasserstand; + * Status (RECHTSBÜNDIG), del W + */ + final RiverAccess river = new RiverAccess((D4EArtifact) this.master); + final String unit = river.getRiver().getWstUnit().getName(); - writer.writeNext(new String[] { - msg(CSV_KM_HEADER, DEFAULT_CSV_KM_HEADER), - msg(CSV_T_HEADER, DEFAULT_CSV_T_HEADER), - msg(CSV_Q_HEADER, DEFAULT_CSV_Q_HEADER), - msg(CSV_W_HEADER, DEFAULT_CSV_W_HEADER), - msg(CSV_TRANGE_HEADER, DEFAULT_CSV_TRANGE_DESC_HEADER), - msg(CSV_DELTA_W_HEADER, DEFAULT_CSV_DELTA_W_HEADER) - }); + writer.writeNext(new String[] { msg(CSV_KM_HEADER, DEFAULT_CSV_KM_HEADER), msg(CSV_T_HEADER, DEFAULT_CSV_T_HEADER), + msg(CSV_Q_HEADER, DEFAULT_CSV_Q_HEADER), msg(CSV_W_HEADER, DEFAULT_CSV_W_HEADER, new Object[] { unit }), + msg(CSV_TRANGE_HEADER, DEFAULT_CSV_TRANGE_DESC_HEADER), msg(CSV_DELTA_W_HEADER, DEFAULT_CSV_DELTA_W_HEADER) }); } @Override - protected void writePDF(OutputStream out) { + protected void writePDF(final OutputStream out) { // TODO: Implement me! + // wird doch NICHT erledigt vom WaterlevelExporter } } // vim:set ts=4 sw=4 si et sta sts=4 fenc=utf8 :