Mercurial > dive4elements > river
diff backend/src/main/java/org/dive4elements/river/importer/parsers/SedimentLoadLSParser.java @ 8056:d86cc6a17b7a
Importer: Import sediment load at measurement stations.
author | Tom Gottfried <tom@intevation.de> |
---|---|
date | Fri, 18 Jul 2014 15:37:26 +0200 |
parents | bd0dea643440 |
children | bde5f5ec7c72 |
line wrap: on
line diff
--- a/backend/src/main/java/org/dive4elements/river/importer/parsers/SedimentLoadLSParser.java Fri Jul 18 13:03:28 2014 +0200 +++ b/backend/src/main/java/org/dive4elements/river/importer/parsers/SedimentLoadLSParser.java Fri Jul 18 15:37:26 2014 +0200 @@ -16,6 +16,8 @@ import java.util.ArrayList; import java.util.List; +import java.util.regex.Matcher; +import java.util.regex.Pattern; import org.apache.log4j.Logger; @@ -34,10 +36,16 @@ Logger.getLogger(SedimentLoadLSParser.class); + public static final Pattern META_UNIT = + Pattern.compile("^Einheit: \\[(.*)\\].*"); + + protected List<ImportSedimentLoadLS> sedimentLoadLSs; protected ImportSedimentLoadLS[] current; + protected ImportUnit unit; + public SedimentLoadLSParser() { sedimentLoadLSs = new ArrayList<ImportSedimentLoadLS>(); @@ -65,6 +73,36 @@ @Override + protected void handleMetaLine(String line) throws LineParserException { + if (handleMetaUnit(line)) { + return; + } + if (handleMetaFraction(line)) { + return; + } + if (handleMetaFractionName(line)) { + return; + } + if (handleColumnNames(line)) { + return; + } + log.warn("ASLP: Unknown meta line: '" + line + "'"); + } + + + protected boolean handleMetaUnit(String line) { + Matcher m = META_UNIT.matcher(line); + + if (m.matches()) { + unit = new ImportUnit(m.group(1)); + return true; + } + + return false; + } + + + @Override protected void handleDataLine(String line) { String[] vals = line.split(SEPERATOR_CHAR);