comparison backend/src/main/java/org/dive4elements/river/importer/sinfo/parsers/BedMobilityParser.java @ 8971:50416a0df385

Importer for the Schifffahrt (S-INFO) and Oekologie (U-INFO) files
author mschaefer
date Tue, 03 Apr 2018 10:18:30 +0200
parents
children ae76f618d990
comparison
equal deleted inserted replaced
8970:da5dc7446652 8971:50416a0df385
1 /* Copyright (C) 2017 by Bundesanstalt für Gewässerkunde
2 * Software engineering by
3 * Björnsen Beratende Ingenieure GmbH
4 * Dr. Schumacher Ingenieurbüro für Wasser und Umwelt
5 *
6 * This file is Free Software under the GNU AGPL (>=v3)
7 * and comes with ABSOLUTELY NO WARRANTY! Check out the
8 * documentation coming with Dive4Elements River for details.
9 */
10
11 package org.dive4elements.river.importer.sinfo.parsers;
12
13 import java.io.File;
14 import java.util.ArrayList;
15 import java.util.List;
16
17 import org.apache.log4j.Logger;
18 import org.dive4elements.river.importer.Config;
19 import org.dive4elements.river.importer.ImportRiver;
20 import org.dive4elements.river.importer.common.AbstractParser;
21 import org.dive4elements.river.importer.sinfo.importitem.BedMobilityKmLineImport;
22 import org.dive4elements.river.importer.sinfo.importitem.BedMobilitySeriesImport;
23 import org.dive4elements.river.model.sinfo.BedMobility;
24 import org.dive4elements.river.model.sinfo.BedMobilityValue;
25
26 /**
27 * Reads and parses an bed mobility file
28 *
29 * @author Matthias Schäfer
30 *
31 */
32 public class BedMobilityParser extends AbstractParser<BedMobility, BedMobilityValue, BedMobilityKmLineImport, BedMobilitySeriesImport> {
33
34 /***** FIELDS *****/
35
36 private static final Logger log = Logger.getLogger(BedMobilityParser.class);
37
38 private static final String MOBILE_KEYWORD = "mobil";
39
40 private static final String IMPORT_FILENAME = "Einteilung der Gewässersohle.csv";
41
42
43 /***** CONSTRUCTORS *****/
44
45 public BedMobilityParser(final File importPath, final File rootRelativePath, final ImportRiver river) {
46 super(importPath, rootRelativePath, river);
47 }
48
49
50 /***** METHODS *****/
51
52 @Override
53 protected Logger getLog() {
54 return log;
55 }
56
57 /**
58 * Whether this import type shall be skipped
59 */
60 public static boolean shallSkip() {
61 return Config.INSTANCE.skipSInfoBedMobility();
62 }
63
64 /**
65 * Creates a list of parsers for all bed mobility import files in a directory
66 */
67 public static List<BedMobilityParser> createParsers(final File importDir, final File relativeDir, final ImportRiver river) {
68 final List<BedMobilityParser> parsers = new ArrayList<>();
69 parsers.add(new BedMobilityParser(new File(importDir, IMPORT_FILENAME), new File(relativeDir, IMPORT_FILENAME), river));
70 return parsers;
71 }
72
73 @Override
74 protected BedMobilitySeriesImport createSeriesImport(final String filename) {
75 return new BedMobilitySeriesImport(filename);
76 }
77
78 @Override
79 protected BedMobilityKmLineImport createKmLineImport(final Double km, final String[] values) {
80 return new BedMobilityKmLineImport(km, values[1].equalsIgnoreCase(MOBILE_KEYWORD));
81 }
82
83 @Override
84 protected boolean handleMetaOther() {
85 return super.handleMetaOther();
86 }
87 }

http://dive4elements.wald.intevation.org