annotate flys-backend/src/main/java/de/intevation/flys/importer/parsers/SedimentDensityParser.java @ 5505:1b036a409575

SedimentDensityParser: allow year to be null (in line with schema)
author Tom Gottfried <tom.gottfried@intevation.de>
date Thu, 28 Mar 2013 15:35:42 +0100
parents b3dd14fc13a6
children db6c7268b08e
rev   line source
2815
3febaed762b8 Added new parser (stub) to read MINFO sediment density files; prepared import process to handle those files.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
1 package de.intevation.flys.importer.parsers;
3febaed762b8 Added new parser (stub) to read MINFO sediment density files; prepared import process to handle those files.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
2
2817
8979f2294af9 Finished parsing MINFO specific sediment density.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2816
diff changeset
3 import java.io.File;
8979f2294af9 Finished parsing MINFO specific sediment density.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2816
diff changeset
4 import java.io.IOException;
8979f2294af9 Finished parsing MINFO specific sediment density.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2816
diff changeset
5
2816
70b4a31a3306 Implemented the method stubs of the parser for sediment density and made some db schema adaptions.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2815
diff changeset
6 import java.math.BigDecimal;
70b4a31a3306 Implemented the method stubs of the parser for sediment density and made some db schema adaptions.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2815
diff changeset
7
70b4a31a3306 Implemented the method stubs of the parser for sediment density and made some db schema adaptions.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2815
diff changeset
8 import java.text.NumberFormat;
70b4a31a3306 Implemented the method stubs of the parser for sediment density and made some db schema adaptions.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2815
diff changeset
9 import java.text.ParseException;
70b4a31a3306 Implemented the method stubs of the parser for sediment density and made some db schema adaptions.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2815
diff changeset
10
2815
3febaed762b8 Added new parser (stub) to read MINFO sediment density files; prepared import process to handle those files.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
11 import java.util.ArrayList;
4524
be9e28cff0c4 Parse and store year in sediment densities.
Raimund Renkert <rrenkert@intevation.de>
parents: 4193
diff changeset
12 import java.util.Calendar;
be9e28cff0c4 Parse and store year in sediment densities.
Raimund Renkert <rrenkert@intevation.de>
parents: 4193
diff changeset
13 import java.util.Date;
2815
3febaed762b8 Added new parser (stub) to read MINFO sediment density files; prepared import process to handle those files.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
14 import java.util.List;
2816
70b4a31a3306 Implemented the method stubs of the parser for sediment density and made some db schema adaptions.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2815
diff changeset
15 import java.util.regex.Matcher;
70b4a31a3306 Implemented the method stubs of the parser for sediment density and made some db schema adaptions.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2815
diff changeset
16 import java.util.regex.Pattern;
2815
3febaed762b8 Added new parser (stub) to read MINFO sediment density files; prepared import process to handle those files.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
17
3febaed762b8 Added new parser (stub) to read MINFO sediment density files; prepared import process to handle those files.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
18 import org.apache.log4j.Logger;
3febaed762b8 Added new parser (stub) to read MINFO sediment density files; prepared import process to handle those files.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
19
2816
70b4a31a3306 Implemented the method stubs of the parser for sediment density and made some db schema adaptions.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2815
diff changeset
20 import de.intevation.flys.importer.ImportDepth;
2815
3febaed762b8 Added new parser (stub) to read MINFO sediment density files; prepared import process to handle those files.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
21 import de.intevation.flys.importer.ImportSedimentDensity;
2816
70b4a31a3306 Implemented the method stubs of the parser for sediment density and made some db schema adaptions.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2815
diff changeset
22 import de.intevation.flys.importer.ImportSedimentDensityValue;
4524
be9e28cff0c4 Parse and store year in sediment densities.
Raimund Renkert <rrenkert@intevation.de>
parents: 4193
diff changeset
23 import de.intevation.flys.utils.DateGuesser;
2815
3febaed762b8 Added new parser (stub) to read MINFO sediment density files; prepared import process to handle those files.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
24
3febaed762b8 Added new parser (stub) to read MINFO sediment density files; prepared import process to handle those files.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
25
3febaed762b8 Added new parser (stub) to read MINFO sediment density files; prepared import process to handle those files.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
26 public class SedimentDensityParser extends LineParser {
3febaed762b8 Added new parser (stub) to read MINFO sediment density files; prepared import process to handle those files.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
27
3febaed762b8 Added new parser (stub) to read MINFO sediment density files; prepared import process to handle those files.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
28 private static final Logger log =
3febaed762b8 Added new parser (stub) to read MINFO sediment density files; prepared import process to handle those files.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
29 Logger.getLogger(SedimentDensityParser.class);
3febaed762b8 Added new parser (stub) to read MINFO sediment density files; prepared import process to handle those files.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
30
4524
be9e28cff0c4 Parse and store year in sediment densities.
Raimund Renkert <rrenkert@intevation.de>
parents: 4193
diff changeset
31 private int densitsyColumn = 1;
2815
3febaed762b8 Added new parser (stub) to read MINFO sediment density files; prepared import process to handle those files.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
32
2816
70b4a31a3306 Implemented the method stubs of the parser for sediment density and made some db schema adaptions.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2815
diff changeset
33 public static final NumberFormat nf = NumberFormat.getInstance(DEFAULT_LOCALE);
70b4a31a3306 Implemented the method stubs of the parser for sediment density and made some db schema adaptions.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2815
diff changeset
34
70b4a31a3306 Implemented the method stubs of the parser for sediment density and made some db schema adaptions.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2815
diff changeset
35
70b4a31a3306 Implemented the method stubs of the parser for sediment density and made some db schema adaptions.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2815
diff changeset
36 public static final Pattern META_DEPTH =
70b4a31a3306 Implemented the method stubs of the parser for sediment density and made some db schema adaptions.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2815
diff changeset
37 Pattern.compile("^Tiefe: (\\w++)-(\\w++)( (\\w++))?.*");
70b4a31a3306 Implemented the method stubs of the parser for sediment density and made some db schema adaptions.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2815
diff changeset
38
2815
3febaed762b8 Added new parser (stub) to read MINFO sediment density files; prepared import process to handle those files.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
39 protected List<ImportSedimentDensity> sedimentDensities;
3febaed762b8 Added new parser (stub) to read MINFO sediment density files; prepared import process to handle those files.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
40
3febaed762b8 Added new parser (stub) to read MINFO sediment density files; prepared import process to handle those files.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
41 protected ImportSedimentDensity current;
3febaed762b8 Added new parser (stub) to read MINFO sediment density files; prepared import process to handle those files.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
42
2817
8979f2294af9 Finished parsing MINFO specific sediment density.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2816
diff changeset
43 protected String currentDescription;
8979f2294af9 Finished parsing MINFO specific sediment density.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2816
diff changeset
44
2815
3febaed762b8 Added new parser (stub) to read MINFO sediment density files; prepared import process to handle those files.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
45
3febaed762b8 Added new parser (stub) to read MINFO sediment density files; prepared import process to handle those files.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
46 public SedimentDensityParser() {
3febaed762b8 Added new parser (stub) to read MINFO sediment density files; prepared import process to handle those files.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
47 sedimentDensities = new ArrayList<ImportSedimentDensity>();
3febaed762b8 Added new parser (stub) to read MINFO sediment density files; prepared import process to handle those files.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
48 }
3febaed762b8 Added new parser (stub) to read MINFO sediment density files; prepared import process to handle those files.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
49
3febaed762b8 Added new parser (stub) to read MINFO sediment density files; prepared import process to handle those files.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
50
3febaed762b8 Added new parser (stub) to read MINFO sediment density files; prepared import process to handle those files.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
51 @Override
2817
8979f2294af9 Finished parsing MINFO specific sediment density.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2816
diff changeset
52 public void parse(File file) throws IOException {
8979f2294af9 Finished parsing MINFO specific sediment density.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2816
diff changeset
53 currentDescription = file.getName();
8979f2294af9 Finished parsing MINFO specific sediment density.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2816
diff changeset
54
8979f2294af9 Finished parsing MINFO specific sediment density.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2816
diff changeset
55 super.parse(file);
8979f2294af9 Finished parsing MINFO specific sediment density.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2816
diff changeset
56 }
8979f2294af9 Finished parsing MINFO specific sediment density.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2816
diff changeset
57
8979f2294af9 Finished parsing MINFO specific sediment density.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2816
diff changeset
58
8979f2294af9 Finished parsing MINFO specific sediment density.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2816
diff changeset
59 @Override
2815
3febaed762b8 Added new parser (stub) to read MINFO sediment density files; prepared import process to handle those files.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
60 protected void reset() {
2817
8979f2294af9 Finished parsing MINFO specific sediment density.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2816
diff changeset
61 current = new ImportSedimentDensity(currentDescription);
2815
3febaed762b8 Added new parser (stub) to read MINFO sediment density files; prepared import process to handle those files.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
62 }
3febaed762b8 Added new parser (stub) to read MINFO sediment density files; prepared import process to handle those files.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
63
3febaed762b8 Added new parser (stub) to read MINFO sediment density files; prepared import process to handle those files.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
64
3febaed762b8 Added new parser (stub) to read MINFO sediment density files; prepared import process to handle those files.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
65 @Override
3febaed762b8 Added new parser (stub) to read MINFO sediment density files; prepared import process to handle those files.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
66 protected void finish() {
3febaed762b8 Added new parser (stub) to read MINFO sediment density files; prepared import process to handle those files.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
67 if (current != null) {
3febaed762b8 Added new parser (stub) to read MINFO sediment density files; prepared import process to handle those files.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
68 sedimentDensities.add(current);
3febaed762b8 Added new parser (stub) to read MINFO sediment density files; prepared import process to handle those files.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
69 }
3febaed762b8 Added new parser (stub) to read MINFO sediment density files; prepared import process to handle those files.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
70 }
3febaed762b8 Added new parser (stub) to read MINFO sediment density files; prepared import process to handle those files.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
71
3febaed762b8 Added new parser (stub) to read MINFO sediment density files; prepared import process to handle those files.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
72
3febaed762b8 Added new parser (stub) to read MINFO sediment density files; prepared import process to handle those files.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
73 @Override
4193
f63b39799d2d Adapted DB schema (added relation measurement_station); improved importer to read files from filesystem with measurement stations.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 3942
diff changeset
74 protected void handleLine(int lineNum, String line) {
2816
70b4a31a3306 Implemented the method stubs of the parser for sediment density and made some db schema adaptions.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2815
diff changeset
75 if (line.startsWith(START_META_CHAR)) {
70b4a31a3306 Implemented the method stubs of the parser for sediment density and made some db schema adaptions.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2815
diff changeset
76 handleMetaLine(stripMetaLine(line));
70b4a31a3306 Implemented the method stubs of the parser for sediment density and made some db schema adaptions.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2815
diff changeset
77 }
70b4a31a3306 Implemented the method stubs of the parser for sediment density and made some db schema adaptions.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2815
diff changeset
78 else {
70b4a31a3306 Implemented the method stubs of the parser for sediment density and made some db schema adaptions.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2815
diff changeset
79 handleDataLine(line);
70b4a31a3306 Implemented the method stubs of the parser for sediment density and made some db schema adaptions.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2815
diff changeset
80 }
70b4a31a3306 Implemented the method stubs of the parser for sediment density and made some db schema adaptions.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2815
diff changeset
81 }
70b4a31a3306 Implemented the method stubs of the parser for sediment density and made some db schema adaptions.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2815
diff changeset
82
70b4a31a3306 Implemented the method stubs of the parser for sediment density and made some db schema adaptions.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2815
diff changeset
83
70b4a31a3306 Implemented the method stubs of the parser for sediment density and made some db schema adaptions.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2815
diff changeset
84 protected void handleMetaLine(String line) {
5441
7c1dd9c3f6bd remove unit from sediment density and depths (always t/m3 respectively cm, otherwise a typo)
Tom Gottfried <tom.gottfried@intevation.de>
parents: 4550
diff changeset
85 if (handleMetaDepth(line)) {
2816
70b4a31a3306 Implemented the method stubs of the parser for sediment density and made some db schema adaptions.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2815
diff changeset
86 return;
70b4a31a3306 Implemented the method stubs of the parser for sediment density and made some db schema adaptions.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2815
diff changeset
87 }
4524
be9e28cff0c4 Parse and store year in sediment densities.
Raimund Renkert <rrenkert@intevation.de>
parents: 4193
diff changeset
88 else if (handleMetaColumns(line)) {
be9e28cff0c4 Parse and store year in sediment densities.
Raimund Renkert <rrenkert@intevation.de>
parents: 4193
diff changeset
89 return;
be9e28cff0c4 Parse and store year in sediment densities.
Raimund Renkert <rrenkert@intevation.de>
parents: 4193
diff changeset
90 }
2816
70b4a31a3306 Implemented the method stubs of the parser for sediment density and made some db schema adaptions.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2815
diff changeset
91 else {
70b4a31a3306 Implemented the method stubs of the parser for sediment density and made some db schema adaptions.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2815
diff changeset
92 log.warn("Unknown meta line: '" + line + "'");
70b4a31a3306 Implemented the method stubs of the parser for sediment density and made some db schema adaptions.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2815
diff changeset
93 }
70b4a31a3306 Implemented the method stubs of the parser for sediment density and made some db schema adaptions.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2815
diff changeset
94 }
70b4a31a3306 Implemented the method stubs of the parser for sediment density and made some db schema adaptions.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2815
diff changeset
95
70b4a31a3306 Implemented the method stubs of the parser for sediment density and made some db schema adaptions.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2815
diff changeset
96
4524
be9e28cff0c4 Parse and store year in sediment densities.
Raimund Renkert <rrenkert@intevation.de>
parents: 4193
diff changeset
97 private boolean handleMetaColumns(String line) {
be9e28cff0c4 Parse and store year in sediment densities.
Raimund Renkert <rrenkert@intevation.de>
parents: 4193
diff changeset
98 String[] columns = line.split(";");
be9e28cff0c4 Parse and store year in sediment densities.
Raimund Renkert <rrenkert@intevation.de>
parents: 4193
diff changeset
99 for (int i = 0; i < columns.length; i++) {
be9e28cff0c4 Parse and store year in sediment densities.
Raimund Renkert <rrenkert@intevation.de>
parents: 4193
diff changeset
100 if (columns[i].contains("Sedimentdichte")) {
be9e28cff0c4 Parse and store year in sediment densities.
Raimund Renkert <rrenkert@intevation.de>
parents: 4193
diff changeset
101 this.densitsyColumn = i;
be9e28cff0c4 Parse and store year in sediment densities.
Raimund Renkert <rrenkert@intevation.de>
parents: 4193
diff changeset
102 return true;
be9e28cff0c4 Parse and store year in sediment densities.
Raimund Renkert <rrenkert@intevation.de>
parents: 4193
diff changeset
103 }
be9e28cff0c4 Parse and store year in sediment densities.
Raimund Renkert <rrenkert@intevation.de>
parents: 4193
diff changeset
104 }
be9e28cff0c4 Parse and store year in sediment densities.
Raimund Renkert <rrenkert@intevation.de>
parents: 4193
diff changeset
105 return false;
be9e28cff0c4 Parse and store year in sediment densities.
Raimund Renkert <rrenkert@intevation.de>
parents: 4193
diff changeset
106 }
be9e28cff0c4 Parse and store year in sediment densities.
Raimund Renkert <rrenkert@intevation.de>
parents: 4193
diff changeset
107
be9e28cff0c4 Parse and store year in sediment densities.
Raimund Renkert <rrenkert@intevation.de>
parents: 4193
diff changeset
108
2816
70b4a31a3306 Implemented the method stubs of the parser for sediment density and made some db schema adaptions.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2815
diff changeset
109 protected boolean handleMetaDepth(String line) {
70b4a31a3306 Implemented the method stubs of the parser for sediment density and made some db schema adaptions.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2815
diff changeset
110 Matcher m = META_DEPTH.matcher(line);
70b4a31a3306 Implemented the method stubs of the parser for sediment density and made some db schema adaptions.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2815
diff changeset
111
70b4a31a3306 Implemented the method stubs of the parser for sediment density and made some db schema adaptions.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2815
diff changeset
112 if (m.matches()) {
70b4a31a3306 Implemented the method stubs of the parser for sediment density and made some db schema adaptions.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2815
diff changeset
113 String lo = m.group(1);
70b4a31a3306 Implemented the method stubs of the parser for sediment density and made some db schema adaptions.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2815
diff changeset
114 String up = m.group(2);
3942
43aa1ac8614b Removed trailing whitespace.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 3940
diff changeset
115
5441
7c1dd9c3f6bd remove unit from sediment density and depths (always t/m3 respectively cm, otherwise a typo)
Tom Gottfried <tom.gottfried@intevation.de>
parents: 4550
diff changeset
116 log.info("Found sediment density depth: " + lo + " - " + up + " cm");
2816
70b4a31a3306 Implemented the method stubs of the parser for sediment density and made some db schema adaptions.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2815
diff changeset
117
70b4a31a3306 Implemented the method stubs of the parser for sediment density and made some db schema adaptions.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2815
diff changeset
118 try {
70b4a31a3306 Implemented the method stubs of the parser for sediment density and made some db schema adaptions.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2815
diff changeset
119 ImportDepth depth = new ImportDepth(
70b4a31a3306 Implemented the method stubs of the parser for sediment density and made some db schema adaptions.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2815
diff changeset
120 new BigDecimal(nf.parse(lo).doubleValue()),
5441
7c1dd9c3f6bd remove unit from sediment density and depths (always t/m3 respectively cm, otherwise a typo)
Tom Gottfried <tom.gottfried@intevation.de>
parents: 4550
diff changeset
121 new BigDecimal(nf.parse(up).doubleValue())
2816
70b4a31a3306 Implemented the method stubs of the parser for sediment density and made some db schema adaptions.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2815
diff changeset
122 );
70b4a31a3306 Implemented the method stubs of the parser for sediment density and made some db schema adaptions.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2815
diff changeset
123
70b4a31a3306 Implemented the method stubs of the parser for sediment density and made some db schema adaptions.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2815
diff changeset
124 current.setDepth(depth);
70b4a31a3306 Implemented the method stubs of the parser for sediment density and made some db schema adaptions.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2815
diff changeset
125
70b4a31a3306 Implemented the method stubs of the parser for sediment density and made some db schema adaptions.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2815
diff changeset
126 return true;
70b4a31a3306 Implemented the method stubs of the parser for sediment density and made some db schema adaptions.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2815
diff changeset
127 }
70b4a31a3306 Implemented the method stubs of the parser for sediment density and made some db schema adaptions.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2815
diff changeset
128 catch (ParseException pe) {
5490
b3dd14fc13a6 Parsers: do not call warnings error
Tom Gottfried <tom.gottfried@intevation.de>
parents: 5441
diff changeset
129 log.warn("Unparseable numbers in: '" + line + "'");
2816
70b4a31a3306 Implemented the method stubs of the parser for sediment density and made some db schema adaptions.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2815
diff changeset
130 }
70b4a31a3306 Implemented the method stubs of the parser for sediment density and made some db schema adaptions.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2815
diff changeset
131 }
3940
aed7aba93718 Improved logging and stabilized minfo import.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2835
diff changeset
132 else {
aed7aba93718 Improved logging and stabilized minfo import.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2835
diff changeset
133 log.debug("Meta line doesn't contain depth information: " + line);
aed7aba93718 Improved logging and stabilized minfo import.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2835
diff changeset
134 }
2816
70b4a31a3306 Implemented the method stubs of the parser for sediment density and made some db schema adaptions.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2815
diff changeset
135
70b4a31a3306 Implemented the method stubs of the parser for sediment density and made some db schema adaptions.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2815
diff changeset
136 return false;
70b4a31a3306 Implemented the method stubs of the parser for sediment density and made some db schema adaptions.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2815
diff changeset
137 }
70b4a31a3306 Implemented the method stubs of the parser for sediment density and made some db schema adaptions.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2815
diff changeset
138
70b4a31a3306 Implemented the method stubs of the parser for sediment density and made some db schema adaptions.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2815
diff changeset
139
70b4a31a3306 Implemented the method stubs of the parser for sediment density and made some db schema adaptions.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2815
diff changeset
140 protected void handleDataLine(String line) {
70b4a31a3306 Implemented the method stubs of the parser for sediment density and made some db schema adaptions.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2815
diff changeset
141 String[] vals = line.split(SEPERATOR_CHAR);
70b4a31a3306 Implemented the method stubs of the parser for sediment density and made some db schema adaptions.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2815
diff changeset
142
70b4a31a3306 Implemented the method stubs of the parser for sediment density and made some db schema adaptions.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2815
diff changeset
143 if (vals == null || vals.length < 3) {
70b4a31a3306 Implemented the method stubs of the parser for sediment density and made some db schema adaptions.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2815
diff changeset
144 log.warn("skip invalid data line: '" + line + "'");
70b4a31a3306 Implemented the method stubs of the parser for sediment density and made some db schema adaptions.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2815
diff changeset
145 return;
70b4a31a3306 Implemented the method stubs of the parser for sediment density and made some db schema adaptions.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2815
diff changeset
146 }
70b4a31a3306 Implemented the method stubs of the parser for sediment density and made some db schema adaptions.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2815
diff changeset
147
4524
be9e28cff0c4 Parse and store year in sediment densities.
Raimund Renkert <rrenkert@intevation.de>
parents: 4193
diff changeset
148 BigDecimal km;
be9e28cff0c4 Parse and store year in sediment densities.
Raimund Renkert <rrenkert@intevation.de>
parents: 4193
diff changeset
149 BigDecimal density;
2816
70b4a31a3306 Implemented the method stubs of the parser for sediment density and made some db schema adaptions.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2815
diff changeset
150 try {
4524
be9e28cff0c4 Parse and store year in sediment densities.
Raimund Renkert <rrenkert@intevation.de>
parents: 4193
diff changeset
151 km = new BigDecimal(nf.parse(vals[0]).doubleValue());
be9e28cff0c4 Parse and store year in sediment densities.
Raimund Renkert <rrenkert@intevation.de>
parents: 4193
diff changeset
152 density = new BigDecimal(nf.parse(vals[this.densitsyColumn]).doubleValue());
2816
70b4a31a3306 Implemented the method stubs of the parser for sediment density and made some db schema adaptions.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2815
diff changeset
153
70b4a31a3306 Implemented the method stubs of the parser for sediment density and made some db schema adaptions.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2815
diff changeset
154 }
70b4a31a3306 Implemented the method stubs of the parser for sediment density and made some db schema adaptions.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2815
diff changeset
155 catch (ParseException pe) {
5490
b3dd14fc13a6 Parsers: do not call warnings error
Tom Gottfried <tom.gottfried@intevation.de>
parents: 5441
diff changeset
156 log.warn("Unparseable numbers in '" + line + "'");
4524
be9e28cff0c4 Parse and store year in sediment densities.
Raimund Renkert <rrenkert@intevation.de>
parents: 4193
diff changeset
157 return;
2816
70b4a31a3306 Implemented the method stubs of the parser for sediment density and made some db schema adaptions.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2815
diff changeset
158 }
4524
be9e28cff0c4 Parse and store year in sediment densities.
Raimund Renkert <rrenkert@intevation.de>
parents: 4193
diff changeset
159
be9e28cff0c4 Parse and store year in sediment densities.
Raimund Renkert <rrenkert@intevation.de>
parents: 4193
diff changeset
160 BigDecimal year = null;
be9e28cff0c4 Parse and store year in sediment densities.
Raimund Renkert <rrenkert@intevation.de>
parents: 4193
diff changeset
161 try {
be9e28cff0c4 Parse and store year in sediment densities.
Raimund Renkert <rrenkert@intevation.de>
parents: 4193
diff changeset
162 year =
be9e28cff0c4 Parse and store year in sediment densities.
Raimund Renkert <rrenkert@intevation.de>
parents: 4193
diff changeset
163 new BigDecimal(nf.parse(vals[vals.length - 1]).doubleValue());
be9e28cff0c4 Parse and store year in sediment densities.
Raimund Renkert <rrenkert@intevation.de>
parents: 4193
diff changeset
164 }
be9e28cff0c4 Parse and store year in sediment densities.
Raimund Renkert <rrenkert@intevation.de>
parents: 4193
diff changeset
165 catch(ParseException pe) {
be9e28cff0c4 Parse and store year in sediment densities.
Raimund Renkert <rrenkert@intevation.de>
parents: 4193
diff changeset
166 try {
be9e28cff0c4 Parse and store year in sediment densities.
Raimund Renkert <rrenkert@intevation.de>
parents: 4193
diff changeset
167 Date d = DateGuesser.guessDate(vals[vals.length - 1]);
be9e28cff0c4 Parse and store year in sediment densities.
Raimund Renkert <rrenkert@intevation.de>
parents: 4193
diff changeset
168 Calendar c = Calendar.getInstance();
be9e28cff0c4 Parse and store year in sediment densities.
Raimund Renkert <rrenkert@intevation.de>
parents: 4193
diff changeset
169 c.setTime(d);
be9e28cff0c4 Parse and store year in sediment densities.
Raimund Renkert <rrenkert@intevation.de>
parents: 4193
diff changeset
170 year = new BigDecimal(c.get(Calendar.YEAR));
be9e28cff0c4 Parse and store year in sediment densities.
Raimund Renkert <rrenkert@intevation.de>
parents: 4193
diff changeset
171 }
be9e28cff0c4 Parse and store year in sediment densities.
Raimund Renkert <rrenkert@intevation.de>
parents: 4193
diff changeset
172 catch (IllegalArgumentException iae) {
5490
b3dd14fc13a6 Parsers: do not call warnings error
Tom Gottfried <tom.gottfried@intevation.de>
parents: 5441
diff changeset
173 log.warn("Could not parse date in '" + line + "'");
4524
be9e28cff0c4 Parse and store year in sediment densities.
Raimund Renkert <rrenkert@intevation.de>
parents: 4193
diff changeset
174 }
be9e28cff0c4 Parse and store year in sediment densities.
Raimund Renkert <rrenkert@intevation.de>
parents: 4193
diff changeset
175 }
be9e28cff0c4 Parse and store year in sediment densities.
Raimund Renkert <rrenkert@intevation.de>
parents: 4193
diff changeset
176
be9e28cff0c4 Parse and store year in sediment densities.
Raimund Renkert <rrenkert@intevation.de>
parents: 4193
diff changeset
177 current.addValue(new ImportSedimentDensityValue(
be9e28cff0c4 Parse and store year in sediment densities.
Raimund Renkert <rrenkert@intevation.de>
parents: 4193
diff changeset
178 km,
be9e28cff0c4 Parse and store year in sediment densities.
Raimund Renkert <rrenkert@intevation.de>
parents: 4193
diff changeset
179 density,
be9e28cff0c4 Parse and store year in sediment densities.
Raimund Renkert <rrenkert@intevation.de>
parents: 4193
diff changeset
180 year,
be9e28cff0c4 Parse and store year in sediment densities.
Raimund Renkert <rrenkert@intevation.de>
parents: 4193
diff changeset
181 vals[vals.length - 1])
be9e28cff0c4 Parse and store year in sediment densities.
Raimund Renkert <rrenkert@intevation.de>
parents: 4193
diff changeset
182 );
2815
3febaed762b8 Added new parser (stub) to read MINFO sediment density files; prepared import process to handle those files.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
183 }
3febaed762b8 Added new parser (stub) to read MINFO sediment density files; prepared import process to handle those files.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
184
3febaed762b8 Added new parser (stub) to read MINFO sediment density files; prepared import process to handle those files.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
185
3febaed762b8 Added new parser (stub) to read MINFO sediment density files; prepared import process to handle those files.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
186 public List<ImportSedimentDensity> getSedimentDensities() {
3febaed762b8 Added new parser (stub) to read MINFO sediment density files; prepared import process to handle those files.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
187 return sedimentDensities;
3febaed762b8 Added new parser (stub) to read MINFO sediment density files; prepared import process to handle those files.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
188 }
3febaed762b8 Added new parser (stub) to read MINFO sediment density files; prepared import process to handle those files.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
189 }
3febaed762b8 Added new parser (stub) to read MINFO sediment density files; prepared import process to handle those files.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
190 // vim:set ts=4 sw=4 si et sta sts=4 fenc=utf8 :

http://dive4elements.wald.intevation.org