comparison backend/src/main/java/org/dive4elements/river/importer/parsers/BundesWasserStrassenParser.java @ 7730:e1b831fe435a slt-simplify-cross-sections

Merged default into slt-simplify-cross-sections branch and updated package and class names.
author Tom Gottfried <tom@intevation.de>
date Mon, 20 Jan 2014 14:04:20 +0100
parents 4c3ccf2b0304
children 9d2e69f971f5
comparison
equal deleted inserted replaced
5084:ca45dd039b54 7730:e1b831fe435a
1 /* Copyright (C) 2011, 2012, 2013 by Bundesanstalt für Gewässerkunde
2 * Software engineering by Intevation GmbH
3 *
4 * This file is Free Software under the GNU AGPL (>=v3)
5 * and comes with ABSOLUTELY NO WARRANTY! Check out the
6 * documentation coming with Dive4Elements River for details.
7 */
8
9 package org.dive4elements.river.importer.parsers;
10
11 import java.util.HashMap;
12
13 import org.apache.log4j.Logger;
14
15 /** Parse CSV file that contains official numbers for rivers. */
16 public class BundesWasserStrassenParser extends LineParser {
17
18 /** Private logger. */
19 private static final Logger logger =
20 Logger.getLogger(BundesWasserStrassenParser.class);
21
22 /** Map from rivernames to Official numbers. */
23 private HashMap<String,Long> numberMap;
24
25
26 public BundesWasserStrassenParser() {
27 numberMap = new HashMap<String,Long>();
28 }
29
30
31 /** No need to reset. */
32 @Override
33 protected void reset() {
34 }
35
36
37 /** No action needed on eof. */
38 @Override
39 protected void finish() {
40 }
41
42
43 /** Handle a line of the bwastr-id file. */
44 @Override
45 protected void handleLine(int lineNum, String line) {
46 String[] vals = line.split(",");
47 // Try both "," and ";" as separator.
48 if (vals.length != 2) {
49 vals = line.split(";");
50 if (vals.length != 2) {
51 logger.warn("Invalid bwastr-id line:\n" + line);
52 return;
53 }
54 }
55 try {
56 String name = unwrap(vals[0].toLowerCase());
57 String numberStr = unwrap(vals[1]);
58 Long number = Long.valueOf(numberStr);
59 numberMap.put(name, number);
60 }
61 catch (NumberFormatException e) {
62 logger.warn("Invalid number in bwastr-id line:\n" + line);
63 }
64 }
65
66
67 /** Get river -&gt; official number mapping. */
68 public HashMap<String,Long> getMap() {
69 return numberMap;
70 }
71
72
73 /** Remove leading and trailing quotes. */
74 protected String unwrap(String input) {
75 if (input.startsWith("\"")) {
76 input = input.substring(1);
77 }
78 if (input.endsWith("\"")) {
79 input = input.substring(0, input.length() - 1);
80 }
81 return input;
82 }
83 }
84 // vim:set ts=4 sw=4 si et sta sts=4 fenc=utf8 :

http://dive4elements.wald.intevation.org