Mercurial > dive4elements > river
comparison flys-artifacts/src/main/java/de/intevation/flys/exports/WaterlevelExporter.java @ 2065:2f5628f0de0e
Part 2 of #125: add gaugename and Q description based on the selected WQ mode.
flys-artifacts/trunk@3559 c6561f87-3c4e-4783-a992-168aeb5c3f6f
author | Ingo Weinzierl <ingo.weinzierl@intevation.de> |
---|---|
date | Mon, 02 Jan 2012 09:46:39 +0000 |
parents | 97a25b54eea3 |
children | 2b6a0de47379 |
comparison
equal
deleted
inserted
replaced
2064:ca8997aa683e | 2065:2f5628f0de0e |
---|---|
26 import de.intevation.flys.artifacts.model.WQCKms; | 26 import de.intevation.flys.artifacts.model.WQCKms; |
27 import de.intevation.flys.artifacts.model.WQKms; | 27 import de.intevation.flys.artifacts.model.WQKms; |
28 import de.intevation.flys.artifacts.resources.Resources; | 28 import de.intevation.flys.artifacts.resources.Resources; |
29 | 29 |
30 import de.intevation.flys.utils.FLYSUtils; | 30 import de.intevation.flys.utils.FLYSUtils; |
31 import de.intevation.flys.utils.FLYSUtils.WQ_MODE; | |
31 import de.intevation.flys.utils.Formatter; | 32 import de.intevation.flys.utils.Formatter; |
32 | 33 |
33 | 34 |
34 /** | 35 /** |
35 * @author <a href="mailto:ingo.weinzierl@intevation.de">Ingo Weinzierl</a> | 36 * @author <a href="mailto:ingo.weinzierl@intevation.de">Ingo Weinzierl</a> |
188 | 189 |
189 @Override | 190 @Override |
190 protected void writeCSVData(CSVWriter writer) { | 191 protected void writeCSVData(CSVWriter writer) { |
191 logger.info("WaterlevelExporter.writeData"); | 192 logger.info("WaterlevelExporter.writeData"); |
192 | 193 |
194 WQ_MODE mode = FLYSUtils.getWQMode((FLYSArtifact)master); | |
195 boolean atGauge = mode == WQ_MODE.QGAUGE || mode == WQ_MODE.WGAUGE; | |
196 | |
193 writeCSVMeta(writer); | 197 writeCSVMeta(writer); |
194 writeCSVHeader(writer); | 198 writeCSVHeader(writer, atGauge); |
195 | 199 |
196 for (WQKms[] tmp: data) { | 200 for (WQKms[] tmp: data) { |
197 for (WQKms wqkms: tmp) { | 201 for (WQKms wqkms: tmp) { |
198 wQKms2CSV(writer, wqkms); | 202 wQKms2CSV(writer, wqkms, atGauge); |
199 } | 203 } |
200 } | 204 } |
201 } | 205 } |
202 | 206 |
203 | 207 |
308 | 312 |
309 writer.writeNext(new String[] { "" }); | 313 writer.writeNext(new String[] { "" }); |
310 } | 314 } |
311 | 315 |
312 | 316 |
313 protected void writeCSVHeader(CSVWriter writer) { | 317 protected void writeCSVHeader(CSVWriter writer, boolean atGauge) { |
314 logger.info("WaterlevelExporter.writeCSVHeader"); | 318 logger.info("WaterlevelExporter.writeCSVHeader"); |
315 | 319 |
316 writer.writeNext(new String[] { | 320 if (atGauge) { |
317 msg(CSV_KM_HEADER, DEFAULT_CSV_KM_HEADER), | 321 writer.writeNext(new String[] { |
318 msg(CSV_W_HEADER, DEFAULT_CSV_W_HEADER), | 322 msg(CSV_KM_HEADER, DEFAULT_CSV_KM_HEADER), |
319 msg(CSV_Q_HEADER, DEFAULT_CSV_Q_HEADER), | 323 msg(CSV_W_HEADER, DEFAULT_CSV_W_HEADER), |
320 msg(CSV_Q_DESC_HEADER, DEFAULT_CSV_Q_DESC_HEADER), | 324 msg(CSV_Q_HEADER, DEFAULT_CSV_Q_HEADER), |
321 msg(CSV_LOCATION_HEADER, DEFAULT_CSV_LOCATION_HEADER), | 325 msg(CSV_Q_DESC_HEADER, DEFAULT_CSV_Q_DESC_HEADER), |
322 msg(CSV_GAUGE_HEADER, DEFAULT_CSV_GAUGE_HEADER) | 326 msg(CSV_LOCATION_HEADER, DEFAULT_CSV_LOCATION_HEADER), |
323 }); | 327 msg(CSV_GAUGE_HEADER, DEFAULT_CSV_GAUGE_HEADER) |
324 } | 328 }); |
325 | 329 } |
326 | 330 else { |
327 protected void wQKms2CSV(CSVWriter writer, WQKms wqkms) { | 331 writer.writeNext(new String[] { |
332 msg(CSV_KM_HEADER, DEFAULT_CSV_KM_HEADER), | |
333 msg(CSV_W_HEADER, DEFAULT_CSV_W_HEADER), | |
334 msg(CSV_Q_HEADER, DEFAULT_CSV_Q_HEADER), | |
335 msg(CSV_LOCATION_HEADER, DEFAULT_CSV_LOCATION_HEADER) | |
336 }); | |
337 } | |
338 } | |
339 | |
340 | |
341 protected void wQKms2CSV(CSVWriter writer, WQKms wqkms, boolean atGauge) { | |
328 logger.debug("WaterlevelExporter.wQKms2CSV"); | 342 logger.debug("WaterlevelExporter.wQKms2CSV"); |
329 | 343 |
330 NumberFormat kmf = getKmFormatter(); | 344 NumberFormat kmf = getKmFormatter(); |
331 NumberFormat wf = getWFormatter(); | 345 NumberFormat wf = getWFormatter(); |
332 NumberFormat qf = getQFormatter(); | 346 NumberFormat qf = getQFormatter(); |
333 | 347 |
334 int size = wqkms.size(); | 348 int size = wqkms.size(); |
335 double[] result = new double[3]; | 349 double[] result = new double[3]; |
336 | 350 |
337 FLYSArtifact flys = (FLYSArtifact) master; | 351 FLYSArtifact flys = (FLYSArtifact) master; |
352 String gauge = FLYSUtils.getGaugename(flys); | |
353 String desc = ""; | |
354 | |
355 if (flys instanceof WINFOArtifact) { | |
356 desc = getColumnTitle((WINFOArtifact)flys, wqkms); | |
357 } | |
338 | 358 |
339 for (int i = 0; i < size; i ++) { | 359 for (int i = 0; i < size; i ++) { |
340 result = wqkms.get(i, result); | 360 result = wqkms.get(i, result); |
341 | 361 |
342 writer.writeNext(new String[] { | 362 if (atGauge) { |
343 kmf.format(result[2]), | 363 writer.writeNext(new String[] { |
344 wf.format(result[0]), | 364 kmf.format(result[2]), |
345 qf.format(result[1]), | 365 wf.format(result[0]), |
346 "", // Bezeichnung | 366 qf.format(result[1]), |
347 FLYSUtils.getLocationDescription(flys, result[2]), | 367 desc, |
348 "" // Bezugspegel | 368 FLYSUtils.getLocationDescription(flys, result[2]), |
349 }); | 369 gauge |
370 }); | |
371 } | |
372 else { | |
373 writer.writeNext(new String[] { | |
374 kmf.format(result[2]), | |
375 wf.format(result[0]), | |
376 qf.format(result[1]), | |
377 FLYSUtils.getLocationDescription(flys, result[2]) | |
378 }); | |
379 } | |
350 } | 380 } |
351 } | 381 } |
352 | 382 |
353 | 383 |
354 /** | 384 /** |