Mercurial > dive4elements > river
annotate backend/src/main/java/org/dive4elements/river/importer/parsers/PorosityParser.java @ 7854:8c6ed23ce315
Removed obsolete imports.
author | Sascha L. Teichmann <teichmann@intevation.de> |
---|---|
date | Wed, 30 Apr 2014 17:16:57 +0200 |
parents | 02711de579cc |
children | d9d2bd78eff6 |
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; |
02711de579cc
Added model, parser and importer for porosities.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
15 |
02711de579cc
Added model, parser and importer for porosities.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
16 import java.io.File; |
02711de579cc
Added model, parser and importer for porosities.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
17 import java.io.IOException; |
02711de579cc
Added model, parser and importer for porosities.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
18 |
02711de579cc
Added model, parser and importer for porosities.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
19 import java.math.BigDecimal; |
02711de579cc
Added model, parser and importer for porosities.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
20 |
02711de579cc
Added model, parser and importer for porosities.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
21 import java.text.NumberFormat; |
02711de579cc
Added model, parser and importer for porosities.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
22 import java.text.ParseException; |
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 |
02711de579cc
Added model, parser and importer for porosities.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
31 import org.apache.log4j.Logger; |
02711de579cc
Added model, parser and importer for porosities.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
32 |
02711de579cc
Added model, parser and importer for porosities.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
33 public class PorosityParser extends LineParser { |
02711de579cc
Added model, parser and importer for porosities.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
34 |
02711de579cc
Added model, parser and importer for porosities.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
35 private static final Logger log = |
02711de579cc
Added model, parser and importer for porosities.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
36 Logger.getLogger(PorosityParser.class); |
02711de579cc
Added model, parser and importer for porosities.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
37 |
02711de579cc
Added model, parser and importer for porosities.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
38 public static final NumberFormat nf = |
02711de579cc
Added model, parser and importer for porosities.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
39 NumberFormat.getInstance(DEFAULT_LOCALE); |
02711de579cc
Added model, parser and importer for porosities.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
40 |
02711de579cc
Added model, parser and importer for porosities.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
41 public static final Pattern META_DEPTH = |
02711de579cc
Added model, parser and importer for porosities.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
42 Pattern.compile("^Tiefe: (\\w++)-(\\w++)( (\\w++))?.*"); |
02711de579cc
Added model, parser and importer for porosities.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
43 |
02711de579cc
Added model, parser and importer for porosities.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
44 public static final Pattern META_TIMEINTERVAL = |
02711de579cc
Added model, parser and importer for porosities.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
45 Pattern.compile("^Zeitraum: (\\d{4})-(\\d{4}).*"); |
02711de579cc
Added model, parser and importer for porosities.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
46 |
02711de579cc
Added model, parser and importer for porosities.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
47 protected List<ImportPorosity> porosities; |
02711de579cc
Added model, parser and importer for porosities.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
48 |
02711de579cc
Added model, parser and importer for porosities.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
49 protected ImportPorosity current; |
02711de579cc
Added model, parser and importer for porosities.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
50 |
02711de579cc
Added model, parser and importer for porosities.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
51 protected String currentDescription; |
02711de579cc
Added model, parser and importer for porosities.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
52 |
02711de579cc
Added model, parser and importer for porosities.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
53 public PorosityParser() { |
02711de579cc
Added model, parser and importer for porosities.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
54 porosities = new ArrayList<ImportPorosity>(); |
02711de579cc
Added model, parser and importer for porosities.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
55 } |
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 @Override |
02711de579cc
Added model, parser and importer for porosities.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
59 public void parse(File file) throws IOException { |
02711de579cc
Added model, parser and importer for porosities.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
60 currentDescription = file.getName(); |
02711de579cc
Added model, parser and importer for porosities.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
61 |
02711de579cc
Added model, parser and importer for porosities.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
62 super.parse(file); |
02711de579cc
Added model, parser and importer for porosities.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
63 } |
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 @Override |
02711de579cc
Added model, parser and importer for porosities.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
67 protected void reset() { |
02711de579cc
Added model, parser and importer for porosities.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
68 current = new ImportPorosity(currentDescription); |
02711de579cc
Added model, parser and importer for porosities.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
69 } |
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 @Override |
02711de579cc
Added model, parser and importer for porosities.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
73 protected void finish() { |
02711de579cc
Added model, parser and importer for porosities.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
74 if (current != null) { |
02711de579cc
Added model, parser and importer for porosities.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
75 porosities.add(current); |
02711de579cc
Added model, parser and importer for porosities.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
76 } |
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 @Override |
02711de579cc
Added model, parser and importer for porosities.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
81 protected void handleLine(int lineNum, String line) { |
02711de579cc
Added model, parser and importer for porosities.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
82 if (line.startsWith(START_META_CHAR)) { |
02711de579cc
Added model, parser and importer for porosities.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
83 handleMetaLine(stripMetaLine(line)); |
02711de579cc
Added model, parser and importer for porosities.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
84 } |
02711de579cc
Added model, parser and importer for porosities.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
85 else { |
02711de579cc
Added model, parser and importer for porosities.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
86 handleDataLine(line); |
02711de579cc
Added model, parser and importer for porosities.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
87 } |
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 protected void handleMetaLine(String line) { |
02711de579cc
Added model, parser and importer for porosities.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
92 if (handleMetaDepth(line)) { |
02711de579cc
Added model, parser and importer for porosities.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
93 return; |
02711de579cc
Added model, parser and importer for porosities.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
94 } |
02711de579cc
Added model, parser and importer for porosities.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
95 if (handleMetaTimeInterval(line)) { |
02711de579cc
Added model, parser and importer for porosities.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
96 return; |
02711de579cc
Added model, parser and importer for porosities.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
97 } |
02711de579cc
Added model, parser and importer for porosities.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
98 log.warn("Unknown meta line: '" + line + "'"); |
02711de579cc
Added model, parser and importer for porosities.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
99 } |
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 protected boolean handleMetaTimeInterval(String line) { |
02711de579cc
Added model, parser and importer for porosities.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
102 Matcher m = META_TIMEINTERVAL.matcher(line); |
02711de579cc
Added model, parser and importer for porosities.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
103 |
02711de579cc
Added model, parser and importer for porosities.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
104 if (m.matches()) { |
02711de579cc
Added model, parser and importer for porosities.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
105 String lo = m.group(1); |
02711de579cc
Added model, parser and importer for porosities.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
106 String up = m.group(2); |
02711de579cc
Added model, parser and importer for porosities.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
107 |
02711de579cc
Added model, parser and importer for porosities.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
108 log.debug("Found time interval: " + lo + " - " + up); |
02711de579cc
Added model, parser and importer for porosities.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
109 |
02711de579cc
Added model, parser and importer for porosities.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
110 try { |
02711de579cc
Added model, parser and importer for porosities.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
111 int lower = Integer.valueOf(lo); |
02711de579cc
Added model, parser and importer for porosities.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
112 int upper = Integer.valueOf(up); |
02711de579cc
Added model, parser and importer for porosities.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
113 |
02711de579cc
Added model, parser and importer for porosities.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
114 Date fromYear = LineParser.getStartDateFromYear(lower); |
02711de579cc
Added model, parser and importer for porosities.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
115 Date toYear = LineParser.getEndDateFromYear(upper); |
02711de579cc
Added model, parser and importer for porosities.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
116 |
02711de579cc
Added model, parser and importer for porosities.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
117 current.setTimeInterval(new ImportTimeInterval(fromYear, toYear)); |
02711de579cc
Added model, parser and importer for porosities.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
118 } |
02711de579cc
Added model, parser and importer for porosities.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
119 catch (NumberFormatException e) { |
02711de579cc
Added model, parser and importer for porosities.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
120 log.warn("PP: could not parse timeinterval", e); |
02711de579cc
Added model, parser and importer for porosities.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
121 } |
02711de579cc
Added model, parser and importer for porosities.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
122 |
02711de579cc
Added model, parser and importer for porosities.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
123 return true; |
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 |
02711de579cc
Added model, parser and importer for porosities.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
126 return false; |
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 |
02711de579cc
Added model, parser and importer for porosities.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
129 protected boolean handleMetaDepth(String line) { |
02711de579cc
Added model, parser and importer for porosities.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
130 Matcher m = META_DEPTH.matcher(line); |
02711de579cc
Added model, parser and importer for porosities.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
131 |
02711de579cc
Added model, parser and importer for porosities.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
132 if (m.matches()) { |
02711de579cc
Added model, parser and importer for porosities.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
133 String lo = m.group(1); |
02711de579cc
Added model, parser and importer for porosities.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
134 String up = m.group(2); |
02711de579cc
Added model, parser and importer for porosities.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
135 |
02711de579cc
Added model, parser and importer for porosities.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
136 log.info("Found porosity depth: " + lo + " - " + up + " cm"); |
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 try { |
02711de579cc
Added model, parser and importer for porosities.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
139 ImportDepth depth = new ImportDepth( |
02711de579cc
Added model, parser and importer for porosities.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
140 new BigDecimal(nf.parse(lo).doubleValue()), |
02711de579cc
Added model, parser and importer for porosities.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
141 new BigDecimal(nf.parse(up).doubleValue()) |
02711de579cc
Added model, parser and importer for porosities.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
142 ); |
02711de579cc
Added model, parser and importer for porosities.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
143 |
02711de579cc
Added model, parser and importer for porosities.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
144 current.setDepth(depth); |
02711de579cc
Added model, parser and importer for porosities.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
145 |
02711de579cc
Added model, parser and importer for porosities.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
146 return true; |
02711de579cc
Added model, parser and importer for porosities.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
147 } |
02711de579cc
Added model, parser and importer for porosities.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
148 catch (ParseException pe) { |
02711de579cc
Added model, parser and importer for porosities.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
149 log.warn("Unparseable numbers in: '" + line + "'"); |
02711de579cc
Added model, parser and importer for porosities.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
150 } |
02711de579cc
Added model, parser and importer for porosities.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
151 } |
02711de579cc
Added model, parser and importer for porosities.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
152 else { |
02711de579cc
Added model, parser and importer for porosities.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
153 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
|
154 } |
02711de579cc
Added model, parser and importer for porosities.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
155 |
02711de579cc
Added model, parser and importer for porosities.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
156 return false; |
02711de579cc
Added model, parser and importer for porosities.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
157 } |
02711de579cc
Added model, parser and importer for porosities.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
158 |
02711de579cc
Added model, parser and importer for porosities.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
159 protected void handleDataLine(String line) { |
02711de579cc
Added model, parser and importer for porosities.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
160 String[] vals = line.split(SEPERATOR_CHAR); |
02711de579cc
Added model, parser and importer for porosities.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
161 log.debug("handle line: " + line); |
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 if (vals == null || vals.length < 3) { |
02711de579cc
Added model, parser and importer for porosities.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
164 log.warn("skip invalid data line: '" + line + "'"); |
02711de579cc
Added model, parser and importer for porosities.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
165 return; |
02711de579cc
Added model, parser and importer for porosities.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
166 } |
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 BigDecimal km = null; |
02711de579cc
Added model, parser and importer for porosities.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
169 BigDecimal shoreOffset = null; |
02711de579cc
Added model, parser and importer for porosities.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
170 BigDecimal porosity = null; |
02711de579cc
Added model, parser and importer for porosities.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
171 try { |
02711de579cc
Added model, parser and importer for porosities.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
172 km = new BigDecimal(nf.parse(vals[0]).doubleValue()); |
02711de579cc
Added model, parser and importer for porosities.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
173 porosity = new BigDecimal(nf.parse(vals[2]).doubleValue()); |
02711de579cc
Added model, parser and importer for porosities.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
174 if (!vals[1].isEmpty()) { |
02711de579cc
Added model, parser and importer for porosities.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
175 shoreOffset = new BigDecimal(nf.parse(vals[1]).doubleValue()); |
02711de579cc
Added model, parser and importer for porosities.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
176 } |
02711de579cc
Added model, parser and importer for porosities.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
177 } |
02711de579cc
Added model, parser and importer for porosities.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
178 catch (ParseException pe) { |
02711de579cc
Added model, parser and importer for porosities.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
179 log.warn("Unparseable numbers in '" + line + "'"); |
02711de579cc
Added model, parser and importer for porosities.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
180 } |
02711de579cc
Added model, parser and importer for porosities.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
181 |
02711de579cc
Added model, parser and importer for porosities.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
182 if (km == null || porosity == null) { |
02711de579cc
Added model, parser and importer for porosities.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
183 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
|
184 return; |
02711de579cc
Added model, parser and importer for porosities.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
185 } |
02711de579cc
Added model, parser and importer for porosities.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
186 log.debug("add new value."); |
02711de579cc
Added model, parser and importer for porosities.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
187 current.addValue(new ImportPorosityValue( |
02711de579cc
Added model, parser and importer for porosities.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
188 km, |
02711de579cc
Added model, parser and importer for porosities.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
189 shoreOffset, |
02711de579cc
Added model, parser and importer for porosities.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
190 porosity, |
02711de579cc
Added model, parser and importer for porosities.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
191 currentDescription)); |
02711de579cc
Added model, parser and importer for porosities.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
192 } |
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 |
02711de579cc
Added model, parser and importer for porosities.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
195 public List<ImportPorosity> getPorosities() { |
02711de579cc
Added model, parser and importer for porosities.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
196 return porosities; |
02711de579cc
Added model, parser and importer for porosities.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
197 } |
02711de579cc
Added model, parser and importer for porosities.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
198 } |
02711de579cc
Added model, parser and importer for porosities.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
199 // vim:set ts=4 sw=4 si et sta sts=4 fenc=utf8 : |