# HG changeset patch # User Felix Wolfsteller # Date 1357294660 -3600 # Node ID 03246a8b3869a9b1b0e4974be3bb6e265f2efaed # Parent 655e86f025c10592ccd635bb9cdb67844fd3559d ImportRiver: Added w80 and hook for da50 parsing (not implemented). diff -r 655e86f025c1 -r 03246a8b3869 flys-backend/src/main/java/de/intevation/flys/importer/ImportRiver.java --- a/flys-backend/src/main/java/de/intevation/flys/importer/ImportRiver.java Fri Jan 04 11:16:50 2013 +0100 +++ b/flys-backend/src/main/java/de/intevation/flys/importer/ImportRiver.java Fri Jan 04 11:17:40 2013 +0100 @@ -34,6 +34,7 @@ import de.intevation.flys.importer.parsers.SQRelationParser; import de.intevation.flys.importer.parsers.SedimentDensityParser; import de.intevation.flys.importer.parsers.SedimentYieldParser; +import de.intevation.flys.importer.parsers.W80Parser; import de.intevation.flys.importer.parsers.WaterlevelDifferencesParser; import de.intevation.flys.importer.parsers.WaterlevelParser; import de.intevation.flys.importer.parsers.WstParser; @@ -229,6 +230,8 @@ parseAnnotations(); parsePRFs(); parseDA66s(); + parseDA50s(); + parseW80s(); parseHYKs(); parseWst(); parseExtraWsts(); @@ -911,6 +914,48 @@ ImportRiver.this, description, ti, lines)); } + /** Create a W80 Parser and parse w80 files found. */ + public void parseW80s() { + if (Config.INSTANCE.skipW80s()) { + log.info("skip parsing W80s"); + } + W80Parser parser = new W80Parser(); + File riverDir = wstFile + .getParentFile() // Basisdaten + .getParentFile() // Hydrologie + .getParentFile(); // + + // TODO this can probably be further merged with implementation for PRF parser. + parser.parseW80s(riverDir, new CrossSectionParser.Callback() { + + Set w80s = new HashSet(); + + @Override + public boolean accept(File file) { + HashedFile hf = new HashedFile(file); + boolean success = w80s.add(hf); + if (!success) { + log.warn("W80 file '" + file + "' seems to be a duplicate."); + } + return success; + } + + @Override + public void parsed(CrossSectionParser parser) { + log.debug("callback from W80 parser"); + + addCrossSections(parser); + } + }); + } + + public void parseDA50s() { + if (Config.INSTANCE.skipDA50s()) { + log.info("skip parsing DA50s"); + } + else log.warn("DA50 parsing not yet implemented"); + } + /** Create a DA66 Parser and parse the da66 files found. */ // TODO this is a copy of parsePRFs, extract interfaces (e.g. CrossSectionParser). @@ -1040,7 +1085,7 @@ } public void storeCrossSections() { - if (!Config.INSTANCE.skipPRFs() || !Config.INSTANCE.skipDA66s()) { + if (!Config.INSTANCE.skipPRFs() || !Config.INSTANCE.skipDA66s() || !Config.INSTANCE.skipDA50s() || !Config.INSTANCE.skipW80s()) { log.info("store cross sections"); getPeer(); for (ImportCrossSection crossSection: crossSections) {