Mercurial > dive4elements > river
comparison artifacts/src/main/java/org/dive4elements/river/artifacts/sinfo/flowdepthminmax/FlowDepthMinMaxExporter.java @ 9006:7134a4c7d1b6
U-Info S-Info general work
author | gernotbelger |
---|---|
date | Tue, 17 Apr 2018 13:20:25 +0200 |
parents | d5802f22e4f5 |
children | 23945061daec |
comparison
equal
deleted
inserted
replaced
9005:460fcc128794 | 9006:7134a4c7d1b6 |
---|---|
6 * documentation coming with Dive4Elements River for details. | 6 * documentation coming with Dive4Elements River for details. |
7 */ | 7 */ |
8 | 8 |
9 package org.dive4elements.river.artifacts.sinfo.flowdepthminmax; | 9 package org.dive4elements.river.artifacts.sinfo.flowdepthminmax; |
10 | 10 |
11 import java.io.OutputStream; | |
11 import java.util.ArrayList; | 12 import java.util.ArrayList; |
12 import java.util.Collection; | 13 import java.util.Collection; |
13 | 14 |
14 import org.apache.log4j.Logger; | 15 import org.apache.log4j.Logger; |
15 import org.dive4elements.river.artifacts.common.GeneralResultType; | 16 import org.dive4elements.river.artifacts.common.GeneralResultType; |
17 import org.dive4elements.river.artifacts.common.JasperReporter; | |
18 import org.dive4elements.river.artifacts.common.MetaAndTableJRDataSource; | |
16 import org.dive4elements.river.artifacts.common.ResultRow; | 19 import org.dive4elements.river.artifacts.common.ResultRow; |
17 import org.dive4elements.river.artifacts.sinfo.common.AbstractSInfoExporter; | 20 import org.dive4elements.river.artifacts.sinfo.common.AbstractSInfoExporter; |
18 import org.dive4elements.river.artifacts.sinfo.common.SInfoResultType; | 21 import org.dive4elements.river.artifacts.sinfo.common.SInfoResultType; |
19 import org.dive4elements.river.artifacts.sinfo.util.BedHeightInfo; | 22 import org.dive4elements.river.artifacts.sinfo.util.BedHeightInfo; |
20 import org.dive4elements.river.artifacts.sinfo.util.MetaAndTableJRDataSource; | |
21 import org.dive4elements.river.artifacts.sinfo.util.RiverInfo; | 23 import org.dive4elements.river.artifacts.sinfo.util.RiverInfo; |
22 import org.dive4elements.river.artifacts.sinfo.util.WstInfo; | 24 import org.dive4elements.river.artifacts.sinfo.util.WstInfo; |
23 | 25 |
24 import au.com.bytecode.opencsv.CSVWriter; | 26 import au.com.bytecode.opencsv.CSVWriter; |
27 import net.sf.jasperreports.engine.JRException; | |
25 | 28 |
26 /** | 29 /** |
27 * Generates different output formats (csv, pdf) of data that resulted from a flow depths computation. | 30 * Generates different output formats (csv, pdf) of data that resulted from a flow depths computation. |
28 * | 31 * |
29 * @author <a href="mailto:ingo.weinzierl@intevation.de">Ingo Weinzierl</a> | 32 * @author <a href="mailto:ingo.weinzierl@intevation.de">Ingo Weinzierl</a> |
33 public class FlowDepthMinMaxExporter extends AbstractSInfoExporter<FlowDepthMinMaxCalculationResult, FlowDepthMinMaxCalculationResults> { | 36 public class FlowDepthMinMaxExporter extends AbstractSInfoExporter<FlowDepthMinMaxCalculationResult, FlowDepthMinMaxCalculationResults> { |
34 | 37 |
35 /** The log used in this exporter. */ | 38 /** The log used in this exporter. */ |
36 private static Logger log = Logger.getLogger(FlowDepthMinMaxExporter.class); | 39 private static Logger log = Logger.getLogger(FlowDepthMinMaxExporter.class); |
37 | 40 |
38 private static final String JASPER_FILE = "/jasper/sinfo.flowdepthminmax.jasper"; | 41 private static final String JASPER_FILE = "/jasper/templates/sinfo.flowdepthminmax.jrxml"; |
39 | 42 |
40 @Override | 43 @Override |
41 protected Logger getLog() { | 44 protected Logger getLog() { |
42 return log; | 45 return log; |
43 } | 46 } |
49 final BedHeightInfo sounding = result.getSounding(); | 52 final BedHeightInfo sounding = result.getSounding(); |
50 super.writeCSVSoundingMetadata(writer, sounding); | 53 super.writeCSVSoundingMetadata(writer, sounding); |
51 writer.writeNext(new String[] { "" }); // break line | 54 writer.writeNext(new String[] { "" }); // break line |
52 final WstInfo wst = result.getWst(); | 55 final WstInfo wst = result.getWst(); |
53 writeCSVWaterlevelMetadata(writer, wst); | 56 writeCSVWaterlevelMetadata(writer, wst); |
57 writer.writeNext(new String[] { "" }); // break line | |
54 } | 58 } |
55 | 59 |
56 @Override | 60 @Override |
57 protected void writeCSVGlobalMetadata(final CSVWriter writer, final FlowDepthMinMaxCalculationResults results) { | 61 protected void writeCSVGlobalMetadata(final CSVWriter writer, final FlowDepthMinMaxCalculationResults results) { |
58 | 62 |
118 | 122 |
119 return lines.toArray(new String[lines.size()]); | 123 return lines.toArray(new String[lines.size()]); |
120 } | 124 } |
121 | 125 |
122 @Override | 126 @Override |
123 protected final String getJasperFile() { | |
124 return JASPER_FILE; | |
125 } | |
126 | |
127 @Override | |
128 protected final void addJRMetaData(final MetaAndTableJRDataSource source, final FlowDepthMinMaxCalculationResults results) { | 127 protected final void addJRMetaData(final MetaAndTableJRDataSource source, final FlowDepthMinMaxCalculationResults results) { |
129 | 128 |
130 /* general metadata */ | 129 /* general metadata */ |
131 super.addJRMetaData(source, results); | 130 super.addJRMetaData(source, results); |
132 | 131 |
141 source.addMetaData("bedheight_header", SInfoResultType.meanBedHeight.getPdfHeader(this.context.getMeta())); | 140 source.addMetaData("bedheight_header", SInfoResultType.meanBedHeight.getPdfHeader(this.context.getMeta())); |
142 source.addMetaData("sounding_name_header", SInfoResultType.soundingLabel.getPdfHeader(this.context.getMeta())); | 141 source.addMetaData("sounding_name_header", SInfoResultType.soundingLabel.getPdfHeader(this.context.getMeta())); |
143 source.addMetaData("location_header", SInfoResultType.location.getPdfHeader(this.context.getMeta())); | 142 source.addMetaData("location_header", SInfoResultType.location.getPdfHeader(this.context.getMeta())); |
144 } | 143 } |
145 | 144 |
145 @Override | |
146 protected void writePDF(final OutputStream out) { | |
147 try { | |
148 final MetaAndTableJRDataSource source = createJRData(this.data); | |
149 | |
150 final JasperReporter reporter = new JasperReporter(); | |
151 reporter.addReport(JASPER_FILE, source); | |
152 reporter.exportPDF(out); | |
153 } | |
154 catch (final JRException je) { | |
155 getLog().warn("Error generating PDF Report!", je); | |
156 } | |
157 } | |
158 | |
146 } | 159 } |