Mercurial > dive4elements > river
view flys-artifacts/src/main/java/de/intevation/flys/exports/DeltaWtExporter.java @ 3115:5482a8a48a3f
I18N of SQ relation charts.
flys-artifacts/trunk@4715 c6561f87-3c4e-4783-a992-168aeb5c3f6f
author | Ingo Weinzierl <ingo.weinzierl@intevation.de> |
---|---|
date | Wed, 20 Jun 2012 07:49:36 +0000 |
parents | 65b6e27c6f25 |
children | 04952869e4fa |
line wrap: on
line source
package de.intevation.flys.exports; import au.com.bytecode.opencsv.CSVWriter; import de.intevation.artifacts.CallContext; import de.intevation.artifacts.CallMeta; import de.intevation.flys.artifacts.model.CalculationResult; import de.intevation.flys.artifacts.model.fixings.FixResult; import de.intevation.flys.artifacts.model.fixings.AnalysisPeriod; import de.intevation.flys.artifacts.model.fixings.QWD; import de.intevation.flys.artifacts.resources.Resources; import de.intevation.flys.utils.Formatter; import de.intevation.flys.utils.KMIndex; import java.io.IOException; import java.io.OutputStream; import java.text.DateFormat; import java.text.NumberFormat; import java.util.ArrayList; import java.util.Date; import java.util.List; import java.util.Locale; import org.apache.log4j.Logger; import org.w3c.dom.Document; public class DeltaWtExporter extends AbstractExporter { 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_T_HEADER = "export.fixings.deltawt.csv.header.t"; public static final String CSV_T_DESC_HEADER = "export.fixings.deltawt.csv.header.description"; public static final String DEFAULT_CSV_KM_HEADER = "km"; public static final String DEFAULT_CSV_DELTA_W_HEADER = "\u0394 W [cm]"; public static final String DEFAULT_CSV_T_HEADER = "Datum"; public static final String DEFAULT_CSV_T_DESC_HEADER = "Beschreibung"; protected List<KMIndex<AnalysisPeriod []>> analysisPeriods; @Override public void init(Document request, OutputStream out, CallContext context) { log.debug("DeltaWtExporter.init"); super.init(request, out, context); analysisPeriods = new ArrayList<KMIndex<AnalysisPeriod []>>(); } @Override public void generate() throws IOException { log.debug("DeltaWtExporter.generate"); if (facet == null) { throw new IOException("invalid (null) facet for exporter"); } else if (facet.equals(FACET_CSV)) { generateCSV(); } else if (facet.equals(FACET_PDF)) { generatePDF(); } else { throw new IOException("invalid facet (" + facet + ") for exporter"); } } @Override protected void addData(Object d) { log.debug("DeltaWtExporter.addData"); if (!(d instanceof CalculationResult)) { log.warn("Invalid data type"); return; } Object data = ((CalculationResult)d).getData(); if (!(data instanceof FixResult)) { log.warn("Invalid data stored in result."); } FixResult result = (FixResult)data; analysisPeriods.add(result.getAnalysisPeriods()); } @Override protected void writeCSVData(CSVWriter writer) throws IOException { boolean debug = log.isDebugEnabled(); writeCSVHeader(writer); NumberFormat kmF = getKMFormatter(); NumberFormat dwF = getDeltaWFormatter(); CallMeta meta = context.getMeta(); Locale locale = Resources.getLocale(meta); DateFormat dF = DateFormat.getDateInstance(DateFormat.SHORT, locale); if (debug) { log.debug("AnalysisPeriods: " + analysisPeriods.size()); } for (KMIndex<AnalysisPeriod []> periods: analysisPeriods) { for (KMIndex.Entry<AnalysisPeriod []> kmEntry: periods) { String kmS = kmF.format(kmEntry.getKm()); for (AnalysisPeriod period: kmEntry.getValue()) { QWD [] qwds = period.getQWDs(); if (qwds != null) { for (QWD qwd: qwds) { double deltaW = qwd.getDeltaW(); Date date = qwd.getDate(); String desc = qwd.getDescription(); String deltaWS = dwF.format(deltaW); String dateS = dF.format(date); writer.writeNext(new String[] { kmS, deltaWS, dateS, desc != null ? desc : "" }); } } } } } writer.flush(); } protected NumberFormat getKMFormatter() { return Formatter.getFixDeltaWKM(context); } protected NumberFormat getDeltaWFormatter() { return Formatter.getFixDeltaWDeltaW(context); } protected void writeCSVHeader(CSVWriter writer) { log.debug("DeltaWtExporter.writeCSVHeader"); writer.writeNext(new String[] { msg(CSV_KM_HEADER, DEFAULT_CSV_KM_HEADER), msg(CSV_DELTA_W_HEADER, DEFAULT_CSV_DELTA_W_HEADER), msg(CSV_T_HEADER, DEFAULT_CSV_T_HEADER), msg(CSV_T_DESC_HEADER, DEFAULT_CSV_T_DESC_HEADER) }); } @Override protected void writePDF(OutputStream out) { // TODO: Implement me! } } // vim:set ts=4 sw=4 si et sta sts=4 fenc=utf8 :