# HG changeset patch # User Raimund Renkert # Date 1399549725 -7200 # Node ID cdef048c4ac5b38645e1f8a198e98c9f59d155b2 # Parent c288309a5dcbb24d9b641ea6953e3f13081c07b4 Fixed porosity importer. Find existing db entries and parse values from string, not via double. diff -r c288309a5dcb -r cdef048c4ac5 backend/src/main/java/org/dive4elements/river/importer/ImportPorosity.java --- a/backend/src/main/java/org/dive4elements/river/importer/ImportPorosity.java Thu May 08 13:46:32 2014 +0200 +++ b/backend/src/main/java/org/dive4elements/river/importer/ImportPorosity.java Thu May 08 13:48:45 2014 +0200 @@ -86,10 +86,13 @@ .getDatabaseSession(); Query query = session.createQuery("from Porosity where " - + " river=:river and " + " depth=:depth"); + + " river=:river and " + + " depth=:depth and " + + " description=:description"); query.setParameter("river", river); query.setParameter("depth", depth.getPeer()); + query.setParameter("description", description); List porosity = query.list(); diff -r c288309a5dcb -r cdef048c4ac5 backend/src/main/java/org/dive4elements/river/importer/ImportPorosityValue.java --- a/backend/src/main/java/org/dive4elements/river/importer/ImportPorosityValue.java Thu May 08 13:46:32 2014 +0200 +++ b/backend/src/main/java/org/dive4elements/river/importer/ImportPorosityValue.java Thu May 08 13:48:45 2014 +0200 @@ -67,15 +67,13 @@ Query query = session.createQuery( "from PorosityValue where " + " porosity=:porosity and " + - " station=:station and " + - " shoreOffset=:shoreOffset and " + - " porosityValue=:poros and " + + " station between :station - 0.0001f and :station + 0.0001f and" + + " porosityValue between :poros -0.0001f and :poros + 0.0001f and" + " description=:description"); query.setParameter("porosity", porosity); - query.setParameter("station", station); - query.setParameter("shoreOffset", shoreOffset); - query.setParameter("poros", this.porosity); + query.setParameter("station", station.floatValue()); + query.setParameter("poros", this.porosity.floatValue()); query.setParameter("description", description); List values = query.list(); diff -r c288309a5dcb -r cdef048c4ac5 backend/src/main/java/org/dive4elements/river/importer/parsers/PorosityParser.java --- a/backend/src/main/java/org/dive4elements/river/importer/parsers/PorosityParser.java Thu May 08 13:46:32 2014 +0200 +++ b/backend/src/main/java/org/dive4elements/river/importer/parsers/PorosityParser.java Thu May 08 13:48:45 2014 +0200 @@ -137,19 +137,22 @@ log.info("Found porosity depth: " + lo + " - " + up + " cm"); + ImportDepth depth = null; try { - ImportDepth depth = new ImportDepth( - new BigDecimal(nf.parse(lo).doubleValue()), - new BigDecimal(nf.parse(up).doubleValue()) + depth = new ImportDepth( + new BigDecimal(lo), + new BigDecimal(up) ); + } + catch (NumberFormatException nfe) { + log.warn("Unparsable number for depth: " + line, nfe); + } + if (depth != null) { current.setDepth(depth); - return true; } - catch (ParseException pe) { - log.warn("Unparseable numbers in: '" + line + "'"); - } + return false; } else { log.debug("Meta line doesn't contain depth information: " + line); @@ -170,15 +173,18 @@ BigDecimal km = null; BigDecimal shoreOffset = null; BigDecimal porosity = null; + vals[0] = vals[0].replace(",", "."); + vals[2] = vals[2].replace(",", "."); try { - km = new BigDecimal(nf.parse(vals[0]).doubleValue()); - porosity = new BigDecimal(nf.parse(vals[2]).doubleValue()); + km = new BigDecimal(vals[0]); + porosity = new BigDecimal(vals[2]); if (!vals[1].isEmpty()) { - shoreOffset = new BigDecimal(nf.parse(vals[1]).doubleValue()); + vals[1] = vals[1].replace(",", "."); + shoreOffset = new BigDecimal(vals[1]); } } - catch (ParseException pe) { - log.warn("Unparseable numbers in '" + line + "'"); + catch(NumberFormatException nfe) { + log.warn("Unparsable number in line: " + line, nfe); } if (km == null || porosity == null) {