Mercurial > dive4elements > river
annotate flys-backend/src/main/java/de/intevation/flys/importer/parsers/BedHeightEpochParser.java @ 4198:1cdbd8a0c994
Added two new tables ClickableQDTable and ClickableWTable and made Ws and Qs clickable in historical discharge calculation.
The new tables define listener interfaces (clicked lower or upper icon) to listen to user clicks.
In addition to this, there is an enum ClickMode with NONE, SINGLE and RANGE options, which allows to
specifiy, which icons are displayed in the tables. NONE means no icon for user clicks, SINGLE has 1
icon, RANGE 2 icons for lower and upper.
author | Ingo Weinzierl <ingo.weinzierl@intevation.de> |
---|---|
date | Mon, 22 Oct 2012 13:31:25 +0200 |
parents | 64b73dc1571c |
children | b3dd14fc13a6 |
rev | line source |
---|---|
2806
33f40b23edd8
Initial checkin for parsing MINFO bed heights.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
1 package de.intevation.flys.importer.parsers; |
33f40b23edd8
Initial checkin for parsing MINFO bed heights.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
2 |
2811
8926571e47fb
Finished importing MINFO bed heights (single and epoch).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2806
diff
changeset
|
3 import java.math.BigDecimal; |
2806
33f40b23edd8
Initial checkin for parsing MINFO bed heights.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
4 |
2811
8926571e47fb
Finished importing MINFO bed heights (single and epoch).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2806
diff
changeset
|
5 import java.text.ParseException; |
8926571e47fb
Finished importing MINFO bed heights (single and epoch).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2806
diff
changeset
|
6 |
2806
33f40b23edd8
Initial checkin for parsing MINFO bed heights.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
7 import org.apache.log4j.Logger; |
33f40b23edd8
Initial checkin for parsing MINFO bed heights.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
8 |
2811
8926571e47fb
Finished importing MINFO bed heights (single and epoch).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2806
diff
changeset
|
9 import de.intevation.flys.importer.ImportBedHeight; |
2806
33f40b23edd8
Initial checkin for parsing MINFO bed heights.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
10 import de.intevation.flys.importer.ImportBedHeightEpoch; |
2811
8926571e47fb
Finished importing MINFO bed heights (single and epoch).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2806
diff
changeset
|
11 import de.intevation.flys.importer.ImportBedHeightEpochValue; |
2806
33f40b23edd8
Initial checkin for parsing MINFO bed heights.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
12 |
33f40b23edd8
Initial checkin for parsing MINFO bed heights.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
13 |
3958
64b73dc1571c
fix issue863: Handle missing data points for epoch bed height data.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
3955
diff
changeset
|
14 /** Parses BedHeightEpochs from csv file. */ |
2811
8926571e47fb
Finished importing MINFO bed heights (single and epoch).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2806
diff
changeset
|
15 public class BedHeightEpochParser extends BedHeightParser { |
2806
33f40b23edd8
Initial checkin for parsing MINFO bed heights.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
16 |
3958
64b73dc1571c
fix issue863: Handle missing data points for epoch bed height data.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
3955
diff
changeset
|
17 /** Our own logger. */ |
2806
33f40b23edd8
Initial checkin for parsing MINFO bed heights.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
18 private static final Logger log = |
33f40b23edd8
Initial checkin for parsing MINFO bed heights.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
19 Logger.getLogger(BedHeightEpochParser.class); |
33f40b23edd8
Initial checkin for parsing MINFO bed heights.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
20 |
33f40b23edd8
Initial checkin for parsing MINFO bed heights.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
21 |
2811
8926571e47fb
Finished importing MINFO bed heights (single and epoch).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2806
diff
changeset
|
22 @Override |
8926571e47fb
Finished importing MINFO bed heights (single and epoch).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2806
diff
changeset
|
23 protected ImportBedHeight newImportBedHeight(String description) { |
8926571e47fb
Finished importing MINFO bed heights (single and epoch).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2806
diff
changeset
|
24 return new ImportBedHeightEpoch(description); |
2806
33f40b23edd8
Initial checkin for parsing MINFO bed heights.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
25 } |
33f40b23edd8
Initial checkin for parsing MINFO bed heights.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
26 |
33f40b23edd8
Initial checkin for parsing MINFO bed heights.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
27 |
3958
64b73dc1571c
fix issue863: Handle missing data points for epoch bed height data.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
3955
diff
changeset
|
28 /** |
64b73dc1571c
fix issue863: Handle missing data points for epoch bed height data.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
3955
diff
changeset
|
29 * Handle a non-comment, none-Metadata line of csv file, adding |
64b73dc1571c
fix issue863: Handle missing data points for epoch bed height data.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
3955
diff
changeset
|
30 * ImportBedHeightEpochValues to the given ImportBedHeight object. |
64b73dc1571c
fix issue863: Handle missing data points for epoch bed height data.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
3955
diff
changeset
|
31 */ |
2811
8926571e47fb
Finished importing MINFO bed heights (single and epoch).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2806
diff
changeset
|
32 @Override |
8926571e47fb
Finished importing MINFO bed heights (single and epoch).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2806
diff
changeset
|
33 protected void handleDataLine(ImportBedHeight obj, String line) { |
8926571e47fb
Finished importing MINFO bed heights (single and epoch).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2806
diff
changeset
|
34 String[] values = line.split(SEPERATOR_CHAR); |
2806
33f40b23edd8
Initial checkin for parsing MINFO bed heights.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
35 |
3958
64b73dc1571c
fix issue863: Handle missing data points for epoch bed height data.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
3955
diff
changeset
|
36 if (values == null || values.length == 0 || values[0].length() == 0) { |
64b73dc1571c
fix issue863: Handle missing data points for epoch bed height data.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
3955
diff
changeset
|
37 // There might be quite some ";" found. |
2811
8926571e47fb
Finished importing MINFO bed heights (single and epoch).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2806
diff
changeset
|
38 //log.warn("Skip invalid data line: " + line); |
8926571e47fb
Finished importing MINFO bed heights (single and epoch).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2806
diff
changeset
|
39 return; |
2806
33f40b23edd8
Initial checkin for parsing MINFO bed heights.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
40 } |
2811
8926571e47fb
Finished importing MINFO bed heights (single and epoch).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2806
diff
changeset
|
41 |
3958
64b73dc1571c
fix issue863: Handle missing data points for epoch bed height data.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
3955
diff
changeset
|
42 BigDecimal km; |
64b73dc1571c
fix issue863: Handle missing data points for epoch bed height data.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
3955
diff
changeset
|
43 |
64b73dc1571c
fix issue863: Handle missing data points for epoch bed height data.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
3955
diff
changeset
|
44 try { |
64b73dc1571c
fix issue863: Handle missing data points for epoch bed height data.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
3955
diff
changeset
|
45 km = new BigDecimal(nf.parse(values[0]).doubleValue()); |
64b73dc1571c
fix issue863: Handle missing data points for epoch bed height data.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
3955
diff
changeset
|
46 } |
64b73dc1571c
fix issue863: Handle missing data points for epoch bed height data.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
3955
diff
changeset
|
47 catch (ParseException e) { |
64b73dc1571c
fix issue863: Handle missing data points for epoch bed height data.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
3955
diff
changeset
|
48 log.warn("Error while parsing number from data row: " + line); |
64b73dc1571c
fix issue863: Handle missing data points for epoch bed height data.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
3955
diff
changeset
|
49 return; |
64b73dc1571c
fix issue863: Handle missing data points for epoch bed height data.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
3955
diff
changeset
|
50 } |
64b73dc1571c
fix issue863: Handle missing data points for epoch bed height data.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
3955
diff
changeset
|
51 |
64b73dc1571c
fix issue863: Handle missing data points for epoch bed height data.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
3955
diff
changeset
|
52 |
64b73dc1571c
fix issue863: Handle missing data points for epoch bed height data.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
3955
diff
changeset
|
53 // Handle "gap" lines like '255,0;' |
64b73dc1571c
fix issue863: Handle missing data points for epoch bed height data.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
3955
diff
changeset
|
54 if (values.length < 2) { |
64b73dc1571c
fix issue863: Handle missing data points for epoch bed height data.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
3955
diff
changeset
|
55 ImportBedHeightEpochValue value = new ImportBedHeightEpochValue( |
64b73dc1571c
fix issue863: Handle missing data points for epoch bed height data.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
3955
diff
changeset
|
56 km, |
64b73dc1571c
fix issue863: Handle missing data points for epoch bed height data.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
3955
diff
changeset
|
57 null |
64b73dc1571c
fix issue863: Handle missing data points for epoch bed height data.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
3955
diff
changeset
|
58 ); |
64b73dc1571c
fix issue863: Handle missing data points for epoch bed height data.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
3955
diff
changeset
|
59 |
64b73dc1571c
fix issue863: Handle missing data points for epoch bed height data.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
3955
diff
changeset
|
60 obj.addValue(value); |
64b73dc1571c
fix issue863: Handle missing data points for epoch bed height data.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
3955
diff
changeset
|
61 return; |
64b73dc1571c
fix issue863: Handle missing data points for epoch bed height data.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
3955
diff
changeset
|
62 } |
64b73dc1571c
fix issue863: Handle missing data points for epoch bed height data.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
3955
diff
changeset
|
63 |
2811
8926571e47fb
Finished importing MINFO bed heights (single and epoch).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2806
diff
changeset
|
64 try { |
8926571e47fb
Finished importing MINFO bed heights (single and epoch).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2806
diff
changeset
|
65 ImportBedHeightEpochValue value = new ImportBedHeightEpochValue( |
3958
64b73dc1571c
fix issue863: Handle missing data points for epoch bed height data.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
3955
diff
changeset
|
66 km, |
2811
8926571e47fb
Finished importing MINFO bed heights (single and epoch).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2806
diff
changeset
|
67 new BigDecimal(nf.parse(values[1]).doubleValue()) |
8926571e47fb
Finished importing MINFO bed heights (single and epoch).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2806
diff
changeset
|
68 ); |
8926571e47fb
Finished importing MINFO bed heights (single and epoch).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2806
diff
changeset
|
69 |
8926571e47fb
Finished importing MINFO bed heights (single and epoch).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2806
diff
changeset
|
70 obj.addValue(value); |
8926571e47fb
Finished importing MINFO bed heights (single and epoch).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2806
diff
changeset
|
71 } |
8926571e47fb
Finished importing MINFO bed heights (single and epoch).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2806
diff
changeset
|
72 catch (ParseException e) { |
8926571e47fb
Finished importing MINFO bed heights (single and epoch).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2806
diff
changeset
|
73 log.warn("Error while parsing number from data row: " + line); |
2806
33f40b23edd8
Initial checkin for parsing MINFO bed heights.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
74 } |
33f40b23edd8
Initial checkin for parsing MINFO bed heights.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
75 } |
33f40b23edd8
Initial checkin for parsing MINFO bed heights.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
76 } |
33f40b23edd8
Initial checkin for parsing MINFO bed heights.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
77 // vim:set ts=4 sw=4 si et sta sts=4 fenc=utf8 : |