annotate flys-backend/src/main/java/de/intevation/flys/importer/parsers/SedimentDensityParser.java @ 4524:be9e28cff0c4

Parse and store year in sediment densities. * Year is parsed ('guessed') from description column in .csv file.
author Raimund Renkert <rrenkert@intevation.de>
date Wed, 14 Nov 2012 17:24:55 +0100
parents f63b39799d2d
children 3694d8f48e16
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
4524
be9e28cff0c4 Parse and store year in sediment densities.
Raimund Renkert <rrenkert@intevation.de>
parents: 4193
diff changeset
8 import java.text.DateFormat;
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
9 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
10 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
11
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
12 import java.util.ArrayList;
4524
be9e28cff0c4 Parse and store year in sediment densities.
Raimund Renkert <rrenkert@intevation.de>
parents: 4193
diff changeset
13 import java.util.Calendar;
be9e28cff0c4 Parse and store year in sediment densities.
Raimund Renkert <rrenkert@intevation.de>
parents: 4193
diff changeset
14 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
15 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
16 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
17 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
18
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 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
20
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
21 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
22 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
23 import de.intevation.flys.importer.ImportSedimentDensityValue;
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
24 import de.intevation.flys.importer.ImportUnit;
4524
be9e28cff0c4 Parse and store year in sediment densities.
Raimund Renkert <rrenkert@intevation.de>
parents: 4193
diff changeset
25 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
26
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 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
29
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 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
31 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
32
4524
be9e28cff0c4 Parse and store year in sediment densities.
Raimund Renkert <rrenkert@intevation.de>
parents: 4193
diff changeset
33 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
34
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
35 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
36
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
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 public static final Pattern META_UNIT =
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
39 Pattern.compile("^Einheit: \\[(.*)\\].*");
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
40
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
41 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
42 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
43
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
44 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
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 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
47
2817
8979f2294af9 Finished parsing MINFO specific sediment density.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2816
diff changeset
48 protected String currentDescription;
8979f2294af9 Finished parsing MINFO specific sediment density.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2816
diff changeset
49
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
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 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
52 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
53 }
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
54
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
55
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
56 @Override
2817
8979f2294af9 Finished parsing MINFO specific sediment density.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2816
diff changeset
57 public void parse(File file) throws IOException {
8979f2294af9 Finished parsing MINFO specific sediment density.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2816
diff changeset
58 currentDescription = file.getName();
8979f2294af9 Finished parsing MINFO specific sediment density.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2816
diff changeset
59
8979f2294af9 Finished parsing MINFO specific sediment density.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2816
diff changeset
60 super.parse(file);
8979f2294af9 Finished parsing MINFO specific sediment density.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2816
diff changeset
61 }
8979f2294af9 Finished parsing MINFO specific sediment density.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2816
diff changeset
62
8979f2294af9 Finished parsing MINFO specific sediment density.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2816
diff changeset
63
8979f2294af9 Finished parsing MINFO specific sediment density.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2816
diff changeset
64 @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
65 protected void reset() {
2817
8979f2294af9 Finished parsing MINFO specific sediment density.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2816
diff changeset
66 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
67 }
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
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 @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
71 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
72 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
73 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
74 }
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
75 }
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
76
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
77
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
78 @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
79 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
80 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
81 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
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 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
84 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
85 }
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 }
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
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
88
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
89 protected void handleMetaLine(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
90 if (handleMetaUnit(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
91 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
92 }
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 else if (handleMetaDepth(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
94 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
95 }
4524
be9e28cff0c4 Parse and store year in sediment densities.
Raimund Renkert <rrenkert@intevation.de>
parents: 4193
diff changeset
96 else if (handleMetaColumns(line)) {
be9e28cff0c4 Parse and store year in sediment densities.
Raimund Renkert <rrenkert@intevation.de>
parents: 4193
diff changeset
97 return;
be9e28cff0c4 Parse and store year in sediment densities.
Raimund Renkert <rrenkert@intevation.de>
parents: 4193
diff changeset
98 }
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
99 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
100 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
101 }
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
102 }
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
103
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
104
4524
be9e28cff0c4 Parse and store year in sediment densities.
Raimund Renkert <rrenkert@intevation.de>
parents: 4193
diff changeset
105 private boolean handleMetaColumns(String line) {
be9e28cff0c4 Parse and store year in sediment densities.
Raimund Renkert <rrenkert@intevation.de>
parents: 4193
diff changeset
106 String[] columns = line.split(";");
be9e28cff0c4 Parse and store year in sediment densities.
Raimund Renkert <rrenkert@intevation.de>
parents: 4193
diff changeset
107 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
108 if (columns[i].contains("Sedimentdichte")) {
be9e28cff0c4 Parse and store year in sediment densities.
Raimund Renkert <rrenkert@intevation.de>
parents: 4193
diff changeset
109 this.densitsyColumn = i;
be9e28cff0c4 Parse and store year in sediment densities.
Raimund Renkert <rrenkert@intevation.de>
parents: 4193
diff changeset
110 return true;
be9e28cff0c4 Parse and store year in sediment densities.
Raimund Renkert <rrenkert@intevation.de>
parents: 4193
diff changeset
111 }
be9e28cff0c4 Parse and store year in sediment densities.
Raimund Renkert <rrenkert@intevation.de>
parents: 4193
diff changeset
112 }
be9e28cff0c4 Parse and store year in sediment densities.
Raimund Renkert <rrenkert@intevation.de>
parents: 4193
diff changeset
113 return false;
be9e28cff0c4 Parse and store year in sediment densities.
Raimund Renkert <rrenkert@intevation.de>
parents: 4193
diff changeset
114 }
be9e28cff0c4 Parse and store year in sediment densities.
Raimund Renkert <rrenkert@intevation.de>
parents: 4193
diff changeset
115
be9e28cff0c4 Parse and store year in sediment densities.
Raimund Renkert <rrenkert@intevation.de>
parents: 4193
diff changeset
116
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 protected boolean handleMetaUnit(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
118 Matcher m = META_UNIT.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
119
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 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
121 String unit = 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
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 current.setUnit(new ImportUnit(unit));
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
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 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
126 }
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 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
129 }
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
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
132 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
133 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
134
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 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
136 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
137 String up = m.group(2);
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 String unit = m.group(4);
3942
43aa1ac8614b Removed trailing whitespace.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 3940
diff changeset
139
3940
aed7aba93718 Improved logging and stabilized minfo import.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2835
diff changeset
140 log.info("Found sediment density depth: " + lo + " - " + up + " " + unit);
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
141
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 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
143 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
144 new BigDecimal(nf.parse(lo).doubleValue()),
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 new BigDecimal(nf.parse(up).doubleValue()),
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 new ImportUnit(unit)
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 );
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
148
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
149 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
150
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
151 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
152 }
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 catch (ParseException pe) {
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 log.warn("Error while parsing numbers in: '" + 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
155 }
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
156 }
3940
aed7aba93718 Improved logging and stabilized minfo import.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2835
diff changeset
157 else {
aed7aba93718 Improved logging and stabilized minfo import.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2835
diff changeset
158 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
159 }
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
160
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
161 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
162 }
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
163
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
164
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
165 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
166 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
167
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
168 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
169 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
170 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
171 }
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
172
4524
be9e28cff0c4 Parse and store year in sediment densities.
Raimund Renkert <rrenkert@intevation.de>
parents: 4193
diff changeset
173 BigDecimal km;
be9e28cff0c4 Parse and store year in sediment densities.
Raimund Renkert <rrenkert@intevation.de>
parents: 4193
diff changeset
174 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
175 try {
4524
be9e28cff0c4 Parse and store year in sediment densities.
Raimund Renkert <rrenkert@intevation.de>
parents: 4193
diff changeset
176 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
177 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
178
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
179 }
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
180 catch (ParseException pe) {
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
181 log.warn("Error while parsing numbers in '" + line + "'");
4524
be9e28cff0c4 Parse and store year in sediment densities.
Raimund Renkert <rrenkert@intevation.de>
parents: 4193
diff changeset
182 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
183 }
4524
be9e28cff0c4 Parse and store year in sediment densities.
Raimund Renkert <rrenkert@intevation.de>
parents: 4193
diff changeset
184
be9e28cff0c4 Parse and store year in sediment densities.
Raimund Renkert <rrenkert@intevation.de>
parents: 4193
diff changeset
185 BigDecimal year = null;
be9e28cff0c4 Parse and store year in sediment densities.
Raimund Renkert <rrenkert@intevation.de>
parents: 4193
diff changeset
186 try {
be9e28cff0c4 Parse and store year in sediment densities.
Raimund Renkert <rrenkert@intevation.de>
parents: 4193
diff changeset
187 year =
be9e28cff0c4 Parse and store year in sediment densities.
Raimund Renkert <rrenkert@intevation.de>
parents: 4193
diff changeset
188 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
189 }
be9e28cff0c4 Parse and store year in sediment densities.
Raimund Renkert <rrenkert@intevation.de>
parents: 4193
diff changeset
190 catch(ParseException pe) {
be9e28cff0c4 Parse and store year in sediment densities.
Raimund Renkert <rrenkert@intevation.de>
parents: 4193
diff changeset
191 try {
be9e28cff0c4 Parse and store year in sediment densities.
Raimund Renkert <rrenkert@intevation.de>
parents: 4193
diff changeset
192 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
193 Calendar c = Calendar.getInstance();
be9e28cff0c4 Parse and store year in sediment densities.
Raimund Renkert <rrenkert@intevation.de>
parents: 4193
diff changeset
194 c.setTime(d);
be9e28cff0c4 Parse and store year in sediment densities.
Raimund Renkert <rrenkert@intevation.de>
parents: 4193
diff changeset
195 year = new BigDecimal(c.get(Calendar.YEAR));
be9e28cff0c4 Parse and store year in sediment densities.
Raimund Renkert <rrenkert@intevation.de>
parents: 4193
diff changeset
196 }
be9e28cff0c4 Parse and store year in sediment densities.
Raimund Renkert <rrenkert@intevation.de>
parents: 4193
diff changeset
197 catch (IllegalArgumentException iae) {
be9e28cff0c4 Parse and store year in sediment densities.
Raimund Renkert <rrenkert@intevation.de>
parents: 4193
diff changeset
198 log.warn("Error while parsing date in '" + line + "'");
be9e28cff0c4 Parse and store year in sediment densities.
Raimund Renkert <rrenkert@intevation.de>
parents: 4193
diff changeset
199 return;
be9e28cff0c4 Parse and store year in sediment densities.
Raimund Renkert <rrenkert@intevation.de>
parents: 4193
diff changeset
200 }
be9e28cff0c4 Parse and store year in sediment densities.
Raimund Renkert <rrenkert@intevation.de>
parents: 4193
diff changeset
201 }
be9e28cff0c4 Parse and store year in sediment densities.
Raimund Renkert <rrenkert@intevation.de>
parents: 4193
diff changeset
202
be9e28cff0c4 Parse and store year in sediment densities.
Raimund Renkert <rrenkert@intevation.de>
parents: 4193
diff changeset
203 current.addValue(new ImportSedimentDensityValue(
be9e28cff0c4 Parse and store year in sediment densities.
Raimund Renkert <rrenkert@intevation.de>
parents: 4193
diff changeset
204 km,
be9e28cff0c4 Parse and store year in sediment densities.
Raimund Renkert <rrenkert@intevation.de>
parents: 4193
diff changeset
205 density,
be9e28cff0c4 Parse and store year in sediment densities.
Raimund Renkert <rrenkert@intevation.de>
parents: 4193
diff changeset
206 year,
be9e28cff0c4 Parse and store year in sediment densities.
Raimund Renkert <rrenkert@intevation.de>
parents: 4193
diff changeset
207 vals[vals.length - 1])
be9e28cff0c4 Parse and store year in sediment densities.
Raimund Renkert <rrenkert@intevation.de>
parents: 4193
diff changeset
208 );
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
209 }
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
210
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
211
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
212 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
213 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
214 }
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
215 }
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
216 // vim:set ts=4 sw=4 si et sta sts=4 fenc=utf8 :

http://dive4elements.wald.intevation.org