comparison artifacts/src/main/java/org/dive4elements/river/artifacts/states/sq/SQPeriodSelect.java @ 8621:1125e598df0e

Fix handling of multiple entries in SQPeriodSelect default start/end calculation
author Andre Heinecke <andre.heinecke@intevation.de>
date Wed, 25 Mar 2015 19:37:44 +0100
parents 8737de2ca763
children 124efb3eea94
comparison
equal deleted inserted replaced
8620:8737de2ca763 8621:1125e598df0e
8 8
9 package org.dive4elements.river.artifacts.states.sq; 9 package org.dive4elements.river.artifacts.states.sq;
10 10
11 import java.util.Date; 11 import java.util.Date;
12 import java.util.List; 12 import java.util.List;
13 import java.util.Collections; 13 import java.util.TreeSet;
14 14
15 import org.apache.log4j.Logger; 15 import org.apache.log4j.Logger;
16 16
17 import org.w3c.dom.Element; 17 import org.w3c.dom.Element;
18 18
48 /* Bit of an overkill here but it will be cached and accessed 48 /* Bit of an overkill here but it will be cached and accessed
49 * in the next state anyway. */ 49 * in the next state anyway. */
50 SQOverview overview = SQOverviewFactory.getOverview(access.getRiverName()); 50 SQOverview overview = SQOverviewFactory.getOverview(access.getRiverName());
51 51
52 KMIndex<List<Date>> entries = overview.filter(new KmFilter(km)); 52 KMIndex<List<Date>> entries = overview.filter(new KmFilter(km));
53 if (entries.size() == 0) { 53 TreeSet<Date> allDates = new TreeSet<Date>();
54 return 0; 54
55 for (int i = 0; i < entries.size(); i++) {
56 allDates.addAll(entries.get(i).getValue());
55 } 57 }
56 List<Date> dates = entries.get(0).getValue();
57 if (dates.isEmpty()) {
58 return 0;
59 }
60 Collections.sort(dates);
61 58
62 return minDate ? dates.get(0).getTime() : dates.get(dates.size() - 1).getTime(); 59 return minDate ? allDates.first().getTime() : allDates.last().getTime();
63 } 60 }
64 61
65 @Override 62 @Override
66 protected Element[] createItems( 63 protected Element[] createItems(
67 XMLUtils.ElementCreator cr, 64 XMLUtils.ElementCreator cr,

http://dive4elements.wald.intevation.org