# HG changeset patch # User Andre Heinecke # Date 1434724513 -7200 # Node ID 69b0a71b4845a36f0b4100314e05eae340f0a7d1 # Parent c4654863108d5c3237156726f6e4bcdac8bfaf21 (issue1448) Make sq time intervals distinct only for non epoch loads Previously it was random if the loads choosen to be part of the distinct sq time interval loads set were epoch loads or not. This led to wrong results beeing removed in the isEpoch check afterwards. diff -r c4654863108d -r 69b0a71b4845 artifacts/src/main/java/org/dive4elements/river/artifacts/model/minfo/SedimentLoadData.java --- a/artifacts/src/main/java/org/dive4elements/river/artifacts/model/minfo/SedimentLoadData.java Mon Jun 08 17:39:51 2015 +0200 +++ b/artifacts/src/main/java/org/dive4elements/river/artifacts/model/minfo/SedimentLoadData.java Fri Jun 19 16:35:13 2015 +0200 @@ -232,6 +232,20 @@ } } + public void allNonEpochLoads(Collection loads) { + for (List values: grainFractions) { + if (values != null) { + for (Value value: values) { + Load load = value.getLoad(); + if (load.isEpoch()) { + continue; + } + loads.add(value.getLoad()); + } + } + } + } + public void allOfficialLoads(Collection loads) { for (List values: grainFractions) { if (values != null) { @@ -536,13 +550,13 @@ * * This is mainly a convenience function for the SedimentLoadInfoService. */ - public Collection findUniqueTimeIntervalLoads(double a, double b) { + public Collection findDistinctSQTimeIntervalNonEpochLoads(double a, double b) { final TreeSet loads = new TreeSet(LOAD_SQ_TI_CMP); findStations(a, b, new Visitor() { @Override public void visit(Station station) { - station.allLoads(loads); + station.allNonEpochLoads(loads); } }); diff -r c4654863108d -r 69b0a71b4845 artifacts/src/main/java/org/dive4elements/river/artifacts/services/SedimentLoadInfoService.java --- a/artifacts/src/main/java/org/dive4elements/river/artifacts/services/SedimentLoadInfoService.java Mon Jun 08 17:39:51 2015 +0200 +++ b/artifacts/src/main/java/org/dive4elements/river/artifacts/services/SedimentLoadInfoService.java Fri Jun 19 16:35:13 2015 +0200 @@ -85,15 +85,13 @@ log.debug("Requested type: " + type + " with sq_ti_id: " + sq_ti_id); Collection loads; if (type.equals("sq_time_intervals")) { - loads = allLoadData.findUniqueTimeIntervalLoads(fromD, toD); + loads = allLoadData.findDistinctSQTimeIntervalNonEpochLoads(fromD, toD); for (Iterator it = loads.iterator(); it.hasNext();) { /* Skip loads without time interval for this info type. */ Load cur = it.next(); if (cur.getSQRelationTimeIntervalId() == null) { it.remove(); - } else if (cur.isEpoch()) { - it.remove(); } } } else {