Mercurial > dive4elements > river
annotate backend/src/main/java/org/dive4elements/river/importer/parsers/PorosityParser.java @ 9801:1d7a72a50183 3.2.x tip
Assume Compose V2, consistently
author | Tom Gottfried <tom@intevation.de> |
---|---|
date | Thu, 23 Nov 2023 10:14:13 +0100 |
parents | 0a5239a1e46e |
children |
rev | line source |
---|---|
7840
02711de579cc
Added model, parser and importer for porosities.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
1 /* Copyright (C) 2011, 2012, 2013 by Bundesanstalt für Gewässerkunde |
02711de579cc
Added model, parser and importer for porosities.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
2 * Software engineering by Intevation GmbH |
02711de579cc
Added model, parser and importer for porosities.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
3 * |
02711de579cc
Added model, parser and importer for porosities.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
4 * This file is Free Software under the GNU AGPL (>=v3) |
02711de579cc
Added model, parser and importer for porosities.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
5 * and comes with ABSOLUTELY NO WARRANTY! Check out the |
02711de579cc
Added model, parser and importer for porosities.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
6 * documentation coming with Dive4Elements River for details. |
02711de579cc
Added model, parser and importer for porosities.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
7 */ |
02711de579cc
Added model, parser and importer for porosities.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
8 |
02711de579cc
Added model, parser and importer for porosities.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
9 package org.dive4elements.river.importer.parsers; |
02711de579cc
Added model, parser and importer for porosities.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
10 |
02711de579cc
Added model, parser and importer for porosities.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
11 import org.dive4elements.river.importer.ImportDepth; |
02711de579cc
Added model, parser and importer for porosities.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
12 import org.dive4elements.river.importer.ImportPorosity; |
02711de579cc
Added model, parser and importer for porosities.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
13 import org.dive4elements.river.importer.ImportPorosityValue; |
02711de579cc
Added model, parser and importer for porosities.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
14 import org.dive4elements.river.importer.ImportTimeInterval; |
8187
3bb1c62ad732
Moved package org.dive4elements.river.utils to org.dive4elements.river.backend.utils.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
7927
diff
changeset
|
15 import org.dive4elements.river.backend.utils.DateUtil; |
7840
02711de579cc
Added model, parser and importer for porosities.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
16 |
02711de579cc
Added model, parser and importer for porosities.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
17 import java.io.File; |
02711de579cc
Added model, parser and importer for porosities.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
18 import java.io.IOException; |
02711de579cc
Added model, parser and importer for porosities.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
19 |
02711de579cc
Added model, parser and importer for porosities.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
20 import java.math.BigDecimal; |
02711de579cc
Added model, parser and importer for porosities.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
21 |
02711de579cc
Added model, parser and importer for porosities.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
22 import java.text.NumberFormat; |
02711de579cc
Added model, parser and importer for porosities.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
23 |
02711de579cc
Added model, parser and importer for porosities.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
24 import java.util.ArrayList; |
02711de579cc
Added model, parser and importer for porosities.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
25 import java.util.Date; |
02711de579cc
Added model, parser and importer for porosities.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
26 import java.util.List; |
02711de579cc
Added model, parser and importer for porosities.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
27 |
02711de579cc
Added model, parser and importer for porosities.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
28 import java.util.regex.Matcher; |
02711de579cc
Added model, parser and importer for porosities.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
29 import java.util.regex.Pattern; |
02711de579cc
Added model, parser and importer for porosities.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
30 |
9726 | 31 import org.apache.logging.log4j.Logger; |
32 import org.apache.logging.log4j.LogManager; | |
7840
02711de579cc
Added model, parser and importer for porosities.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
33 |
02711de579cc
Added model, parser and importer for porosities.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
34 public class PorosityParser extends LineParser { |
02711de579cc
Added model, parser and importer for porosities.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
35 |
02711de579cc
Added model, parser and importer for porosities.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
36 private static final Logger log = |
9726 | 37 LogManager.getLogger(PorosityParser.class); |
7840
02711de579cc
Added model, parser and importer for porosities.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
38 |
02711de579cc
Added model, parser and importer for porosities.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
39 public static final NumberFormat nf = |
02711de579cc
Added model, parser and importer for porosities.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
40 NumberFormat.getInstance(DEFAULT_LOCALE); |
02711de579cc
Added model, parser and importer for porosities.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
41 |
02711de579cc
Added model, parser and importer for porosities.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
42 public static final Pattern META_DEPTH = |
7886
952b57b43e2f
Importer: depths are always numbers assumed to represent centimeters.
Tom Gottfried <tom@intevation.de>
parents:
7880
diff
changeset
|
43 Pattern.compile("^Tiefe: (\\d++)-(\\d++).*"); |
7840
02711de579cc
Added model, parser and importer for porosities.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
44 |
02711de579cc
Added model, parser and importer for porosities.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
45 public static final Pattern META_TIMEINTERVAL = |
02711de579cc
Added model, parser and importer for porosities.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
46 Pattern.compile("^Zeitraum: (\\d{4})-(\\d{4}).*"); |
02711de579cc
Added model, parser and importer for porosities.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
47 |
02711de579cc
Added model, parser and importer for porosities.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
48 protected List<ImportPorosity> porosities; |
02711de579cc
Added model, parser and importer for porosities.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
49 |
02711de579cc
Added model, parser and importer for porosities.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
50 protected ImportPorosity current; |
02711de579cc
Added model, parser and importer for porosities.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
51 |
02711de579cc
Added model, parser and importer for porosities.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
52 protected String currentDescription; |
02711de579cc
Added model, parser and importer for porosities.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
53 |
02711de579cc
Added model, parser and importer for porosities.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
54 public PorosityParser() { |
02711de579cc
Added model, parser and importer for porosities.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
55 porosities = new ArrayList<ImportPorosity>(); |
02711de579cc
Added model, parser and importer for porosities.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
56 } |
02711de579cc
Added model, parser and importer for porosities.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
57 |
02711de579cc
Added model, parser and importer for porosities.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
58 |
02711de579cc
Added model, parser and importer for porosities.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
59 @Override |
02711de579cc
Added model, parser and importer for porosities.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
60 public void parse(File file) throws IOException { |
7880
a575eaae7899
PorosityParser: Strip file extension for description.
Tom Gottfried <tom@intevation.de>
parents:
7865
diff
changeset
|
61 currentDescription = file.getName().replaceAll("\\.csv", ""); |
7840
02711de579cc
Added model, parser and importer for porosities.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
62 |
02711de579cc
Added model, parser and importer for porosities.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
63 super.parse(file); |
02711de579cc
Added model, parser and importer for porosities.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
64 } |
02711de579cc
Added model, parser and importer for porosities.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
65 |
02711de579cc
Added model, parser and importer for porosities.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
66 |
02711de579cc
Added model, parser and importer for porosities.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
67 @Override |
02711de579cc
Added model, parser and importer for porosities.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
68 protected void reset() { |
02711de579cc
Added model, parser and importer for porosities.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
69 current = new ImportPorosity(currentDescription); |
02711de579cc
Added model, parser and importer for porosities.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
70 } |
02711de579cc
Added model, parser and importer for porosities.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
71 |
02711de579cc
Added model, parser and importer for porosities.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
72 |
02711de579cc
Added model, parser and importer for porosities.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
73 @Override |
02711de579cc
Added model, parser and importer for porosities.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
74 protected void finish() { |
02711de579cc
Added model, parser and importer for porosities.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
75 if (current != null) { |
02711de579cc
Added model, parser and importer for porosities.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
76 porosities.add(current); |
02711de579cc
Added model, parser and importer for porosities.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
77 } |
02711de579cc
Added model, parser and importer for porosities.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
78 } |
02711de579cc
Added model, parser and importer for porosities.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
79 |
02711de579cc
Added model, parser and importer for porosities.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
80 |
02711de579cc
Added model, parser and importer for porosities.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
81 @Override |
02711de579cc
Added model, parser and importer for porosities.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
82 protected void handleLine(int lineNum, String line) { |
02711de579cc
Added model, parser and importer for porosities.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
83 if (line.startsWith(START_META_CHAR)) { |
02711de579cc
Added model, parser and importer for porosities.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
84 handleMetaLine(stripMetaLine(line)); |
02711de579cc
Added model, parser and importer for porosities.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
85 } |
02711de579cc
Added model, parser and importer for porosities.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
86 else { |
02711de579cc
Added model, parser and importer for porosities.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
87 handleDataLine(line); |
02711de579cc
Added model, parser and importer for porosities.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
88 } |
02711de579cc
Added model, parser and importer for porosities.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
89 } |
02711de579cc
Added model, parser and importer for porosities.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
90 |
02711de579cc
Added model, parser and importer for porosities.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
91 |
02711de579cc
Added model, parser and importer for porosities.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
92 protected void handleMetaLine(String line) { |
02711de579cc
Added model, parser and importer for porosities.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
93 if (handleMetaDepth(line)) { |
02711de579cc
Added model, parser and importer for porosities.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
94 return; |
02711de579cc
Added model, parser and importer for porosities.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
95 } |
02711de579cc
Added model, parser and importer for porosities.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
96 if (handleMetaTimeInterval(line)) { |
02711de579cc
Added model, parser and importer for porosities.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
97 return; |
02711de579cc
Added model, parser and importer for porosities.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
98 } |
02711de579cc
Added model, parser and importer for porosities.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
99 log.warn("Unknown meta line: '" + line + "'"); |
02711de579cc
Added model, parser and importer for porosities.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
100 } |
02711de579cc
Added model, parser and importer for porosities.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
101 |
02711de579cc
Added model, parser and importer for porosities.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
102 protected boolean handleMetaTimeInterval(String line) { |
02711de579cc
Added model, parser and importer for porosities.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
103 Matcher m = META_TIMEINTERVAL.matcher(line); |
02711de579cc
Added model, parser and importer for porosities.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
104 |
02711de579cc
Added model, parser and importer for porosities.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
105 if (m.matches()) { |
02711de579cc
Added model, parser and importer for porosities.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
106 String lo = m.group(1); |
02711de579cc
Added model, parser and importer for porosities.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
107 String up = m.group(2); |
02711de579cc
Added model, parser and importer for porosities.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
108 |
02711de579cc
Added model, parser and importer for porosities.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
109 log.debug("Found time interval: " + lo + " - " + up); |
02711de579cc
Added model, parser and importer for porosities.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
110 |
02711de579cc
Added model, parser and importer for porosities.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
111 try { |
02711de579cc
Added model, parser and importer for porosities.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
112 int lower = Integer.valueOf(lo); |
02711de579cc
Added model, parser and importer for porosities.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
113 int upper = Integer.valueOf(up); |
02711de579cc
Added model, parser and importer for porosities.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
114 |
7927
07cc4cd9233e
Add new DateUtil class.
"Tom Gottfried <tom@intevation.de>"
parents:
7886
diff
changeset
|
115 Date fromYear = DateUtil.getStartDateFromYear(lower); |
07cc4cd9233e
Add new DateUtil class.
"Tom Gottfried <tom@intevation.de>"
parents:
7886
diff
changeset
|
116 Date toYear = DateUtil.getEndDateFromYear(upper); |
7840
02711de579cc
Added model, parser and importer for porosities.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
117 |
8856 | 118 current.setTimeInterval( |
119 new ImportTimeInterval(fromYear, toYear)); | |
7840
02711de579cc
Added model, parser and importer for porosities.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
120 } |
02711de579cc
Added model, parser and importer for porosities.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
121 catch (NumberFormatException e) { |
02711de579cc
Added model, parser and importer for porosities.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
122 log.warn("PP: could not parse timeinterval", e); |
02711de579cc
Added model, parser and importer for porosities.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
123 } |
02711de579cc
Added model, parser and importer for porosities.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
124 |
02711de579cc
Added model, parser and importer for porosities.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
125 return true; |
02711de579cc
Added model, parser and importer for porosities.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
126 } |
02711de579cc
Added model, parser and importer for porosities.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
127 |
02711de579cc
Added model, parser and importer for porosities.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
128 return false; |
02711de579cc
Added model, parser and importer for porosities.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
129 } |
02711de579cc
Added model, parser and importer for porosities.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
130 |
02711de579cc
Added model, parser and importer for porosities.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
131 protected boolean handleMetaDepth(String line) { |
02711de579cc
Added model, parser and importer for porosities.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
132 Matcher m = META_DEPTH.matcher(line); |
02711de579cc
Added model, parser and importer for porosities.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
133 |
02711de579cc
Added model, parser and importer for porosities.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
134 if (m.matches()) { |
02711de579cc
Added model, parser and importer for porosities.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
135 String lo = m.group(1); |
02711de579cc
Added model, parser and importer for porosities.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
136 String up = m.group(2); |
02711de579cc
Added model, parser and importer for porosities.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
137 |
02711de579cc
Added model, parser and importer for porosities.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
138 log.info("Found porosity depth: " + lo + " - " + up + " cm"); |
02711de579cc
Added model, parser and importer for porosities.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
139 |
7862
cdef048c4ac5
Fixed porosity importer. Find existing db entries and parse values from string, not via double.
Raimund Renkert <rrenkert@intevation.de>
parents:
7840
diff
changeset
|
140 ImportDepth depth = null; |
7840
02711de579cc
Added model, parser and importer for porosities.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
141 try { |
7862
cdef048c4ac5
Fixed porosity importer. Find existing db entries and parse values from string, not via double.
Raimund Renkert <rrenkert@intevation.de>
parents:
7840
diff
changeset
|
142 depth = new ImportDepth( |
cdef048c4ac5
Fixed porosity importer. Find existing db entries and parse values from string, not via double.
Raimund Renkert <rrenkert@intevation.de>
parents:
7840
diff
changeset
|
143 new BigDecimal(lo), |
cdef048c4ac5
Fixed porosity importer. Find existing db entries and parse values from string, not via double.
Raimund Renkert <rrenkert@intevation.de>
parents:
7840
diff
changeset
|
144 new BigDecimal(up) |
7840
02711de579cc
Added model, parser and importer for porosities.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
145 ); |
7862
cdef048c4ac5
Fixed porosity importer. Find existing db entries and parse values from string, not via double.
Raimund Renkert <rrenkert@intevation.de>
parents:
7840
diff
changeset
|
146 } |
cdef048c4ac5
Fixed porosity importer. Find existing db entries and parse values from string, not via double.
Raimund Renkert <rrenkert@intevation.de>
parents:
7840
diff
changeset
|
147 catch (NumberFormatException nfe) { |
cdef048c4ac5
Fixed porosity importer. Find existing db entries and parse values from string, not via double.
Raimund Renkert <rrenkert@intevation.de>
parents:
7840
diff
changeset
|
148 log.warn("Unparsable number for depth: " + line, nfe); |
cdef048c4ac5
Fixed porosity importer. Find existing db entries and parse values from string, not via double.
Raimund Renkert <rrenkert@intevation.de>
parents:
7840
diff
changeset
|
149 } |
7840
02711de579cc
Added model, parser and importer for porosities.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
150 |
7862
cdef048c4ac5
Fixed porosity importer. Find existing db entries and parse values from string, not via double.
Raimund Renkert <rrenkert@intevation.de>
parents:
7840
diff
changeset
|
151 if (depth != null) { |
7840
02711de579cc
Added model, parser and importer for porosities.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
152 current.setDepth(depth); |
02711de579cc
Added model, parser and importer for porosities.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
153 return true; |
02711de579cc
Added model, parser and importer for porosities.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
154 } |
7862
cdef048c4ac5
Fixed porosity importer. Find existing db entries and parse values from string, not via double.
Raimund Renkert <rrenkert@intevation.de>
parents:
7840
diff
changeset
|
155 return false; |
7840
02711de579cc
Added model, parser and importer for porosities.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
156 } |
02711de579cc
Added model, parser and importer for porosities.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
157 else { |
02711de579cc
Added model, parser and importer for porosities.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
158 log.debug("Meta line doesn't contain depth information: " + line); |
02711de579cc
Added model, parser and importer for porosities.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
159 } |
02711de579cc
Added model, parser and importer for porosities.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
160 |
02711de579cc
Added model, parser and importer for porosities.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
161 return false; |
02711de579cc
Added model, parser and importer for porosities.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
162 } |
02711de579cc
Added model, parser and importer for porosities.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
163 |
02711de579cc
Added model, parser and importer for porosities.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
164 protected void handleDataLine(String line) { |
02711de579cc
Added model, parser and importer for porosities.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
165 String[] vals = line.split(SEPERATOR_CHAR); |
02711de579cc
Added model, parser and importer for porosities.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
166 log.debug("handle line: " + line); |
02711de579cc
Added model, parser and importer for porosities.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
167 |
02711de579cc
Added model, parser and importer for porosities.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
168 if (vals == null || vals.length < 3) { |
02711de579cc
Added model, parser and importer for porosities.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
169 log.warn("skip invalid data line: '" + line + "'"); |
02711de579cc
Added model, parser and importer for porosities.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
170 return; |
02711de579cc
Added model, parser and importer for porosities.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
171 } |
02711de579cc
Added model, parser and importer for porosities.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
172 |
02711de579cc
Added model, parser and importer for porosities.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
173 BigDecimal km = null; |
02711de579cc
Added model, parser and importer for porosities.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
174 BigDecimal shoreOffset = null; |
02711de579cc
Added model, parser and importer for porosities.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
175 BigDecimal porosity = null; |
7862
cdef048c4ac5
Fixed porosity importer. Find existing db entries and parse values from string, not via double.
Raimund Renkert <rrenkert@intevation.de>
parents:
7840
diff
changeset
|
176 vals[0] = vals[0].replace(",", "."); |
cdef048c4ac5
Fixed porosity importer. Find existing db entries and parse values from string, not via double.
Raimund Renkert <rrenkert@intevation.de>
parents:
7840
diff
changeset
|
177 vals[2] = vals[2].replace(",", "."); |
7840
02711de579cc
Added model, parser and importer for porosities.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
178 try { |
7862
cdef048c4ac5
Fixed porosity importer. Find existing db entries and parse values from string, not via double.
Raimund Renkert <rrenkert@intevation.de>
parents:
7840
diff
changeset
|
179 km = new BigDecimal(vals[0]); |
cdef048c4ac5
Fixed porosity importer. Find existing db entries and parse values from string, not via double.
Raimund Renkert <rrenkert@intevation.de>
parents:
7840
diff
changeset
|
180 porosity = new BigDecimal(vals[2]); |
7840
02711de579cc
Added model, parser and importer for porosities.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
181 if (!vals[1].isEmpty()) { |
7862
cdef048c4ac5
Fixed porosity importer. Find existing db entries and parse values from string, not via double.
Raimund Renkert <rrenkert@intevation.de>
parents:
7840
diff
changeset
|
182 vals[1] = vals[1].replace(",", "."); |
cdef048c4ac5
Fixed porosity importer. Find existing db entries and parse values from string, not via double.
Raimund Renkert <rrenkert@intevation.de>
parents:
7840
diff
changeset
|
183 shoreOffset = new BigDecimal(vals[1]); |
7840
02711de579cc
Added model, parser and importer for porosities.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
184 } |
02711de579cc
Added model, parser and importer for porosities.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
185 } |
7862
cdef048c4ac5
Fixed porosity importer. Find existing db entries and parse values from string, not via double.
Raimund Renkert <rrenkert@intevation.de>
parents:
7840
diff
changeset
|
186 catch(NumberFormatException nfe) { |
cdef048c4ac5
Fixed porosity importer. Find existing db entries and parse values from string, not via double.
Raimund Renkert <rrenkert@intevation.de>
parents:
7840
diff
changeset
|
187 log.warn("Unparsable number in line: " + line, nfe); |
7840
02711de579cc
Added model, parser and importer for porosities.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
188 } |
02711de579cc
Added model, parser and importer for porosities.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
189 |
02711de579cc
Added model, parser and importer for porosities.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
190 if (km == null || porosity == null) { |
02711de579cc
Added model, parser and importer for porosities.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
191 log.warn("PP: No km nor porosity given. Skip line"); |
02711de579cc
Added model, parser and importer for porosities.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
192 return; |
02711de579cc
Added model, parser and importer for porosities.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
193 } |
02711de579cc
Added model, parser and importer for porosities.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
194 log.debug("add new value."); |
02711de579cc
Added model, parser and importer for porosities.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
195 current.addValue(new ImportPorosityValue( |
02711de579cc
Added model, parser and importer for porosities.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
196 km, |
02711de579cc
Added model, parser and importer for porosities.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
197 shoreOffset, |
02711de579cc
Added model, parser and importer for porosities.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
198 porosity, |
02711de579cc
Added model, parser and importer for porosities.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
199 currentDescription)); |
02711de579cc
Added model, parser and importer for porosities.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
200 } |
02711de579cc
Added model, parser and importer for porosities.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
201 |
02711de579cc
Added model, parser and importer for porosities.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
202 |
02711de579cc
Added model, parser and importer for porosities.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
203 public List<ImportPorosity> getPorosities() { |
02711de579cc
Added model, parser and importer for porosities.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
204 return porosities; |
02711de579cc
Added model, parser and importer for porosities.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
205 } |
02711de579cc
Added model, parser and importer for porosities.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
206 } |
02711de579cc
Added model, parser and importer for porosities.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
207 // vim:set ts=4 sw=4 si et sta sts=4 fenc=utf8 : |