Mercurial > dive4elements > river
comparison artifacts/src/main/java/org/dive4elements/river/artifacts/bundu/bezugswst/BezugswstMissVolCalculationResult2.java @ 9446:e60584f2a531
Added bundu bzws calculation for missing volumes (masses still not yet ready) and results1/2/3
author | mschaefer |
---|---|
date | Tue, 21 Aug 2018 18:19:35 +0200 |
parents | ecadc9ed0ba0 |
children | d32b11d585cd |
comparison
equal
deleted
inserted
replaced
9445:ff0e5386de70 | 9446:e60584f2a531 |
---|---|
20 import org.dive4elements.river.artifacts.common.ExportContextPDF; | 20 import org.dive4elements.river.artifacts.common.ExportContextPDF; |
21 import org.dive4elements.river.artifacts.common.GeneralResultType; | 21 import org.dive4elements.river.artifacts.common.GeneralResultType; |
22 import org.dive4elements.river.artifacts.common.MetaAndTableJRDataSource; | 22 import org.dive4elements.river.artifacts.common.MetaAndTableJRDataSource; |
23 import org.dive4elements.river.artifacts.common.ResultRow; | 23 import org.dive4elements.river.artifacts.common.ResultRow; |
24 import org.dive4elements.river.artifacts.sinfo.util.RiverInfo; | 24 import org.dive4elements.river.artifacts.sinfo.util.RiverInfo; |
25 import org.dive4elements.river.model.BedHeightValueType; | |
25 | 26 |
26 /** | 27 /** |
27 * Contains the results of a //TODO LINK{@link BezugswstCalculation}. | 28 * Contains the results of a //TODO LINK{@link BezugswstCalculation}. |
28 * | 29 * |
29 * @author Gernot Belger | 30 * @author Gernot Belger |
33 private static final long serialVersionUID = 1L; | 34 private static final long serialVersionUID = 1L; |
34 | 35 |
35 private static final String JASPER_FILE = "/jasper/templates/bundu.bezugswst.result2.jrxml"; | 36 private static final String JASPER_FILE = "/jasper/templates/bundu.bezugswst.result2.jrxml"; |
36 private static final String fieldVolumeMsgKey = "bundu.export.bezugswst.csv.meta.miss.volume.field"; | 37 private static final String fieldVolumeMsgKey = "bundu.export.bezugswst.csv.meta.miss.volume.field"; |
37 private static final String fieldMassMsgKey = "bundu.export.bezugswst.csv.meta.miss.mass.field"; | 38 private static final String fieldMassMsgKey = "bundu.export.bezugswst.csv.meta.miss.mass.field"; |
38 private static final int fieldSize = 10; | |
39 | 39 |
40 public BezugswstMissVolCalculationResult2(final String label, final Collection<ResultRow> rows) { | 40 public BezugswstMissVolCalculationResult2(final String label, final Collection<ResultRow> rows) { |
41 super(label, rows); | 41 super(label, rows); |
42 | 42 |
43 } | 43 } |
55 protected String[] formatRow(final AbstractExportContext exportContext, final ResultRow row) { | 55 protected String[] formatRow(final AbstractExportContext exportContext, final ResultRow row) { |
56 | 56 |
57 final Collection<String> lines = new ArrayList<>(20); | 57 final Collection<String> lines = new ArrayList<>(20); |
58 | 58 |
59 lines.add(exportContext.formatRowValue(row, GeneralResultType.station)); | 59 lines.add(exportContext.formatRowValue(row, GeneralResultType.station)); |
60 final List<String> vFields = (List<String>) row.getValue(BunduResultType.missVolumeFields); | 60 @SuppressWarnings("unchecked") |
61 assert (vFields.size() == fieldSize); // immer abgleichen mit der Calculation! | 61 final List<Double> vFields = (List<Double>) row.getValue(BunduResultType.missVolumeFields); |
62 final List<String> mFields = (List<String>) row.getValue(BunduResultType.missMassFields); | 62 assert (vFields.size() == fieldSize()); // immer abgleichen mit der Calculation! |
63 @SuppressWarnings("unchecked") | |
64 final List<Double> mFields = (List<Double>) row.getValue(BunduResultType.missMassFields); | |
63 for (int i = 0; i <= vFields.size() - 1; i++) { | 65 for (int i = 0; i <= vFields.size() - 1; i++) { |
64 lines.add(vFields.get(i)); | 66 lines.add(BunduResultType.missVolumeFields.exportValue(exportContext.getContext(), vFields.get(i))); |
65 lines.add(mFields.get(i)); | 67 lines.add(BunduResultType.missMassFields.exportValue(exportContext.getContext(), mFields.get(i))); |
66 } | 68 } |
67 lines.add(exportContext.formatRowValue(row, BunduResultType.missVolumeMeanBed)); | 69 lines.add(exportContext.formatRowValue(row, BunduResultType.missVolumeMeanBed)); |
68 lines.add(exportContext.formatRowValue(row, BunduResultType.missMassMeanBed)); | 70 lines.add(exportContext.formatRowValue(row, BunduResultType.missMassMeanBed)); |
69 | 71 |
70 return lines.toArray(new String[lines.size()]); | 72 return lines.toArray(new String[lines.size()]); |
71 } | 73 } |
72 | 74 |
73 @Override | 75 @Override |
74 public void writeCSVHeader(final ExportContextCSV exportContextCSV, final RiverInfo river) { | 76 public void writeCSVHeader(final ExportContextCSV exportContextCSV, final RiverInfo river) { |
75 | 77 |
76 final int colSize = 2 * fieldSize + 2; | 78 final int colSize = 2 * fieldSize() + 3; |
77 exportContextCSV.writeTitleForTabs("bundu.export.csv.title.bezugswst.result2", colSize); // Voraussetzung für Tabs ist, dass der Titel vor den Headern | 79 exportContextCSV.writeTitleForTabs("bundu.export.csv.title.bezugswst.result2", colSize); // Voraussetzung für Tabs ist, dass der Titel vor den Headern |
78 final Collection<String> header = new ArrayList<>(colSize); | 80 final Collection<String> header = new ArrayList<>(colSize); |
79 | 81 |
80 header.add(exportContextCSV.formatCsvHeader(GeneralResultType.station)); | 82 header.add(exportContextCSV.formatCsvHeader(GeneralResultType.station)); |
81 | 83 |
82 for (int i = 1; i <= fieldSize; i++) { | 84 for (int i = 1; i <= fieldSize(); i++) { |
83 header.add(exportContextCSV.msg(fieldVolumeMsgKey, i)); | 85 header.add(exportContextCSV.msg(fieldVolumeMsgKey, i)); |
84 header.add(exportContextCSV.msg(fieldMassMsgKey, i)); | 86 header.add(exportContextCSV.msg(fieldMassMsgKey, i)); |
85 } | 87 } |
86 header.add(exportContextCSV.formatCsvHeader(BunduResultType.missVolumeMeanBed)); | 88 header.add(exportContextCSV.formatCsvHeader(BunduResultType.missVolumeMeanBed)); |
87 header.add(exportContextCSV.formatCsvHeader(BunduResultType.missMassMeanBed)); | 89 header.add(exportContextCSV.formatCsvHeader(BunduResultType.missMassMeanBed)); |
88 | 90 |
89 exportContextCSV.writeCSVLine(header.toArray(new String[header.size()])); | 91 exportContextCSV.writeCSVLine(header.toArray(new String[header.size()])); |
90 | 92 |
93 } | |
94 | |
95 /** | |
96 * Number of elements of the various field lists | |
97 */ | |
98 private int fieldSize() { | |
99 return BedHeightValueType.FIELD_LAST_INDEX - BedHeightValueType.FIELD_FIRST_INDEX + 1; | |
91 } | 100 } |
92 | 101 |
93 @Override | 102 @Override |
94 protected String[] formatCSVRow(final ExportContextCSV exportContextCSV, final ResultRow row) { | 103 protected String[] formatCSVRow(final ExportContextCSV exportContextCSV, final ResultRow row) { |
95 | 104 |
104 | 113 |
105 @Override | 114 @Override |
106 protected void addJRTableHeader(final ExportContextPDF exportContextPDF, final MetaAndTableJRDataSource source) { | 115 protected void addJRTableHeader(final ExportContextPDF exportContextPDF, final MetaAndTableJRDataSource source) { |
107 /* column headings */ | 116 /* column headings */ |
108 | 117 |
118 // TODO Auftrennung jeder Volumen+Masse-Spalte in zwei getrennte Volumen- und Masse-Spalten | |
109 exportContextPDF.addJRMetadata(source, "station_header", GeneralResultType.station); | 119 exportContextPDF.addJRMetadata(source, "station_header", GeneralResultType.station); |
110 for (int i = 1; i <= fieldSize; i++) { | 120 for (int i = 1; i <= fieldSize(); i++) { |
111 exportContextPDF.addJRMetadata(source, "field_header" + String.valueOf(i), exportContextPDF.msg(fieldVolumeMsgKey, i)); | 121 exportContextPDF.addJRMetadata(source, "field_header" + String.valueOf(i), exportContextPDF.msg(fieldVolumeMsgKey, i)); |
112 exportContextPDF.addJRMetadata(source, "field_header" + String.valueOf(i), exportContextPDF.msg(fieldMassMsgKey, i)); | 122 exportContextPDF.addJRMetadata(source, "field_header" + String.valueOf(i), exportContextPDF.msg(fieldMassMsgKey, i)); |
113 } | 123 } |
114 exportContextPDF.addJRMetadata(source, "mean_bedheight_header", BunduResultType.missVolumeMeanBed); | 124 exportContextPDF.addJRMetadata(source, "mean_bedheight_header", BunduResultType.missVolumeMeanBed); |
115 exportContextPDF.addJRMetadata(source, "mean_bedheight_header", BunduResultType.missMassMeanBed); | 125 exportContextPDF.addJRMetadata(source, "mean_bedheight_header", BunduResultType.missMassMeanBed); |