# HG changeset patch # User Tom Gottfried # Date 1370948630 -7200 # Node ID e7526a074c0d5c692186c30444826e3d34730645 # Parent e8f152163a1e2269aa61a505d8e7701073077ffd Bed height parser: check for duplicate stations diff -r e8f152163a1e -r e7526a074c0d backend/src/main/java/org/dive4elements/river/importer/parsers/BedHeightParser.java --- a/backend/src/main/java/org/dive4elements/river/importer/parsers/BedHeightParser.java Tue Jun 11 09:40:56 2013 +0200 +++ b/backend/src/main/java/org/dive4elements/river/importer/parsers/BedHeightParser.java Tue Jun 11 13:03:50 2013 +0200 @@ -19,6 +19,7 @@ import java.util.Calendar; import java.util.Date; import java.util.List; +import java.util.TreeSet; import java.util.Locale; import java.util.regex.Matcher; @@ -40,6 +41,7 @@ import org.dive4elements.river.importer.ImportUnit; import org.dive4elements.river.model.BedHeightType; import org.dive4elements.river.importer.ImporterSession; +import org.dive4elements.river.utils.EpsilonComparator; public abstract class BedHeightParser { @@ -98,10 +100,12 @@ String line ); + protected TreeSet kmExists; public BedHeightParser() { - this.bedHeights = new ArrayList(); + bedHeights = new ArrayList(); + kmExists = new TreeSet(EpsilonComparator.CMP); } @@ -115,6 +119,8 @@ ImportBedHeight obj = newImportBedHeight(file.getName().replaceAll("\\.csv", "")); + kmExists.clear(); + LineNumberReader in = null; try { in = diff -r e8f152163a1e -r e7526a074c0d backend/src/main/java/org/dive4elements/river/importer/parsers/BedHeightSingleParser.java --- a/backend/src/main/java/org/dive4elements/river/importer/parsers/BedHeightSingleParser.java Tue Jun 11 09:40:56 2013 +0200 +++ b/backend/src/main/java/org/dive4elements/river/importer/parsers/BedHeightSingleParser.java Tue Jun 11 13:03:50 2013 +0200 @@ -50,7 +50,17 @@ try { km = new Double(nf.parse(values[0]).doubleValue()); - } + + Double key = Double.valueOf(km); + + if (kmExists.contains(key)) { + log.warn("duplicate station '" + km + "': -> ignored"); + return; + } + + kmExists.add(key); + } + catch (ParseException e) { // We expect a lot of ";;;;;;" lines. //log.warn("BSP: Error while parsing km of data row.", e);