comparison artifacts/src/main/java/org/dive4elements/river/artifacts/sinfo/common/AbstractSInfoExporter.java @ 8938:9c02733a1b3c

Work on Sinfo-tkh - exports; using same logic for wst-description as winfo
author gernotbelger
date Tue, 06 Mar 2018 17:09:39 +0100
parents 791714b92b5c
children 5d5d482da3e9
comparison
equal deleted inserted replaced
8937:8596f95673b1 8938:9c02733a1b3c
50 this.data = null; 50 this.data = null;
51 51
52 if (d instanceof CalculationResult) { 52 if (d instanceof CalculationResult) {
53 53
54 final Object dat = ((CalculationResult) d).getData(); 54 final Object dat = ((CalculationResult) d).getData();
55 if (dat != null) 55 if (dat != null) {
56 this.data = (RESULTS) dat; 56 @SuppressWarnings("unchecked")
57 final RESULTS result = (RESULTS) dat;
58 this.data = result;
59 }
57 } 60 }
58 } 61 }
59 62
60 @Override 63 @Override
61 protected final void writeCSVData(final CSVWriter writer) { 64 protected final void writeCSVData(final CSVWriter writer) {
65 final RESULTS results = this.data; 68 final RESULTS results = this.data;
66 69
67 final RiverInfo river = results.getRiver(); 70 final RiverInfo river = results.getRiver();
68 71
69 /* write as csv */ 72 /* write as csv */
70 writeCSVMeta(writer, results); 73 writeCSVGlobalMetadata(writer, results);
71 writeCSVHeader(writer, river); 74 writeCSVHeader(writer, results, river);
72 75
73 for (final RESULT result : results.getResults()) { 76 for (final RESULT result : results.getResults()) {
74 writeCSVResult(writer, result); 77 writeCSVResult(writer, results, result);
75 } 78 }
76 } 79 }
77 80
78 protected abstract void writeCSVHeader(final CSVWriter writer, final RiverInfo river); 81 protected abstract void writeCSVHeader(final CSVWriter writer, final RESULTS results, final RiverInfo river);
79 82
80 protected abstract void writeCSVMeta(final CSVWriter writer, final RESULTS results); 83 /**
84 * Add metadata that is once written to the top of the file.
85 */
86 protected abstract void writeCSVGlobalMetadata(final CSVWriter writer, final RESULTS results);
81 87
82 protected final void writeCSVMetaEntry(final CSVWriter writer, final String message, final Object... messageArgs) { 88 protected final void writeCSVMetaEntry(final CSVWriter writer, final String message, final Object... messageArgs) {
83 89
84 final CallMeta meta = this.context.getMeta(); 90 final CallMeta meta = this.context.getMeta();
85 91
86 writer.writeNext(new String[] { Resources.getMsg(meta, message, message, messageArgs) }); 92 writer.writeNext(new String[] { Resources.getMsg(meta, message, message, messageArgs) });
87 } 93 }
88 94
89 protected final void writeCSVResult(final CSVWriter writer, final RESULT result) { 95 protected final void writeCSVResult(final CSVWriter writer, final RESULTS results, final RESULT result) {
90 96
91 writeCSVResultHeader(writer, result); 97 writeCSVResultMetadata(writer, results, result);
92 98
93 /* nwo the value rows */ 99 /* nwo the value rows */
94 final Collection<ROW> rows = result.getRows(); 100 final Collection<ROW> rows = result.getRows();
95 for (final ROW row : rows) { 101 for (final ROW row : rows) {
96 writeCSVRow(writer, row); 102 writeCSVRow(writer, results, row);
97 } 103 }
98 } 104 }
99 105
100 protected abstract void writeCSVResultHeader(CSVWriter writer, RESULT result); 106 /**
107 * Add metadata that is written once per result set.
108 */
109 protected abstract void writeCSVResultMetadata(CSVWriter writer, RESULTS results, RESULT result);
101 110
102 protected final void writeCSVRow(final CSVWriter writer, final ROW row) { 111 protected final void writeCSVRow(final CSVWriter writer, final RESULTS results, final ROW row) {
103 getLog().debug("writeCSVFlowDepthRow"); 112 getLog().debug("writeCSVFlowDepthRow");
104 113
105 final String[] formattedRow = formatCSVRow(row); 114 final String[] formattedRow = formatCSVRow(results, row);
106 writer.writeNext(formattedRow); 115 writer.writeNext(formattedRow);
107 } 116 }
108 117
109 protected abstract String[] formatCSVRow(final ROW row); 118 protected abstract String[] formatCSVRow(RESULTS results, final ROW row);
110 119
111 @Override 120 @Override
112 protected final void writePDF(final OutputStream outStream) { 121 protected final void writePDF(final OutputStream outStream) {
113 getLog().debug("write PDF"); 122 getLog().debug("write PDF");
114 123
142 final MetaAndTableJRDataSource source = new MetaAndTableJRDataSource(); 151 final MetaAndTableJRDataSource source = new MetaAndTableJRDataSource();
143 152
144 addJRMetaData(source, results); 153 addJRMetaData(source, results);
145 154
146 for (final RESULT result : results.getResults()) { 155 for (final RESULT result : results.getResults()) {
147 addJRTableData(source, result); 156 addJRTableData(source, results, result);
148 } 157 }
149 158
150 return source; 159 return source;
151 } 160 }
152 161
153 protected abstract void addJRMetaData(final MetaAndTableJRDataSource source, final RESULTS results); 162 protected abstract void addJRMetaData(final MetaAndTableJRDataSource source, final RESULTS results);
154 163
155 protected final void addJRTableData(final MetaAndTableJRDataSource source, final RESULT result) { 164 protected final void addJRTableData(final MetaAndTableJRDataSource source, final RESULTS results, final RESULT result) {
156 165
157 final Collection<ROW> rows = result.getRows(); 166 final Collection<ROW> rows = result.getRows();
158 167
159 for (final ROW row : rows) { 168 for (final ROW row : rows) {
160 169
161 final String[] formattedRow = formatPDFRow(row); 170 final String[] formattedRow = formatPDFRow(results, row);
162 source.addData(formattedRow); 171 source.addData(formattedRow);
163 } 172 }
164 } 173 }
165 174
166 protected abstract String[] formatPDFRow(final ROW row); 175 protected abstract String[] formatPDFRow(RESULTS results, final ROW row);
167 } 176 }

http://dive4elements.wald.intevation.org