Mercurial > dive4elements > river
annotate backend/src/main/java/org/dive4elements/river/importer/sinfo/parsers/DepthEvolutionParser.java @ 9657:a79881a892c9
Importer (s/u-info) extensions: depth-evolution: corrected directory name Bezug_aktueller_GlW,
detecting and logging of wrong units, then cancelling,
various checks of the plausibility of the meta data year values and cancelling in case of errors,
detecting and logging missing change values, skipping those lines
author | mschaefer |
---|---|
date | Mon, 23 Mar 2020 15:26:50 +0100 |
parents | ac41551a8e4d |
children |
rev | line source |
---|---|
8971
50416a0df385
Importer for the Schifffahrt (S-INFO) and Oekologie (U-INFO) files
mschaefer
parents:
diff
changeset
|
1 /* Copyright (C) 2017 by Bundesanstalt für Gewässerkunde |
50416a0df385
Importer for the Schifffahrt (S-INFO) and Oekologie (U-INFO) files
mschaefer
parents:
diff
changeset
|
2 * Software engineering by |
50416a0df385
Importer for the Schifffahrt (S-INFO) and Oekologie (U-INFO) files
mschaefer
parents:
diff
changeset
|
3 * Björnsen Beratende Ingenieure GmbH |
50416a0df385
Importer for the Schifffahrt (S-INFO) and Oekologie (U-INFO) files
mschaefer
parents:
diff
changeset
|
4 * Dr. Schumacher Ingenieurbüro für Wasser und Umwelt |
50416a0df385
Importer for the Schifffahrt (S-INFO) and Oekologie (U-INFO) files
mschaefer
parents:
diff
changeset
|
5 * |
50416a0df385
Importer for the Schifffahrt (S-INFO) and Oekologie (U-INFO) files
mschaefer
parents:
diff
changeset
|
6 * This file is Free Software under the GNU AGPL (>=v3) |
50416a0df385
Importer for the Schifffahrt (S-INFO) and Oekologie (U-INFO) files
mschaefer
parents:
diff
changeset
|
7 * and comes with ABSOLUTELY NO WARRANTY! Check out the |
50416a0df385
Importer for the Schifffahrt (S-INFO) and Oekologie (U-INFO) files
mschaefer
parents:
diff
changeset
|
8 * documentation coming with Dive4Elements River for details. |
50416a0df385
Importer for the Schifffahrt (S-INFO) and Oekologie (U-INFO) files
mschaefer
parents:
diff
changeset
|
9 */ |
50416a0df385
Importer for the Schifffahrt (S-INFO) and Oekologie (U-INFO) files
mschaefer
parents:
diff
changeset
|
10 |
50416a0df385
Importer for the Schifffahrt (S-INFO) and Oekologie (U-INFO) files
mschaefer
parents:
diff
changeset
|
11 package org.dive4elements.river.importer.sinfo.parsers; |
50416a0df385
Importer for the Schifffahrt (S-INFO) and Oekologie (U-INFO) files
mschaefer
parents:
diff
changeset
|
12 |
50416a0df385
Importer for the Schifffahrt (S-INFO) and Oekologie (U-INFO) files
mschaefer
parents:
diff
changeset
|
13 import java.io.File; |
50416a0df385
Importer for the Schifffahrt (S-INFO) and Oekologie (U-INFO) files
mschaefer
parents:
diff
changeset
|
14 import java.util.ArrayList; |
50416a0df385
Importer for the Schifffahrt (S-INFO) and Oekologie (U-INFO) files
mschaefer
parents:
diff
changeset
|
15 import java.util.List; |
50416a0df385
Importer for the Schifffahrt (S-INFO) and Oekologie (U-INFO) files
mschaefer
parents:
diff
changeset
|
16 import java.util.regex.Matcher; |
50416a0df385
Importer for the Schifffahrt (S-INFO) and Oekologie (U-INFO) files
mschaefer
parents:
diff
changeset
|
17 import java.util.regex.Pattern; |
50416a0df385
Importer for the Schifffahrt (S-INFO) and Oekologie (U-INFO) files
mschaefer
parents:
diff
changeset
|
18 |
50416a0df385
Importer for the Schifffahrt (S-INFO) and Oekologie (U-INFO) files
mschaefer
parents:
diff
changeset
|
19 import org.apache.log4j.Logger; |
50416a0df385
Importer for the Schifffahrt (S-INFO) and Oekologie (U-INFO) files
mschaefer
parents:
diff
changeset
|
20 import org.dive4elements.river.importer.Config; |
50416a0df385
Importer for the Schifffahrt (S-INFO) and Oekologie (U-INFO) files
mschaefer
parents:
diff
changeset
|
21 import org.dive4elements.river.importer.ImportRiver; |
50416a0df385
Importer for the Schifffahrt (S-INFO) and Oekologie (U-INFO) files
mschaefer
parents:
diff
changeset
|
22 import org.dive4elements.river.importer.common.AbstractParser; |
50416a0df385
Importer for the Schifffahrt (S-INFO) and Oekologie (U-INFO) files
mschaefer
parents:
diff
changeset
|
23 import org.dive4elements.river.importer.common.ParsingState; |
50416a0df385
Importer for the Schifffahrt (S-INFO) and Oekologie (U-INFO) files
mschaefer
parents:
diff
changeset
|
24 import org.dive4elements.river.importer.sinfo.importitem.DepthEvolutionKmLineImport; |
50416a0df385
Importer for the Schifffahrt (S-INFO) and Oekologie (U-INFO) files
mschaefer
parents:
diff
changeset
|
25 import org.dive4elements.river.importer.sinfo.importitem.DepthEvolutionSeriesImport; |
50416a0df385
Importer for the Schifffahrt (S-INFO) and Oekologie (U-INFO) files
mschaefer
parents:
diff
changeset
|
26 import org.dive4elements.river.model.sinfo.DepthEvolution; |
50416a0df385
Importer for the Schifffahrt (S-INFO) and Oekologie (U-INFO) files
mschaefer
parents:
diff
changeset
|
27 import org.dive4elements.river.model.sinfo.DepthEvolutionValue; |
50416a0df385
Importer for the Schifffahrt (S-INFO) and Oekologie (U-INFO) files
mschaefer
parents:
diff
changeset
|
28 |
50416a0df385
Importer for the Schifffahrt (S-INFO) and Oekologie (U-INFO) files
mschaefer
parents:
diff
changeset
|
29 /** |
50416a0df385
Importer for the Schifffahrt (S-INFO) and Oekologie (U-INFO) files
mschaefer
parents:
diff
changeset
|
30 * Reads and parses a depth evolution file |
50416a0df385
Importer for the Schifffahrt (S-INFO) and Oekologie (U-INFO) files
mschaefer
parents:
diff
changeset
|
31 * |
50416a0df385
Importer for the Schifffahrt (S-INFO) and Oekologie (U-INFO) files
mschaefer
parents:
diff
changeset
|
32 * @author Matthias Schäfer |
50416a0df385
Importer for the Schifffahrt (S-INFO) and Oekologie (U-INFO) files
mschaefer
parents:
diff
changeset
|
33 * |
50416a0df385
Importer for the Schifffahrt (S-INFO) and Oekologie (U-INFO) files
mschaefer
parents:
diff
changeset
|
34 */ |
50416a0df385
Importer for the Schifffahrt (S-INFO) and Oekologie (U-INFO) files
mschaefer
parents:
diff
changeset
|
35 public class DepthEvolutionParser extends AbstractParser<DepthEvolution, DepthEvolutionValue, DepthEvolutionKmLineImport, DepthEvolutionSeriesImport> { |
50416a0df385
Importer for the Schifffahrt (S-INFO) and Oekologie (U-INFO) files
mschaefer
parents:
diff
changeset
|
36 |
9657
a79881a892c9
Importer (s/u-info) extensions: depth-evolution: corrected directory name Bezug_aktueller_GlW,
mschaefer
parents:
9636
diff
changeset
|
37 /***** TYPES *****/ |
8971
50416a0df385
Importer for the Schifffahrt (S-INFO) and Oekologie (U-INFO) files
mschaefer
parents:
diff
changeset
|
38 |
9636
ac41551a8e4d
Bundu/Bzws: Error message for missing channel/year, Nachtrag Pos. 20: import of two levels of infrastructure types
mschaefer
parents:
9032
diff
changeset
|
39 public enum GroupDirectory { |
9032
1f63e9d3b0ec
New columns for bed_height, tkh and depth_evolution, a few syntactic corrections for Oracle
mschaefer
parents:
8988
diff
changeset
|
40 NONE(DepthEvolution.Group.NONE, ""), // |
9636
ac41551a8e4d
Bundu/Bzws: Error message for missing channel/year, Nachtrag Pos. 20: import of two levels of infrastructure types
mschaefer
parents:
9032
diff
changeset
|
41 AKTUELL(DepthEvolution.Group.AKTUELL, "Bezug_aktueller_GlW"), // |
ac41551a8e4d
Bundu/Bzws: Error message for missing channel/year, Nachtrag Pos. 20: import of two levels of infrastructure types
mschaefer
parents:
9032
diff
changeset
|
42 ETAPPE(DepthEvolution.Group.ETAPPE, "GlW-Etappen"); |
9032
1f63e9d3b0ec
New columns for bed_height, tkh and depth_evolution, a few syntactic corrections for Oracle
mschaefer
parents:
8988
diff
changeset
|
43 |
1f63e9d3b0ec
New columns for bed_height, tkh and depth_evolution, a few syntactic corrections for Oracle
mschaefer
parents:
8988
diff
changeset
|
44 private final DepthEvolution.Group group; |
1f63e9d3b0ec
New columns for bed_height, tkh and depth_evolution, a few syntactic corrections for Oracle
mschaefer
parents:
8988
diff
changeset
|
45 private final String dirname; |
1f63e9d3b0ec
New columns for bed_height, tkh and depth_evolution, a few syntactic corrections for Oracle
mschaefer
parents:
8988
diff
changeset
|
46 |
1f63e9d3b0ec
New columns for bed_height, tkh and depth_evolution, a few syntactic corrections for Oracle
mschaefer
parents:
8988
diff
changeset
|
47 GroupDirectory(final DepthEvolution.Group group, final String dirname) { |
1f63e9d3b0ec
New columns for bed_height, tkh and depth_evolution, a few syntactic corrections for Oracle
mschaefer
parents:
8988
diff
changeset
|
48 this.group = group; |
1f63e9d3b0ec
New columns for bed_height, tkh and depth_evolution, a few syntactic corrections for Oracle
mschaefer
parents:
8988
diff
changeset
|
49 this.dirname = dirname; |
1f63e9d3b0ec
New columns for bed_height, tkh and depth_evolution, a few syntactic corrections for Oracle
mschaefer
parents:
8988
diff
changeset
|
50 } |
1f63e9d3b0ec
New columns for bed_height, tkh and depth_evolution, a few syntactic corrections for Oracle
mschaefer
parents:
8988
diff
changeset
|
51 |
1f63e9d3b0ec
New columns for bed_height, tkh and depth_evolution, a few syntactic corrections for Oracle
mschaefer
parents:
8988
diff
changeset
|
52 public DepthEvolution.Group getGroup() { |
1f63e9d3b0ec
New columns for bed_height, tkh and depth_evolution, a few syntactic corrections for Oracle
mschaefer
parents:
8988
diff
changeset
|
53 return this.group; |
1f63e9d3b0ec
New columns for bed_height, tkh and depth_evolution, a few syntactic corrections for Oracle
mschaefer
parents:
8988
diff
changeset
|
54 } |
1f63e9d3b0ec
New columns for bed_height, tkh and depth_evolution, a few syntactic corrections for Oracle
mschaefer
parents:
8988
diff
changeset
|
55 |
1f63e9d3b0ec
New columns for bed_height, tkh and depth_evolution, a few syntactic corrections for Oracle
mschaefer
parents:
8988
diff
changeset
|
56 public String getDirName() { |
1f63e9d3b0ec
New columns for bed_height, tkh and depth_evolution, a few syntactic corrections for Oracle
mschaefer
parents:
8988
diff
changeset
|
57 return this.dirname; |
1f63e9d3b0ec
New columns for bed_height, tkh and depth_evolution, a few syntactic corrections for Oracle
mschaefer
parents:
8988
diff
changeset
|
58 } |
1f63e9d3b0ec
New columns for bed_height, tkh and depth_evolution, a few syntactic corrections for Oracle
mschaefer
parents:
8988
diff
changeset
|
59 |
1f63e9d3b0ec
New columns for bed_height, tkh and depth_evolution, a few syntactic corrections for Oracle
mschaefer
parents:
8988
diff
changeset
|
60 public static GroupDirectory forDirName(final String dirname) { |
1f63e9d3b0ec
New columns for bed_height, tkh and depth_evolution, a few syntactic corrections for Oracle
mschaefer
parents:
8988
diff
changeset
|
61 for (final GroupDirectory gd : GroupDirectory.values()) { |
1f63e9d3b0ec
New columns for bed_height, tkh and depth_evolution, a few syntactic corrections for Oracle
mschaefer
parents:
8988
diff
changeset
|
62 if (dirname.equalsIgnoreCase(gd.getDirName())) |
1f63e9d3b0ec
New columns for bed_height, tkh and depth_evolution, a few syntactic corrections for Oracle
mschaefer
parents:
8988
diff
changeset
|
63 return gd; |
1f63e9d3b0ec
New columns for bed_height, tkh and depth_evolution, a few syntactic corrections for Oracle
mschaefer
parents:
8988
diff
changeset
|
64 } |
1f63e9d3b0ec
New columns for bed_height, tkh and depth_evolution, a few syntactic corrections for Oracle
mschaefer
parents:
8988
diff
changeset
|
65 return NONE; |
1f63e9d3b0ec
New columns for bed_height, tkh and depth_evolution, a few syntactic corrections for Oracle
mschaefer
parents:
8988
diff
changeset
|
66 } |
1f63e9d3b0ec
New columns for bed_height, tkh and depth_evolution, a few syntactic corrections for Oracle
mschaefer
parents:
8988
diff
changeset
|
67 } |
1f63e9d3b0ec
New columns for bed_height, tkh and depth_evolution, a few syntactic corrections for Oracle
mschaefer
parents:
8988
diff
changeset
|
68 |
8971
50416a0df385
Importer for the Schifffahrt (S-INFO) and Oekologie (U-INFO) files
mschaefer
parents:
diff
changeset
|
69 |
9657
a79881a892c9
Importer (s/u-info) extensions: depth-evolution: corrected directory name Bezug_aktueller_GlW,
mschaefer
parents:
9636
diff
changeset
|
70 /***** FIELDS *****/ |
a79881a892c9
Importer (s/u-info) extensions: depth-evolution: corrected directory name Bezug_aktueller_GlW,
mschaefer
parents:
9636
diff
changeset
|
71 |
a79881a892c9
Importer (s/u-info) extensions: depth-evolution: corrected directory name Bezug_aktueller_GlW,
mschaefer
parents:
9636
diff
changeset
|
72 private static final Logger log = Logger.getLogger(DepthEvolutionParser.class); |
a79881a892c9
Importer (s/u-info) extensions: depth-evolution: corrected directory name Bezug_aktueller_GlW,
mschaefer
parents:
9636
diff
changeset
|
73 |
a79881a892c9
Importer (s/u-info) extensions: depth-evolution: corrected directory name Bezug_aktueller_GlW,
mschaefer
parents:
9636
diff
changeset
|
74 protected static final Pattern META_REFERENCE_YEAR = Pattern.compile("^#\\sBezugsjahr:\\s*([12]\\d{3}).*", Pattern.CASE_INSENSITIVE); |
a79881a892c9
Importer (s/u-info) extensions: depth-evolution: corrected directory name Bezug_aktueller_GlW,
mschaefer
parents:
9636
diff
changeset
|
75 |
a79881a892c9
Importer (s/u-info) extensions: depth-evolution: corrected directory name Bezug_aktueller_GlW,
mschaefer
parents:
9636
diff
changeset
|
76 protected static final Pattern META_START_YEAR = Pattern.compile("^#\\sAusgangsjahr:\\s*([12]\\d{3}).*", Pattern.CASE_INSENSITIVE); |
a79881a892c9
Importer (s/u-info) extensions: depth-evolution: corrected directory name Bezug_aktueller_GlW,
mschaefer
parents:
9636
diff
changeset
|
77 |
a79881a892c9
Importer (s/u-info) extensions: depth-evolution: corrected directory name Bezug_aktueller_GlW,
mschaefer
parents:
9636
diff
changeset
|
78 private static final Pattern META_CURR_SOUNDING = Pattern.compile("^#\\sAktuelle Peilung\\s*\\/\\s*Epoche:\\s*([^;]*([12]\\d{3})[^;]*).*", |
a79881a892c9
Importer (s/u-info) extensions: depth-evolution: corrected directory name Bezug_aktueller_GlW,
mschaefer
parents:
9636
diff
changeset
|
79 Pattern.CASE_INSENSITIVE); |
a79881a892c9
Importer (s/u-info) extensions: depth-evolution: corrected directory name Bezug_aktueller_GlW,
mschaefer
parents:
9636
diff
changeset
|
80 |
a79881a892c9
Importer (s/u-info) extensions: depth-evolution: corrected directory name Bezug_aktueller_GlW,
mschaefer
parents:
9636
diff
changeset
|
81 private static final Pattern META_OLD_SOUNDING = Pattern.compile("^#\\sHistorische Peilung\\s*\\/\\s*Epoche:\\s*([^;]*([12]\\d{3})[^;]*).*", |
a79881a892c9
Importer (s/u-info) extensions: depth-evolution: corrected directory name Bezug_aktueller_GlW,
mschaefer
parents:
9636
diff
changeset
|
82 Pattern.CASE_INSENSITIVE); |
a79881a892c9
Importer (s/u-info) extensions: depth-evolution: corrected directory name Bezug_aktueller_GlW,
mschaefer
parents:
9636
diff
changeset
|
83 |
a79881a892c9
Importer (s/u-info) extensions: depth-evolution: corrected directory name Bezug_aktueller_GlW,
mschaefer
parents:
9636
diff
changeset
|
84 private static final Pattern META_CURR_WSP = Pattern.compile("^#\\sAktuelle Wasserspiegellage:\\s*([^;]*([12]\\d{3})[^;]*).*", Pattern.CASE_INSENSITIVE); |
a79881a892c9
Importer (s/u-info) extensions: depth-evolution: corrected directory name Bezug_aktueller_GlW,
mschaefer
parents:
9636
diff
changeset
|
85 |
a79881a892c9
Importer (s/u-info) extensions: depth-evolution: corrected directory name Bezug_aktueller_GlW,
mschaefer
parents:
9636
diff
changeset
|
86 private static final Pattern META_OLD_WSP = Pattern.compile("^#\\sHistorische Wasserspiegellage:\\s*([^;]*([12]\\d{3})[^;]*).*", Pattern.CASE_INSENSITIVE); |
a79881a892c9
Importer (s/u-info) extensions: depth-evolution: corrected directory name Bezug_aktueller_GlW,
mschaefer
parents:
9636
diff
changeset
|
87 |
a79881a892c9
Importer (s/u-info) extensions: depth-evolution: corrected directory name Bezug_aktueller_GlW,
mschaefer
parents:
9636
diff
changeset
|
88 private static final Pattern COLUMN_TC_TITLE = Pattern.compile("Flie((.)|(ss))tiefenentwicklung\\s*\\[cm\\].*", Pattern.CASE_INSENSITIVE); |
a79881a892c9
Importer (s/u-info) extensions: depth-evolution: corrected directory name Bezug_aktueller_GlW,
mschaefer
parents:
9636
diff
changeset
|
89 |
a79881a892c9
Importer (s/u-info) extensions: depth-evolution: corrected directory name Bezug_aktueller_GlW,
mschaefer
parents:
9636
diff
changeset
|
90 private static final Pattern COLUMN_CPY_TITLE = Pattern.compile("Flie((.)|(ss))tiefenentwicklung\\s*\\[cm\\/a\\].*", Pattern.CASE_INSENSITIVE); |
a79881a892c9
Importer (s/u-info) extensions: depth-evolution: corrected directory name Bezug_aktueller_GlW,
mschaefer
parents:
9636
diff
changeset
|
91 |
a79881a892c9
Importer (s/u-info) extensions: depth-evolution: corrected directory name Bezug_aktueller_GlW,
mschaefer
parents:
9636
diff
changeset
|
92 private int currSoundingYear; |
a79881a892c9
Importer (s/u-info) extensions: depth-evolution: corrected directory name Bezug_aktueller_GlW,
mschaefer
parents:
9636
diff
changeset
|
93 private int oldSoundingYear; |
a79881a892c9
Importer (s/u-info) extensions: depth-evolution: corrected directory name Bezug_aktueller_GlW,
mschaefer
parents:
9636
diff
changeset
|
94 private int currWspYear; |
a79881a892c9
Importer (s/u-info) extensions: depth-evolution: corrected directory name Bezug_aktueller_GlW,
mschaefer
parents:
9636
diff
changeset
|
95 private int oldWspYear; |
a79881a892c9
Importer (s/u-info) extensions: depth-evolution: corrected directory name Bezug_aktueller_GlW,
mschaefer
parents:
9636
diff
changeset
|
96 |
a79881a892c9
Importer (s/u-info) extensions: depth-evolution: corrected directory name Bezug_aktueller_GlW,
mschaefer
parents:
9636
diff
changeset
|
97 |
8971
50416a0df385
Importer for the Schifffahrt (S-INFO) and Oekologie (U-INFO) files
mschaefer
parents:
diff
changeset
|
98 /***** CONSTRUCTORS *****/ |
50416a0df385
Importer for the Schifffahrt (S-INFO) and Oekologie (U-INFO) files
mschaefer
parents:
diff
changeset
|
99 |
50416a0df385
Importer for the Schifffahrt (S-INFO) and Oekologie (U-INFO) files
mschaefer
parents:
diff
changeset
|
100 public DepthEvolutionParser(final File importPath, final File rootRelativePath, final ImportRiver river) { |
50416a0df385
Importer for the Schifffahrt (S-INFO) and Oekologie (U-INFO) files
mschaefer
parents:
diff
changeset
|
101 super(importPath, rootRelativePath, river); |
50416a0df385
Importer for the Schifffahrt (S-INFO) and Oekologie (U-INFO) files
mschaefer
parents:
diff
changeset
|
102 } |
50416a0df385
Importer for the Schifffahrt (S-INFO) and Oekologie (U-INFO) files
mschaefer
parents:
diff
changeset
|
103 |
50416a0df385
Importer for the Schifffahrt (S-INFO) and Oekologie (U-INFO) files
mschaefer
parents:
diff
changeset
|
104 |
50416a0df385
Importer for the Schifffahrt (S-INFO) and Oekologie (U-INFO) files
mschaefer
parents:
diff
changeset
|
105 /***** METHODS *****/ |
50416a0df385
Importer for the Schifffahrt (S-INFO) and Oekologie (U-INFO) files
mschaefer
parents:
diff
changeset
|
106 |
50416a0df385
Importer for the Schifffahrt (S-INFO) and Oekologie (U-INFO) files
mschaefer
parents:
diff
changeset
|
107 @Override |
50416a0df385
Importer for the Schifffahrt (S-INFO) and Oekologie (U-INFO) files
mschaefer
parents:
diff
changeset
|
108 protected Logger getLog() { |
50416a0df385
Importer for the Schifffahrt (S-INFO) and Oekologie (U-INFO) files
mschaefer
parents:
diff
changeset
|
109 return log; |
50416a0df385
Importer for the Schifffahrt (S-INFO) and Oekologie (U-INFO) files
mschaefer
parents:
diff
changeset
|
110 } |
50416a0df385
Importer for the Schifffahrt (S-INFO) and Oekologie (U-INFO) files
mschaefer
parents:
diff
changeset
|
111 |
50416a0df385
Importer for the Schifffahrt (S-INFO) and Oekologie (U-INFO) files
mschaefer
parents:
diff
changeset
|
112 /** |
50416a0df385
Importer for the Schifffahrt (S-INFO) and Oekologie (U-INFO) files
mschaefer
parents:
diff
changeset
|
113 * Whether this import type shall be skipped |
50416a0df385
Importer for the Schifffahrt (S-INFO) and Oekologie (U-INFO) files
mschaefer
parents:
diff
changeset
|
114 */ |
50416a0df385
Importer for the Schifffahrt (S-INFO) and Oekologie (U-INFO) files
mschaefer
parents:
diff
changeset
|
115 public static boolean shallSkip() { |
50416a0df385
Importer for the Schifffahrt (S-INFO) and Oekologie (U-INFO) files
mschaefer
parents:
diff
changeset
|
116 return Config.INSTANCE.skipSInfoDepthEvolution(); |
50416a0df385
Importer for the Schifffahrt (S-INFO) and Oekologie (U-INFO) files
mschaefer
parents:
diff
changeset
|
117 } |
50416a0df385
Importer for the Schifffahrt (S-INFO) and Oekologie (U-INFO) files
mschaefer
parents:
diff
changeset
|
118 |
50416a0df385
Importer for the Schifffahrt (S-INFO) and Oekologie (U-INFO) files
mschaefer
parents:
diff
changeset
|
119 /** |
50416a0df385
Importer for the Schifffahrt (S-INFO) and Oekologie (U-INFO) files
mschaefer
parents:
diff
changeset
|
120 * Creates a list of parsers for all depth_evolution import files in a directory |
50416a0df385
Importer for the Schifffahrt (S-INFO) and Oekologie (U-INFO) files
mschaefer
parents:
diff
changeset
|
121 */ |
50416a0df385
Importer for the Schifffahrt (S-INFO) and Oekologie (U-INFO) files
mschaefer
parents:
diff
changeset
|
122 public static List<DepthEvolutionParser> createParsers(final File importDir, final File relativeDir, final ImportRiver river) { |
50416a0df385
Importer for the Schifffahrt (S-INFO) and Oekologie (U-INFO) files
mschaefer
parents:
diff
changeset
|
123 final List<DepthEvolutionParser> parsers = new ArrayList<>(); |
8988 | 124 if (importDir.exists()) |
125 for (final File file : listFiles(importDir, ".csv")) | |
126 parsers.add(new DepthEvolutionParser(file, new File(relativeDir, file.getName()), river)); | |
8971
50416a0df385
Importer for the Schifffahrt (S-INFO) and Oekologie (U-INFO) files
mschaefer
parents:
diff
changeset
|
127 return parsers; |
50416a0df385
Importer for the Schifffahrt (S-INFO) and Oekologie (U-INFO) files
mschaefer
parents:
diff
changeset
|
128 } |
50416a0df385
Importer for the Schifffahrt (S-INFO) and Oekologie (U-INFO) files
mschaefer
parents:
diff
changeset
|
129 |
50416a0df385
Importer for the Schifffahrt (S-INFO) and Oekologie (U-INFO) files
mschaefer
parents:
diff
changeset
|
130 @Override |
50416a0df385
Importer for the Schifffahrt (S-INFO) and Oekologie (U-INFO) files
mschaefer
parents:
diff
changeset
|
131 protected boolean handleMetaOther() { |
9657
a79881a892c9
Importer (s/u-info) extensions: depth-evolution: corrected directory name Bezug_aktueller_GlW,
mschaefer
parents:
9636
diff
changeset
|
132 if (handleMetaReferenceYear()) |
8971
50416a0df385
Importer for the Schifffahrt (S-INFO) and Oekologie (U-INFO) files
mschaefer
parents:
diff
changeset
|
133 return true; |
9657
a79881a892c9
Importer (s/u-info) extensions: depth-evolution: corrected directory name Bezug_aktueller_GlW,
mschaefer
parents:
9636
diff
changeset
|
134 else if (handleMetaStartYear()) |
8971
50416a0df385
Importer for the Schifffahrt (S-INFO) and Oekologie (U-INFO) files
mschaefer
parents:
diff
changeset
|
135 return true; |
50416a0df385
Importer for the Schifffahrt (S-INFO) and Oekologie (U-INFO) files
mschaefer
parents:
diff
changeset
|
136 else if (handleMetaCurrSounding()) |
50416a0df385
Importer for the Schifffahrt (S-INFO) and Oekologie (U-INFO) files
mschaefer
parents:
diff
changeset
|
137 return true; |
50416a0df385
Importer for the Schifffahrt (S-INFO) and Oekologie (U-INFO) files
mschaefer
parents:
diff
changeset
|
138 else if (handleMetaOldSounding()) |
50416a0df385
Importer for the Schifffahrt (S-INFO) and Oekologie (U-INFO) files
mschaefer
parents:
diff
changeset
|
139 return true; |
50416a0df385
Importer for the Schifffahrt (S-INFO) and Oekologie (U-INFO) files
mschaefer
parents:
diff
changeset
|
140 else if (handleMetaCurrGlw()) |
50416a0df385
Importer for the Schifffahrt (S-INFO) and Oekologie (U-INFO) files
mschaefer
parents:
diff
changeset
|
141 return true; |
50416a0df385
Importer for the Schifffahrt (S-INFO) and Oekologie (U-INFO) files
mschaefer
parents:
diff
changeset
|
142 else if (handleMetaOldGlw()) |
50416a0df385
Importer for the Schifffahrt (S-INFO) and Oekologie (U-INFO) files
mschaefer
parents:
diff
changeset
|
143 return true; |
50416a0df385
Importer for the Schifffahrt (S-INFO) and Oekologie (U-INFO) files
mschaefer
parents:
diff
changeset
|
144 else |
50416a0df385
Importer for the Schifffahrt (S-INFO) and Oekologie (U-INFO) files
mschaefer
parents:
diff
changeset
|
145 return false; |
50416a0df385
Importer for the Schifffahrt (S-INFO) and Oekologie (U-INFO) files
mschaefer
parents:
diff
changeset
|
146 } |
50416a0df385
Importer for the Schifffahrt (S-INFO) and Oekologie (U-INFO) files
mschaefer
parents:
diff
changeset
|
147 |
9657
a79881a892c9
Importer (s/u-info) extensions: depth-evolution: corrected directory name Bezug_aktueller_GlW,
mschaefer
parents:
9636
diff
changeset
|
148 private boolean handleMetaReferenceYear() { |
a79881a892c9
Importer (s/u-info) extensions: depth-evolution: corrected directory name Bezug_aktueller_GlW,
mschaefer
parents:
9636
diff
changeset
|
149 final Matcher m = META_REFERENCE_YEAR.matcher(this.currentLine); |
a79881a892c9
Importer (s/u-info) extensions: depth-evolution: corrected directory name Bezug_aktueller_GlW,
mschaefer
parents:
9636
diff
changeset
|
150 if (m.matches()) { |
a79881a892c9
Importer (s/u-info) extensions: depth-evolution: corrected directory name Bezug_aktueller_GlW,
mschaefer
parents:
9636
diff
changeset
|
151 this.metaPatternsMatched.add(META_REFERENCE_YEAR); |
a79881a892c9
Importer (s/u-info) extensions: depth-evolution: corrected directory name Bezug_aktueller_GlW,
mschaefer
parents:
9636
diff
changeset
|
152 this.seriesHeader.setReference_year(Integer.parseInt(m.group(1))); |
a79881a892c9
Importer (s/u-info) extensions: depth-evolution: corrected directory name Bezug_aktueller_GlW,
mschaefer
parents:
9636
diff
changeset
|
153 return true; |
a79881a892c9
Importer (s/u-info) extensions: depth-evolution: corrected directory name Bezug_aktueller_GlW,
mschaefer
parents:
9636
diff
changeset
|
154 } |
a79881a892c9
Importer (s/u-info) extensions: depth-evolution: corrected directory name Bezug_aktueller_GlW,
mschaefer
parents:
9636
diff
changeset
|
155 return false; |
a79881a892c9
Importer (s/u-info) extensions: depth-evolution: corrected directory name Bezug_aktueller_GlW,
mschaefer
parents:
9636
diff
changeset
|
156 } |
a79881a892c9
Importer (s/u-info) extensions: depth-evolution: corrected directory name Bezug_aktueller_GlW,
mschaefer
parents:
9636
diff
changeset
|
157 |
8971
50416a0df385
Importer for the Schifffahrt (S-INFO) and Oekologie (U-INFO) files
mschaefer
parents:
diff
changeset
|
158 private boolean handleMetaStartYear() { |
50416a0df385
Importer for the Schifffahrt (S-INFO) and Oekologie (U-INFO) files
mschaefer
parents:
diff
changeset
|
159 final Matcher m = META_START_YEAR.matcher(this.currentLine); |
50416a0df385
Importer for the Schifffahrt (S-INFO) and Oekologie (U-INFO) files
mschaefer
parents:
diff
changeset
|
160 if (m.matches()) { |
50416a0df385
Importer for the Schifffahrt (S-INFO) and Oekologie (U-INFO) files
mschaefer
parents:
diff
changeset
|
161 this.metaPatternsMatched.add(META_START_YEAR); |
50416a0df385
Importer for the Schifffahrt (S-INFO) and Oekologie (U-INFO) files
mschaefer
parents:
diff
changeset
|
162 this.seriesHeader.setStart_year(Integer.parseInt(m.group(1))); |
50416a0df385
Importer for the Schifffahrt (S-INFO) and Oekologie (U-INFO) files
mschaefer
parents:
diff
changeset
|
163 return true; |
50416a0df385
Importer for the Schifffahrt (S-INFO) and Oekologie (U-INFO) files
mschaefer
parents:
diff
changeset
|
164 } |
50416a0df385
Importer for the Schifffahrt (S-INFO) and Oekologie (U-INFO) files
mschaefer
parents:
diff
changeset
|
165 return false; |
50416a0df385
Importer for the Schifffahrt (S-INFO) and Oekologie (U-INFO) files
mschaefer
parents:
diff
changeset
|
166 } |
50416a0df385
Importer for the Schifffahrt (S-INFO) and Oekologie (U-INFO) files
mschaefer
parents:
diff
changeset
|
167 |
50416a0df385
Importer for the Schifffahrt (S-INFO) and Oekologie (U-INFO) files
mschaefer
parents:
diff
changeset
|
168 private boolean handleMetaCurrSounding() { |
50416a0df385
Importer for the Schifffahrt (S-INFO) and Oekologie (U-INFO) files
mschaefer
parents:
diff
changeset
|
169 final Matcher m = META_CURR_SOUNDING.matcher(this.currentLine); |
50416a0df385
Importer for the Schifffahrt (S-INFO) and Oekologie (U-INFO) files
mschaefer
parents:
diff
changeset
|
170 if (m.matches()) { |
50416a0df385
Importer for the Schifffahrt (S-INFO) and Oekologie (U-INFO) files
mschaefer
parents:
diff
changeset
|
171 this.metaPatternsMatched.add(META_CURR_SOUNDING); |
50416a0df385
Importer for the Schifffahrt (S-INFO) and Oekologie (U-INFO) files
mschaefer
parents:
diff
changeset
|
172 this.seriesHeader.setCurr_sounding(parseMetaInfo(m.group(1).trim())); |
9657
a79881a892c9
Importer (s/u-info) extensions: depth-evolution: corrected directory name Bezug_aktueller_GlW,
mschaefer
parents:
9636
diff
changeset
|
173 this.currSoundingYear = Integer.valueOf(m.group(2)).intValue(); |
8971
50416a0df385
Importer for the Schifffahrt (S-INFO) and Oekologie (U-INFO) files
mschaefer
parents:
diff
changeset
|
174 return true; |
50416a0df385
Importer for the Schifffahrt (S-INFO) and Oekologie (U-INFO) files
mschaefer
parents:
diff
changeset
|
175 } |
50416a0df385
Importer for the Schifffahrt (S-INFO) and Oekologie (U-INFO) files
mschaefer
parents:
diff
changeset
|
176 return false; |
50416a0df385
Importer for the Schifffahrt (S-INFO) and Oekologie (U-INFO) files
mschaefer
parents:
diff
changeset
|
177 } |
50416a0df385
Importer for the Schifffahrt (S-INFO) and Oekologie (U-INFO) files
mschaefer
parents:
diff
changeset
|
178 |
50416a0df385
Importer for the Schifffahrt (S-INFO) and Oekologie (U-INFO) files
mschaefer
parents:
diff
changeset
|
179 private boolean handleMetaOldSounding() { |
50416a0df385
Importer for the Schifffahrt (S-INFO) and Oekologie (U-INFO) files
mschaefer
parents:
diff
changeset
|
180 final Matcher m = META_OLD_SOUNDING.matcher(this.currentLine); |
50416a0df385
Importer for the Schifffahrt (S-INFO) and Oekologie (U-INFO) files
mschaefer
parents:
diff
changeset
|
181 if (m.matches()) { |
50416a0df385
Importer for the Schifffahrt (S-INFO) and Oekologie (U-INFO) files
mschaefer
parents:
diff
changeset
|
182 this.metaPatternsMatched.add(META_OLD_SOUNDING); |
50416a0df385
Importer for the Schifffahrt (S-INFO) and Oekologie (U-INFO) files
mschaefer
parents:
diff
changeset
|
183 this.seriesHeader.setOld_sounding(parseMetaInfo(m.group(1).trim())); |
9657
a79881a892c9
Importer (s/u-info) extensions: depth-evolution: corrected directory name Bezug_aktueller_GlW,
mschaefer
parents:
9636
diff
changeset
|
184 this.oldSoundingYear = Integer.valueOf(m.group(2)).intValue(); |
8971
50416a0df385
Importer for the Schifffahrt (S-INFO) and Oekologie (U-INFO) files
mschaefer
parents:
diff
changeset
|
185 return true; |
50416a0df385
Importer for the Schifffahrt (S-INFO) and Oekologie (U-INFO) files
mschaefer
parents:
diff
changeset
|
186 } |
50416a0df385
Importer for the Schifffahrt (S-INFO) and Oekologie (U-INFO) files
mschaefer
parents:
diff
changeset
|
187 return false; |
50416a0df385
Importer for the Schifffahrt (S-INFO) and Oekologie (U-INFO) files
mschaefer
parents:
diff
changeset
|
188 } |
50416a0df385
Importer for the Schifffahrt (S-INFO) and Oekologie (U-INFO) files
mschaefer
parents:
diff
changeset
|
189 |
50416a0df385
Importer for the Schifffahrt (S-INFO) and Oekologie (U-INFO) files
mschaefer
parents:
diff
changeset
|
190 private boolean handleMetaCurrGlw() { |
50416a0df385
Importer for the Schifffahrt (S-INFO) and Oekologie (U-INFO) files
mschaefer
parents:
diff
changeset
|
191 final Matcher m = META_CURR_WSP.matcher(this.currentLine); |
50416a0df385
Importer for the Schifffahrt (S-INFO) and Oekologie (U-INFO) files
mschaefer
parents:
diff
changeset
|
192 if (m.matches()) { |
50416a0df385
Importer for the Schifffahrt (S-INFO) and Oekologie (U-INFO) files
mschaefer
parents:
diff
changeset
|
193 this.metaPatternsMatched.add(META_CURR_WSP); |
50416a0df385
Importer for the Schifffahrt (S-INFO) and Oekologie (U-INFO) files
mschaefer
parents:
diff
changeset
|
194 this.seriesHeader.setCurr_glw(parseMetaInfo(m.group(1).trim())); |
9657
a79881a892c9
Importer (s/u-info) extensions: depth-evolution: corrected directory name Bezug_aktueller_GlW,
mschaefer
parents:
9636
diff
changeset
|
195 this.currWspYear = Integer.valueOf(m.group(2)).intValue(); |
8971
50416a0df385
Importer for the Schifffahrt (S-INFO) and Oekologie (U-INFO) files
mschaefer
parents:
diff
changeset
|
196 return true; |
50416a0df385
Importer for the Schifffahrt (S-INFO) and Oekologie (U-INFO) files
mschaefer
parents:
diff
changeset
|
197 } |
50416a0df385
Importer for the Schifffahrt (S-INFO) and Oekologie (U-INFO) files
mschaefer
parents:
diff
changeset
|
198 return false; |
50416a0df385
Importer for the Schifffahrt (S-INFO) and Oekologie (U-INFO) files
mschaefer
parents:
diff
changeset
|
199 } |
50416a0df385
Importer for the Schifffahrt (S-INFO) and Oekologie (U-INFO) files
mschaefer
parents:
diff
changeset
|
200 |
50416a0df385
Importer for the Schifffahrt (S-INFO) and Oekologie (U-INFO) files
mschaefer
parents:
diff
changeset
|
201 private boolean handleMetaOldGlw() { |
50416a0df385
Importer for the Schifffahrt (S-INFO) and Oekologie (U-INFO) files
mschaefer
parents:
diff
changeset
|
202 final Matcher m = META_OLD_WSP.matcher(this.currentLine); |
50416a0df385
Importer for the Schifffahrt (S-INFO) and Oekologie (U-INFO) files
mschaefer
parents:
diff
changeset
|
203 if (m.matches()) { |
50416a0df385
Importer for the Schifffahrt (S-INFO) and Oekologie (U-INFO) files
mschaefer
parents:
diff
changeset
|
204 this.metaPatternsMatched.add(META_OLD_WSP); |
50416a0df385
Importer for the Schifffahrt (S-INFO) and Oekologie (U-INFO) files
mschaefer
parents:
diff
changeset
|
205 this.seriesHeader.setOld_glw(parseMetaInfo(m.group(1).trim())); |
9657
a79881a892c9
Importer (s/u-info) extensions: depth-evolution: corrected directory name Bezug_aktueller_GlW,
mschaefer
parents:
9636
diff
changeset
|
206 this.oldWspYear = Integer.valueOf(m.group(2)).intValue(); |
8971
50416a0df385
Importer for the Schifffahrt (S-INFO) and Oekologie (U-INFO) files
mschaefer
parents:
diff
changeset
|
207 return true; |
50416a0df385
Importer for the Schifffahrt (S-INFO) and Oekologie (U-INFO) files
mschaefer
parents:
diff
changeset
|
208 } |
50416a0df385
Importer for the Schifffahrt (S-INFO) and Oekologie (U-INFO) files
mschaefer
parents:
diff
changeset
|
209 return false; |
50416a0df385
Importer for the Schifffahrt (S-INFO) and Oekologie (U-INFO) files
mschaefer
parents:
diff
changeset
|
210 } |
50416a0df385
Importer for the Schifffahrt (S-INFO) and Oekologie (U-INFO) files
mschaefer
parents:
diff
changeset
|
211 |
50416a0df385
Importer for the Schifffahrt (S-INFO) and Oekologie (U-INFO) files
mschaefer
parents:
diff
changeset
|
212 @Override |
9657
a79881a892c9
Importer (s/u-info) extensions: depth-evolution: corrected directory name Bezug_aktueller_GlW,
mschaefer
parents:
9636
diff
changeset
|
213 protected boolean checkMetaData() { |
a79881a892c9
Importer (s/u-info) extensions: depth-evolution: corrected directory name Bezug_aktueller_GlW,
mschaefer
parents:
9636
diff
changeset
|
214 if (super.checkMetaData() == false) |
a79881a892c9
Importer (s/u-info) extensions: depth-evolution: corrected directory name Bezug_aktueller_GlW,
mschaefer
parents:
9636
diff
changeset
|
215 return false; |
a79881a892c9
Importer (s/u-info) extensions: depth-evolution: corrected directory name Bezug_aktueller_GlW,
mschaefer
parents:
9636
diff
changeset
|
216 if (this.seriesHeader.getReference_year() == null) { |
a79881a892c9
Importer (s/u-info) extensions: depth-evolution: corrected directory name Bezug_aktueller_GlW,
mschaefer
parents:
9636
diff
changeset
|
217 logError("Reference year is missing"); |
a79881a892c9
Importer (s/u-info) extensions: depth-evolution: corrected directory name Bezug_aktueller_GlW,
mschaefer
parents:
9636
diff
changeset
|
218 this.headerParsingState = ParsingState.STOP; |
a79881a892c9
Importer (s/u-info) extensions: depth-evolution: corrected directory name Bezug_aktueller_GlW,
mschaefer
parents:
9636
diff
changeset
|
219 return false; |
a79881a892c9
Importer (s/u-info) extensions: depth-evolution: corrected directory name Bezug_aktueller_GlW,
mschaefer
parents:
9636
diff
changeset
|
220 } |
a79881a892c9
Importer (s/u-info) extensions: depth-evolution: corrected directory name Bezug_aktueller_GlW,
mschaefer
parents:
9636
diff
changeset
|
221 if (this.seriesHeader.getStart_year() == null) { |
a79881a892c9
Importer (s/u-info) extensions: depth-evolution: corrected directory name Bezug_aktueller_GlW,
mschaefer
parents:
9636
diff
changeset
|
222 logError("Start year is missing"); |
a79881a892c9
Importer (s/u-info) extensions: depth-evolution: corrected directory name Bezug_aktueller_GlW,
mschaefer
parents:
9636
diff
changeset
|
223 this.headerParsingState = ParsingState.STOP; |
a79881a892c9
Importer (s/u-info) extensions: depth-evolution: corrected directory name Bezug_aktueller_GlW,
mschaefer
parents:
9636
diff
changeset
|
224 return false; |
a79881a892c9
Importer (s/u-info) extensions: depth-evolution: corrected directory name Bezug_aktueller_GlW,
mschaefer
parents:
9636
diff
changeset
|
225 } |
a79881a892c9
Importer (s/u-info) extensions: depth-evolution: corrected directory name Bezug_aktueller_GlW,
mschaefer
parents:
9636
diff
changeset
|
226 if (this.seriesHeader.getReference_year() <= this.seriesHeader.getStart_year()) { |
a79881a892c9
Importer (s/u-info) extensions: depth-evolution: corrected directory name Bezug_aktueller_GlW,
mschaefer
parents:
9636
diff
changeset
|
227 logError("Reference year not greater than start year"); |
a79881a892c9
Importer (s/u-info) extensions: depth-evolution: corrected directory name Bezug_aktueller_GlW,
mschaefer
parents:
9636
diff
changeset
|
228 this.headerParsingState = ParsingState.STOP; |
a79881a892c9
Importer (s/u-info) extensions: depth-evolution: corrected directory name Bezug_aktueller_GlW,
mschaefer
parents:
9636
diff
changeset
|
229 return false; |
a79881a892c9
Importer (s/u-info) extensions: depth-evolution: corrected directory name Bezug_aktueller_GlW,
mschaefer
parents:
9636
diff
changeset
|
230 } |
a79881a892c9
Importer (s/u-info) extensions: depth-evolution: corrected directory name Bezug_aktueller_GlW,
mschaefer
parents:
9636
diff
changeset
|
231 if (this.currSoundingYear <= this.oldSoundingYear) { |
a79881a892c9
Importer (s/u-info) extensions: depth-evolution: corrected directory name Bezug_aktueller_GlW,
mschaefer
parents:
9636
diff
changeset
|
232 logError("Current sounding year not greater than historical sounding year"); |
a79881a892c9
Importer (s/u-info) extensions: depth-evolution: corrected directory name Bezug_aktueller_GlW,
mschaefer
parents:
9636
diff
changeset
|
233 this.headerParsingState = ParsingState.STOP; |
a79881a892c9
Importer (s/u-info) extensions: depth-evolution: corrected directory name Bezug_aktueller_GlW,
mschaefer
parents:
9636
diff
changeset
|
234 return false; |
a79881a892c9
Importer (s/u-info) extensions: depth-evolution: corrected directory name Bezug_aktueller_GlW,
mschaefer
parents:
9636
diff
changeset
|
235 } |
a79881a892c9
Importer (s/u-info) extensions: depth-evolution: corrected directory name Bezug_aktueller_GlW,
mschaefer
parents:
9636
diff
changeset
|
236 if (this.currWspYear != this.seriesHeader.getReference_year()) { |
a79881a892c9
Importer (s/u-info) extensions: depth-evolution: corrected directory name Bezug_aktueller_GlW,
mschaefer
parents:
9636
diff
changeset
|
237 logError("Current waterlevel year differs from reference year"); |
a79881a892c9
Importer (s/u-info) extensions: depth-evolution: corrected directory name Bezug_aktueller_GlW,
mschaefer
parents:
9636
diff
changeset
|
238 this.headerParsingState = ParsingState.STOP; |
a79881a892c9
Importer (s/u-info) extensions: depth-evolution: corrected directory name Bezug_aktueller_GlW,
mschaefer
parents:
9636
diff
changeset
|
239 return false; |
a79881a892c9
Importer (s/u-info) extensions: depth-evolution: corrected directory name Bezug_aktueller_GlW,
mschaefer
parents:
9636
diff
changeset
|
240 } |
a79881a892c9
Importer (s/u-info) extensions: depth-evolution: corrected directory name Bezug_aktueller_GlW,
mschaefer
parents:
9636
diff
changeset
|
241 if (this.oldWspYear != this.seriesHeader.getStart_year()) { |
a79881a892c9
Importer (s/u-info) extensions: depth-evolution: corrected directory name Bezug_aktueller_GlW,
mschaefer
parents:
9636
diff
changeset
|
242 logError("Historical waterlevel year differs from start year"); |
a79881a892c9
Importer (s/u-info) extensions: depth-evolution: corrected directory name Bezug_aktueller_GlW,
mschaefer
parents:
9636
diff
changeset
|
243 this.headerParsingState = ParsingState.STOP; |
a79881a892c9
Importer (s/u-info) extensions: depth-evolution: corrected directory name Bezug_aktueller_GlW,
mschaefer
parents:
9636
diff
changeset
|
244 return false; |
a79881a892c9
Importer (s/u-info) extensions: depth-evolution: corrected directory name Bezug_aktueller_GlW,
mschaefer
parents:
9636
diff
changeset
|
245 } |
a79881a892c9
Importer (s/u-info) extensions: depth-evolution: corrected directory name Bezug_aktueller_GlW,
mschaefer
parents:
9636
diff
changeset
|
246 if (!this.metaPatternsMatched.contains(META_START_YEAR) || !this.metaPatternsMatched.contains(META_REFERENCE_YEAR) |
a79881a892c9
Importer (s/u-info) extensions: depth-evolution: corrected directory name Bezug_aktueller_GlW,
mschaefer
parents:
9636
diff
changeset
|
247 || !this.metaPatternsMatched.contains(META_CURR_SOUNDING) || !this.metaPatternsMatched.contains(META_OLD_SOUNDING) |
a79881a892c9
Importer (s/u-info) extensions: depth-evolution: corrected directory name Bezug_aktueller_GlW,
mschaefer
parents:
9636
diff
changeset
|
248 || !this.metaPatternsMatched.contains(META_CURR_WSP) || !this.metaPatternsMatched.contains(META_OLD_WSP)) { |
a79881a892c9
Importer (s/u-info) extensions: depth-evolution: corrected directory name Bezug_aktueller_GlW,
mschaefer
parents:
9636
diff
changeset
|
249 logError("One or more of the required meta infos are missing"); |
a79881a892c9
Importer (s/u-info) extensions: depth-evolution: corrected directory name Bezug_aktueller_GlW,
mschaefer
parents:
9636
diff
changeset
|
250 this.headerParsingState = ParsingState.STOP; |
a79881a892c9
Importer (s/u-info) extensions: depth-evolution: corrected directory name Bezug_aktueller_GlW,
mschaefer
parents:
9636
diff
changeset
|
251 } |
a79881a892c9
Importer (s/u-info) extensions: depth-evolution: corrected directory name Bezug_aktueller_GlW,
mschaefer
parents:
9636
diff
changeset
|
252 return true; |
a79881a892c9
Importer (s/u-info) extensions: depth-evolution: corrected directory name Bezug_aktueller_GlW,
mschaefer
parents:
9636
diff
changeset
|
253 } |
a79881a892c9
Importer (s/u-info) extensions: depth-evolution: corrected directory name Bezug_aktueller_GlW,
mschaefer
parents:
9636
diff
changeset
|
254 |
a79881a892c9
Importer (s/u-info) extensions: depth-evolution: corrected directory name Bezug_aktueller_GlW,
mschaefer
parents:
9636
diff
changeset
|
255 @Override |
8971
50416a0df385
Importer for the Schifffahrt (S-INFO) and Oekologie (U-INFO) files
mschaefer
parents:
diff
changeset
|
256 protected boolean handleMetaColumnTitles() { |
9657
a79881a892c9
Importer (s/u-info) extensions: depth-evolution: corrected directory name Bezug_aktueller_GlW,
mschaefer
parents:
9636
diff
changeset
|
257 if (!super.handleMetaColumnTitles()) |
a79881a892c9
Importer (s/u-info) extensions: depth-evolution: corrected directory name Bezug_aktueller_GlW,
mschaefer
parents:
9636
diff
changeset
|
258 return false; |
a79881a892c9
Importer (s/u-info) extensions: depth-evolution: corrected directory name Bezug_aktueller_GlW,
mschaefer
parents:
9636
diff
changeset
|
259 final Matcher tcm = COLUMN_TC_TITLE.matcher(this.columnTitles.get(1)); |
a79881a892c9
Importer (s/u-info) extensions: depth-evolution: corrected directory name Bezug_aktueller_GlW,
mschaefer
parents:
9636
diff
changeset
|
260 if (!tcm.matches()) { |
a79881a892c9
Importer (s/u-info) extensions: depth-evolution: corrected directory name Bezug_aktueller_GlW,
mschaefer
parents:
9636
diff
changeset
|
261 logLineError("Column 2: Invalid column title and/or unit"); |
a79881a892c9
Importer (s/u-info) extensions: depth-evolution: corrected directory name Bezug_aktueller_GlW,
mschaefer
parents:
9636
diff
changeset
|
262 this.headerParsingState = ParsingState.STOP; |
8971
50416a0df385
Importer for the Schifffahrt (S-INFO) and Oekologie (U-INFO) files
mschaefer
parents:
diff
changeset
|
263 return true; |
50416a0df385
Importer for the Schifffahrt (S-INFO) and Oekologie (U-INFO) files
mschaefer
parents:
diff
changeset
|
264 } |
9657
a79881a892c9
Importer (s/u-info) extensions: depth-evolution: corrected directory name Bezug_aktueller_GlW,
mschaefer
parents:
9636
diff
changeset
|
265 final Matcher cpym = COLUMN_CPY_TITLE.matcher(this.columnTitles.get(2)); |
a79881a892c9
Importer (s/u-info) extensions: depth-evolution: corrected directory name Bezug_aktueller_GlW,
mschaefer
parents:
9636
diff
changeset
|
266 if (!cpym.matches()) { |
a79881a892c9
Importer (s/u-info) extensions: depth-evolution: corrected directory name Bezug_aktueller_GlW,
mschaefer
parents:
9636
diff
changeset
|
267 logLineError("Column 3: Invalid column title and/or unit"); |
a79881a892c9
Importer (s/u-info) extensions: depth-evolution: corrected directory name Bezug_aktueller_GlW,
mschaefer
parents:
9636
diff
changeset
|
268 this.headerParsingState = ParsingState.STOP; |
a79881a892c9
Importer (s/u-info) extensions: depth-evolution: corrected directory name Bezug_aktueller_GlW,
mschaefer
parents:
9636
diff
changeset
|
269 } |
a79881a892c9
Importer (s/u-info) extensions: depth-evolution: corrected directory name Bezug_aktueller_GlW,
mschaefer
parents:
9636
diff
changeset
|
270 return true; |
8971
50416a0df385
Importer for the Schifffahrt (S-INFO) and Oekologie (U-INFO) files
mschaefer
parents:
diff
changeset
|
271 } |
50416a0df385
Importer for the Schifffahrt (S-INFO) and Oekologie (U-INFO) files
mschaefer
parents:
diff
changeset
|
272 |
50416a0df385
Importer for the Schifffahrt (S-INFO) and Oekologie (U-INFO) files
mschaefer
parents:
diff
changeset
|
273 @Override |
50416a0df385
Importer for the Schifffahrt (S-INFO) and Oekologie (U-INFO) files
mschaefer
parents:
diff
changeset
|
274 protected DepthEvolutionSeriesImport createSeriesImport(final String filename) { |
9032
1f63e9d3b0ec
New columns for bed_height, tkh and depth_evolution, a few syntactic corrections for Oracle
mschaefer
parents:
8988
diff
changeset
|
275 final DepthEvolutionSeriesImport series = new DepthEvolutionSeriesImport(filename); |
1f63e9d3b0ec
New columns for bed_height, tkh and depth_evolution, a few syntactic corrections for Oracle
mschaefer
parents:
8988
diff
changeset
|
276 series.setGroup(GroupDirectory.forDirName(this.importPath.getParentFile().getName()).getGroup()); |
1f63e9d3b0ec
New columns for bed_height, tkh and depth_evolution, a few syntactic corrections for Oracle
mschaefer
parents:
8988
diff
changeset
|
277 return series; |
8971
50416a0df385
Importer for the Schifffahrt (S-INFO) and Oekologie (U-INFO) files
mschaefer
parents:
diff
changeset
|
278 } |
50416a0df385
Importer for the Schifffahrt (S-INFO) and Oekologie (U-INFO) files
mschaefer
parents:
diff
changeset
|
279 |
50416a0df385
Importer for the Schifffahrt (S-INFO) and Oekologie (U-INFO) files
mschaefer
parents:
diff
changeset
|
280 @Override |
50416a0df385
Importer for the Schifffahrt (S-INFO) and Oekologie (U-INFO) files
mschaefer
parents:
diff
changeset
|
281 protected DepthEvolutionKmLineImport createKmLineImport(final Double km, final String[] values) { |
9657
a79881a892c9
Importer (s/u-info) extensions: depth-evolution: corrected directory name Bezug_aktueller_GlW,
mschaefer
parents:
9636
diff
changeset
|
282 final Number tc = parseDoubleCheckNull(values, 1); |
a79881a892c9
Importer (s/u-info) extensions: depth-evolution: corrected directory name Bezug_aktueller_GlW,
mschaefer
parents:
9636
diff
changeset
|
283 if ((tc == null) || Double.isNaN(tc.doubleValue())) { |
a79881a892c9
Importer (s/u-info) extensions: depth-evolution: corrected directory name Bezug_aktueller_GlW,
mschaefer
parents:
9636
diff
changeset
|
284 logLineWarning(INVALID_VALUE_ERROR_FORMAT, "total change"); |
8971
50416a0df385
Importer for the Schifffahrt (S-INFO) and Oekologie (U-INFO) files
mschaefer
parents:
diff
changeset
|
285 return null; |
50416a0df385
Importer for the Schifffahrt (S-INFO) and Oekologie (U-INFO) files
mschaefer
parents:
diff
changeset
|
286 } |
9657
a79881a892c9
Importer (s/u-info) extensions: depth-evolution: corrected directory name Bezug_aktueller_GlW,
mschaefer
parents:
9636
diff
changeset
|
287 final Number cpy = parseDoubleCheckNull(values, 2); |
a79881a892c9
Importer (s/u-info) extensions: depth-evolution: corrected directory name Bezug_aktueller_GlW,
mschaefer
parents:
9636
diff
changeset
|
288 if ((cpy == null) || Double.isNaN(cpy.doubleValue())) { |
a79881a892c9
Importer (s/u-info) extensions: depth-evolution: corrected directory name Bezug_aktueller_GlW,
mschaefer
parents:
9636
diff
changeset
|
289 logLineWarning(INVALID_VALUE_ERROR_FORMAT, "change per year"); |
8971
50416a0df385
Importer for the Schifffahrt (S-INFO) and Oekologie (U-INFO) files
mschaefer
parents:
diff
changeset
|
290 return null; |
50416a0df385
Importer for the Schifffahrt (S-INFO) and Oekologie (U-INFO) files
mschaefer
parents:
diff
changeset
|
291 } |
50416a0df385
Importer for the Schifffahrt (S-INFO) and Oekologie (U-INFO) files
mschaefer
parents:
diff
changeset
|
292 // cm to m |
9657
a79881a892c9
Importer (s/u-info) extensions: depth-evolution: corrected directory name Bezug_aktueller_GlW,
mschaefer
parents:
9636
diff
changeset
|
293 return new DepthEvolutionKmLineImport(km, tc.doubleValue() / 100.0, cpy.doubleValue() / 100.0); |
8971
50416a0df385
Importer for the Schifffahrt (S-INFO) and Oekologie (U-INFO) files
mschaefer
parents:
diff
changeset
|
294 } |
50416a0df385
Importer for the Schifffahrt (S-INFO) and Oekologie (U-INFO) files
mschaefer
parents:
diff
changeset
|
295 } |