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
ae76f618d990 Checks added for missing import directory
mschaefer
parents: 8971
diff changeset
124 if (importDir.exists())
ae76f618d990 Checks added for missing import directory
mschaefer
parents: 8971
diff changeset
125 for (final File file : listFiles(importDir, ".csv"))
ae76f618d990 Checks added for missing import directory
mschaefer
parents: 8971
diff changeset
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 }

http://dive4elements.wald.intevation.org