comparison flys-backend/src/main/java/de/intevation/flys/importer/parsers/BundesWasserStrassenParser.java @ 5019:c872249ec9a9

Added BundesWasserStrassenParser.
author Felix Wolfsteller <felix.wolfsteller@intevation.de>
date Tue, 19 Feb 2013 12:01:49 +0100
parents
children cf50783542a1
comparison
equal deleted inserted replaced
5018:e939098ee272 5019:c872249ec9a9
1 package de.intevation.flys.importer.parsers;
2
3 import java.math.BigDecimal;
4
5 import java.text.NumberFormat;
6 import java.text.ParseException;
7
8 import java.util.ArrayList;
9 import java.util.HashMap;
10 import java.util.List;
11 import java.util.regex.Matcher;
12 import java.util.regex.Pattern;
13
14 import org.apache.log4j.Logger;
15
16 import de.intevation.flys.importer.ImportMorphWidth;
17 import de.intevation.flys.importer.ImportMorphWidthValue;
18 import de.intevation.flys.importer.ImportUnit;
19
20 /** Parse CSV file that contains official numbers for rivers. */
21 public class BundesWasserStrassenParser extends LineParser {
22
23 /** Private logger. */
24 private static final Logger logger =
25 Logger.getLogger(BundesWasserStrassenParser.class);
26
27 /** Map from rivernames to Official numbers. */
28 private HashMap<String,Long> numberMap;
29
30
31 public BundesWasserStrassenParser() {
32 numberMap = new HashMap<String,Long>();
33 }
34
35
36 /** No need to reset. */
37 @Override
38 protected void reset() {
39 }
40
41
42 /** No action needed on eof. */
43 @Override
44 protected void finish() {
45 }
46
47
48 /** Handle a line of the bwastr-id file. */
49 @Override
50 protected void handleLine(int lineNum, String line) {
51 String[] vals = line.split(",");
52 if (vals.length != 2) {
53 logger.warn("Invalid bwastr-id line:\n" + line);
54 return;
55 }
56 try{
57 String name = unwrap(vals[0].toLowerCase());
58 String numberStr = unwrap(vals[1]);
59 Long number = Long.valueOf(numberStr);
60 numberMap.put(name, number);
61 }
62 catch (NumberFormatException e) {
63 logger.warn("Invalid number in bwastr-id line:\n" + line);
64 }
65 }
66
67
68 /** Get river->official number mapping. */
69 public HashMap<String,Long> getMap() {
70 return numberMap;
71 }
72
73
74 /** Remove leading and trailing quotes. */
75 protected String unwrap(String input) {
76 if (input.startsWith("\"")) {
77 input = input.substring(1);
78 }
79 if (input.endsWith("\"")) {
80 input = input.substring(0, input.length() - 1);
81 }
82 return input;
83 }
84 }
85 // vim:set ts=4 sw=4 si et sta sts=4 fenc=utf8 :

http://dive4elements.wald.intevation.org