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 /**

http://dive4elements.wald.intevation.org