# HG changeset patch # User Tom Gottfried # Date 1429275856 -7200 # Node ID 67e53dbe05d2c43203e91a5c6fc0be04816fb329 # Parent bfca77cbf3536b248344469891b94082b7269516 (issue1750) Consistently attach parameters of suspended respectively bedload material to measurement station of respective type. diff -r bfca77cbf353 -r 67e53dbe05d2 backend/src/main/java/org/dive4elements/river/importer/ImportSQRelation.java --- a/backend/src/main/java/org/dive4elements/river/importer/ImportSQRelation.java Fri Apr 17 14:55:42 2015 +0200 +++ b/backend/src/main/java/org/dive4elements/river/importer/ImportSQRelation.java Fri Apr 17 15:04:16 2015 +0200 @@ -39,8 +39,6 @@ } public void storeDependencies() { - log.info("store dependencies"); - SQRelation peer = getPeer(); if (peer != null) { @@ -64,8 +62,6 @@ } public SQRelation getPeer() { - log.debug("getPeer()"); - if (peer == null) { TimeInterval timeInter = timeInterval.getPeer(); diff -r bfca77cbf353 -r 67e53dbe05d2 backend/src/main/java/org/dive4elements/river/importer/ImporterSession.java --- a/backend/src/main/java/org/dive4elements/river/importer/ImporterSession.java Fri Apr 17 14:55:42 2015 +0200 +++ b/backend/src/main/java/org/dive4elements/river/importer/ImporterSession.java Fri Apr 17 15:04:16 2015 +0200 @@ -206,6 +206,28 @@ return range; } + public MeasurementStation getMeasurementStation( + River river, + double station, + String measurementType + ) { + List stations = getMeasurementStations( + river, station); + + if (stations != null) { + /* Assume there is only one MeasurementStation per type at + any station. Should be enforced in database schema. */ + for (MeasurementStation m: stations) { + if (m.getMeasurementType().equals(measurementType)) { + return m; + } + continue; + } + } + + return null; + } + public List getMeasurementStations( River river, double station diff -r bfca77cbf353 -r 67e53dbe05d2 backend/src/main/java/org/dive4elements/river/importer/parsers/SQRelationParser.java --- a/backend/src/main/java/org/dive4elements/river/importer/parsers/SQRelationParser.java Fri Apr 17 14:55:42 2015 +0200 +++ b/backend/src/main/java/org/dive4elements/river/importer/parsers/SQRelationParser.java Fri Apr 17 15:04:16 2015 +0200 @@ -146,24 +146,32 @@ return; } - List ms = - ImporterSession.getInstance().getMeasurementStations( - river, km); + MeasurementStation mStation = ImporterSession.getInstance() + .getMeasurementStation( + river, + km, + parameter.equals("A") || parameter.equals("B") + ? MeasurementStation.MEASUREMENT_TYPE_SUSP + : MeasurementStation.MEASUREMENT_TYPE_BEDLOAD); - if (ms != null && !ms.isEmpty()) { - current.addValue(new ImportSQRelationValue( - cols[1], - ms.get(0), - a, - b, - qMax, - rSq, - nTot, - nOutlier, - cFer, - cDuan - )); + if (mStation == null) { + log.warn("No measurement station fitting parameter " + + parameter + " at km " + km + ". Line ignored."); + return; } + + current.addValue(new ImportSQRelationValue( + parameter, + mStation, + a, + b, + qMax, + rSq, + nTot, + nOutlier, + cFer, + cDuan + )); } private Double parseDouble(String[] values, int idx) {