Mercurial > dive4elements > river
comparison artifacts/src/main/java/org/dive4elements/river/artifacts/sinfo/flowdepthminmax/FlowDepthMinMaxExporter.java @ 8997:d5802f22e4f5
Work on uinfo
author | gernotbelger |
---|---|
date | Thu, 12 Apr 2018 19:14:19 +0200 |
parents | 0adc6d04de95 |
children | 7134a4c7d1b6 |
comparison
equal
deleted
inserted
replaced
8996:fb9430250899 | 8997:d5802f22e4f5 |
---|---|
10 | 10 |
11 import java.util.ArrayList; | 11 import java.util.ArrayList; |
12 import java.util.Collection; | 12 import java.util.Collection; |
13 | 13 |
14 import org.apache.log4j.Logger; | 14 import org.apache.log4j.Logger; |
15 import org.dive4elements.river.artifacts.common.GeneralResultType; | |
16 import org.dive4elements.river.artifacts.common.ResultRow; | |
15 import org.dive4elements.river.artifacts.sinfo.common.AbstractSInfoExporter; | 17 import org.dive4elements.river.artifacts.sinfo.common.AbstractSInfoExporter; |
16 import org.dive4elements.river.artifacts.sinfo.common.SInfoResultRow; | |
17 import org.dive4elements.river.artifacts.sinfo.common.SInfoResultType; | 18 import org.dive4elements.river.artifacts.sinfo.common.SInfoResultType; |
18 import org.dive4elements.river.artifacts.sinfo.util.BedHeightInfo; | 19 import org.dive4elements.river.artifacts.sinfo.util.BedHeightInfo; |
19 import org.dive4elements.river.artifacts.sinfo.util.MetaAndTableJRDataSource; | 20 import org.dive4elements.river.artifacts.sinfo.util.MetaAndTableJRDataSource; |
20 import org.dive4elements.river.artifacts.sinfo.util.RiverInfo; | 21 import org.dive4elements.river.artifacts.sinfo.util.RiverInfo; |
21 import org.dive4elements.river.artifacts.sinfo.util.WstInfo; | 22 import org.dive4elements.river.artifacts.sinfo.util.WstInfo; |
45 protected void writeCSVResultMetadata(final CSVWriter writer, final FlowDepthMinMaxCalculationResults results, | 46 protected void writeCSVResultMetadata(final CSVWriter writer, final FlowDepthMinMaxCalculationResults results, |
46 final FlowDepthMinMaxCalculationResult result) { | 47 final FlowDepthMinMaxCalculationResult result) { |
47 | 48 |
48 final BedHeightInfo sounding = result.getSounding(); | 49 final BedHeightInfo sounding = result.getSounding(); |
49 super.writeCSVSoundingMetadata(writer, sounding); | 50 super.writeCSVSoundingMetadata(writer, sounding); |
50 | 51 writer.writeNext(new String[] { "" }); // break line |
51 final WstInfo wst = result.getWst(); | 52 final WstInfo wst = result.getWst(); |
52 writeCSVWaterlevelMetadata(writer, wst); | 53 writeCSVWaterlevelMetadata(writer, wst); |
53 } | 54 } |
54 | 55 |
55 @Override | 56 @Override |
56 protected void writeCSVGlobalMetadata(final CSVWriter writer, final FlowDepthMinMaxCalculationResults results) { | 57 protected void writeCSVGlobalMetadata(final CSVWriter writer, final FlowDepthMinMaxCalculationResults results) { |
57 | 58 |
58 super.writeCSVGlobalMetadataDefaults(writer, results); | 59 super.writeCSVGlobalMetadataDefaults(writer, results); |
59 | |
60 writer.writeNext(new String[] { "" }); | |
61 } | 60 } |
62 | 61 |
63 /** | 62 /** |
64 * Write the header, with different headings depending on whether at a | 63 * Write the header, with different headings depending on whether at a |
65 * gauge or at a location. | 64 * gauge or at a location. |
71 protected void writeCSVHeader(final CSVWriter writer, final FlowDepthMinMaxCalculationResults results, final RiverInfo river) { | 70 protected void writeCSVHeader(final CSVWriter writer, final FlowDepthMinMaxCalculationResults results, final RiverInfo river) { |
72 log.info("FlowDepthExporter.writeCSVHeader"); | 71 log.info("FlowDepthExporter.writeCSVHeader"); |
73 | 72 |
74 final Collection<String> header = new ArrayList<>(11); | 73 final Collection<String> header = new ArrayList<>(11); |
75 | 74 |
76 header.add(msg(SInfoResultType.station.getCsvHeader())); | 75 header.add(msg(GeneralResultType.station.getCsvHeader())); |
77 header.add(msgUnit(SInfoResultType.flowdepthmin.getCsvHeader(), SInfoResultType.flowdepthmin.getUnit())); | 76 header.add(msgUnit(SInfoResultType.flowdepthmin.getCsvHeader(), SInfoResultType.flowdepthmin.getUnit())); |
78 header.add(msgUnit(SInfoResultType.flowdepthmax.getCsvHeader(), SInfoResultType.flowdepthmax.getUnit())); | 77 header.add(msgUnit(SInfoResultType.flowdepthmax.getCsvHeader(), SInfoResultType.flowdepthmax.getUnit())); |
79 header.add(msgUnit(SInfoResultType.waterlevel.getCsvHeader(), river.getWstUnit())); | 78 header.add(msgUnit(SInfoResultType.waterlevel.getCsvHeader(), river.getWstUnit())); |
80 header.add(msgUnit(SInfoResultType.discharge.getCsvHeader(), SInfoResultType.discharge.getUnit())); | 79 header.add(msgUnit(SInfoResultType.discharge.getCsvHeader(), SInfoResultType.discharge.getUnit())); |
81 header.add(msg(SInfoResultType.waterlevelLabel.getCsvHeader())); | 80 header.add(msg(SInfoResultType.waterlevelLabel.getCsvHeader())); |
85 header.add(msg(SInfoResultType.location.getCsvHeader())); | 84 header.add(msg(SInfoResultType.location.getCsvHeader())); |
86 | 85 |
87 writer.writeNext(header.toArray(new String[header.size()])); | 86 writer.writeNext(header.toArray(new String[header.size()])); |
88 } | 87 } |
89 | 88 |
90 @Override | |
91 protected String[] formatCSVRow(final FlowDepthMinMaxCalculationResults results, final FlowDepthMinMaxCalculationResult result, final SInfoResultRow row) { | |
92 return formatRow(result, row); | |
93 } | |
94 | |
95 /** | 89 /** |
96 * Format a row of a flow depth result into an array of string, both used by csv and pdf | 90 * Format a row of a flow depth result into an array of string, both used by csv and pdf |
97 * | 91 * |
98 * @param result | 92 * @param result |
99 * | 93 * |
100 * @param useTkh | 94 * @param useTkh |
101 */ | 95 */ |
102 private String[] formatRow(final FlowDepthMinMaxCalculationResult result, final SInfoResultRow row) { | 96 @Override |
97 protected String[] formatRow(final FlowDepthMinMaxCalculationResults results, final ResultRow row, final ExportMode mode) { | |
103 | 98 |
104 final Collection<String> lines = new ArrayList<>(10); | 99 final Collection<String> lines = new ArrayList<>(10); |
105 | 100 |
106 lines.add(row.exportValue(this.context, SInfoResultType.station)); | 101 lines.add(row.exportValue(this.context, GeneralResultType.station)); |
107 | 102 |
108 // REMARK: null check as pdf will call this with null and in that case we show all columns (to avoid multiple jasper | 103 // REMARK: null check as pdf will call this with null and in that case we show all columns (to avoid multiple jasper |
109 // FIXME: does not work like this: we may have several pairs of min/max; so we need to look at all of them? | 104 // FIXME: does not work like this: we may have several pairs of min/max; so we need to look at all of them? |
110 // templates) | 105 // templates) |
111 // if (result == null || result.getMinSounding() != null) | 106 // if (result == null || result.getMinSounding() != null) |
131 | 126 |
132 @Override | 127 @Override |
133 protected final void addJRMetaData(final MetaAndTableJRDataSource source, final FlowDepthMinMaxCalculationResults results) { | 128 protected final void addJRMetaData(final MetaAndTableJRDataSource source, final FlowDepthMinMaxCalculationResults results) { |
134 | 129 |
135 /* general metadata */ | 130 /* general metadata */ |
136 super.addJRMetaDataDefaults(source, results); | 131 super.addJRMetaData(source, results); |
137 | 132 |
138 /* column headings */ | 133 /* column headings */ |
139 source.addMetaData("station_header", SInfoResultType.station.getPdfHeader(this.context.getMeta())); | 134 source.addMetaData("station_header", GeneralResultType.station.getPdfHeader(this.context.getMeta())); |
140 source.addMetaData("flowdepthmin_header", SInfoResultType.flowdepthmin.getPdfHeader(this.context.getMeta())); | 135 source.addMetaData("flowdepthmin_header", SInfoResultType.flowdepthmin.getPdfHeader(this.context.getMeta())); |
141 source.addMetaData("flowdepthmax_header", SInfoResultType.flowdepthmax.getPdfHeader(this.context.getMeta())); | 136 source.addMetaData("flowdepthmax_header", SInfoResultType.flowdepthmax.getPdfHeader(this.context.getMeta())); |
142 source.addMetaData("waterlevel_header", SInfoResultType.waterlevel.getPdfHeader(this.context.getMeta())); | 137 source.addMetaData("waterlevel_header", SInfoResultType.waterlevel.getPdfHeader(this.context.getMeta())); |
143 source.addMetaData("discharge_header", SInfoResultType.discharge.getPdfHeader(this.context.getMeta())); | 138 source.addMetaData("discharge_header", SInfoResultType.discharge.getPdfHeader(this.context.getMeta())); |
144 source.addMetaData("waterlevel_name_header", SInfoResultType.waterlevelLabel.getPdfHeader(this.context.getMeta())); | 139 source.addMetaData("waterlevel_name_header", SInfoResultType.waterlevelLabel.getPdfHeader(this.context.getMeta())); |
146 source.addMetaData("bedheight_header", SInfoResultType.meanBedHeight.getPdfHeader(this.context.getMeta())); | 141 source.addMetaData("bedheight_header", SInfoResultType.meanBedHeight.getPdfHeader(this.context.getMeta())); |
147 source.addMetaData("sounding_name_header", SInfoResultType.soundingLabel.getPdfHeader(this.context.getMeta())); | 142 source.addMetaData("sounding_name_header", SInfoResultType.soundingLabel.getPdfHeader(this.context.getMeta())); |
148 source.addMetaData("location_header", SInfoResultType.location.getPdfHeader(this.context.getMeta())); | 143 source.addMetaData("location_header", SInfoResultType.location.getPdfHeader(this.context.getMeta())); |
149 } | 144 } |
150 | 145 |
151 @Override | |
152 protected String[] formatPDFRow(final FlowDepthMinMaxCalculationResults results, final SInfoResultRow row) { | |
153 return formatRow(null, row); | |
154 } | |
155 } | 146 } |