comparison flys-artifacts/src/main/java/de/intevation/flys/exports/WaterlevelExporter.java @ 3252:62c9bcef0680

Fix issue705 (maĆ­n value names also in w/q-range mode). flys-artifacts/trunk@4886 c6561f87-3c4e-4783-a992-168aeb5c3f6f
author Felix Wolfsteller <felix.wolfsteller@intevation.de>
date Fri, 06 Jul 2012 12:24:44 +0000
parents f8a1a8af338e
children 1a9ab048573a
comparison
equal deleted inserted replaced
3251:aeeb9192e395 3252:62c9bcef0680
42 import de.intevation.flys.utils.FLYSUtils.WQ_MODE; 42 import de.intevation.flys.utils.FLYSUtils.WQ_MODE;
43 import de.intevation.flys.utils.Formatter; 43 import de.intevation.flys.utils.Formatter;
44 44
45 45
46 /** 46 /**
47 * Generates different output formats (wst, csv, pdf) of data that resulted from
48 * a waterlevel computation.
49 *
47 * @author <a href="mailto:ingo.weinzierl@intevation.de">Ingo Weinzierl</a> 50 * @author <a href="mailto:ingo.weinzierl@intevation.de">Ingo Weinzierl</a>
48 */ 51 */
49 public class WaterlevelExporter extends AbstractExporter { 52 public class WaterlevelExporter extends AbstractExporter {
50 53
51 /** The logger used in this exporter.*/ 54 /** The logger used in this exporter.*/
237 240
238 return localizeWQKms(winfo, wqkms); 241 return localizeWQKms(winfo, wqkms);
239 } 242 }
240 243
241 244
245 /**
246 * Get a string like 'W=' or 'Q=' with a number following in localized
247 * format.
248 */
242 protected String localizeWQKms(WINFOArtifact winfo, WQKms wqkms) { 249 protected String localizeWQKms(WINFOArtifact winfo, WQKms wqkms) {
243 WQ_MODE wqmode = FLYSUtils.getWQMode(winfo); 250 WQ_MODE wqmode = FLYSUtils.getWQMode(winfo);
244 Double rawValue = wqkms.getRawValue(); 251 Double rawValue = wqkms.getRawValue();
245 252
246 if (rawValue == null) { 253 if (rawValue == null) {
260 267
261 @Override 268 @Override
262 protected void writeCSVData(CSVWriter writer) { 269 protected void writeCSVData(CSVWriter writer) {
263 logger.info("WaterlevelExporter.writeData"); 270 logger.info("WaterlevelExporter.writeData");
264 271
265 WQ_MODE mode = FLYSUtils.getWQMode((FLYSArtifact)master); 272 WQ_MODE mode = FLYSUtils.getWQMode((FLYSArtifact)master);
266 boolean atGauge = mode == WQ_MODE.QGAUGE || mode == WQ_MODE.WGAUGE; 273 boolean atGauge = mode == WQ_MODE.QGAUGE || mode == WQ_MODE.WGAUGE;
267 boolean isQ = mode == WQ_MODE.QGAUGE || mode == WQ_MODE.QFREE; 274 boolean isQ = mode == WQ_MODE.QGAUGE || mode == WQ_MODE.QFREE;
268 FLYSUtils.WQ_INPUT input 275 FLYSUtils.WQ_INPUT input
269 = FLYSUtils.getWQInputMode((FLYSArtifact)master); 276 = FLYSUtils.getWQInputMode((FLYSArtifact)master);
270 boolean isRange = input == FLYSUtils.WQ_INPUT.RANGE;
271 277
272 writeCSVMeta(writer); 278 writeCSVMeta(writer);
273 writeCSVHeader(writer, atGauge, isQ); 279 writeCSVHeader(writer, atGauge, isQ);
274 280
275 for (WQKms[] tmp: data) { 281 for (WQKms[] tmp: data) {
276 for (WQKms wqkms: tmp) { 282 for (WQKms wqkms: tmp) {
277 wQKms2CSV(writer, wqkms, atGauge, isQ, isRange); 283 wQKms2CSV(writer, wqkms, atGauge, isQ);
278 } 284 }
279 } 285 }
280 } 286 }
281 287
282 288
426 }); 432 });
427 } 433 }
428 } 434 }
429 435
430 436
437 /**
438 * Write "rows" of csv data from wqkms with writer.
439 */
431 protected void wQKms2CSV( 440 protected void wQKms2CSV(
432 CSVWriter writer, 441 CSVWriter writer,
433 WQKms wqkms, 442 WQKms wqkms,
434 boolean atGauge, 443 boolean atGauge,
435 boolean isQ, 444 boolean isQ
436 boolean isRange
437 ) { 445 ) {
438 logger.debug("WaterlevelExporter.wQKms2CSV"); 446 logger.debug("WaterlevelExporter.wQKms2CSV");
439 447
440 NumberFormat kmf = getKmFormatter(); 448 NumberFormat kmf = getKmFormatter();
441 NumberFormat wf = getWFormatter(); 449 NumberFormat wf = getWFormatter();
464 ? Formatter.getWaterlevelW(context).format(value) : null; 472 ? Formatter.getWaterlevelW(context).format(value) : null;
465 } 473 }
466 474
467 long startTime = System.currentTimeMillis(); 475 long startTime = System.currentTimeMillis();
468 476
469 String colDesc = !isRange 477 String colDesc = FLYSUtils.getNamedMainValue((WINFOArtifact)flys,
470 ? FLYSUtils.getNamedMainValue((WINFOArtifact)flys, wqkms.getRawValue()) 478 wqkms.getRawValue());
471 : desc;
472 479
473 for (int i = 0; i < size; i ++) { 480 for (int i = 0; i < size; i ++) {
474 result = wqkms.get(i, result); 481 result = wqkms.get(i, result);
475 482
476 if (atGauge) { 483 if (atGauge) {
711 718
712 if (logger.isDebugEnabled()) { 719 if (logger.isDebugEnabled()) {
713 logger.debug("Writing PDF data took " + 720 logger.debug("Writing PDF data took " +
714 (float)(stopTime-startTime)/1000f + " secs."); 721 (float)(stopTime-startTime)/1000f + " secs.");
715 } 722 }
716
717 } 723 }
718 } 724 }
719 // vim:set ts=4 sw=4 si et sta sts=4 fenc=utf8 : 725 // vim:set ts=4 sw=4 si et sta sts=4 fenc=utf8 :

http://dive4elements.wald.intevation.org