diff artifacts/src/main/java/org/dive4elements/river/artifacts/model/fixings/FixAnalysisResult.java @ 6999:3e93f29281bc

Fix for flys/issue1479: The indices of the dates of the analysis periods where re-mapped wrong.
author Sascha L. Teichmann <teichmann@intevation.de>
date Thu, 12 Sep 2013 16:35:07 +0200
parents 8efef772a488
children a3f318347707 0a5239a1e46e
line wrap: on
line diff
--- a/artifacts/src/main/java/org/dive4elements/river/artifacts/model/fixings/FixAnalysisResult.java	Thu Sep 12 11:50:39 2013 +0200
+++ b/artifacts/src/main/java/org/dive4elements/river/artifacts/model/fixings/FixAnalysisResult.java	Thu Sep 12 16:35:07 2013 +0200
@@ -8,6 +8,8 @@
 
 package org.dive4elements.river.artifacts.model.fixings;
 
+import gnu.trove.TIntObjectHashMap;
+
 import java.util.Collection;
 import java.util.Date;
 import java.util.TreeMap;
@@ -56,17 +58,22 @@
 
 
     public void makeAnalysisEventsUnique() {
-        // Actually it would be enough to make dates 
-        // unique in one analysis period but to simplify things
-        // we make them unique in all periods.
-        DateUniqueMaker dum = new DateUniqueMaker();
+        TIntObjectHashMap dums = new TIntObjectHashMap();
+
         for (KMIndex.Entry<AnalysisPeriod []> entry: analysisPeriods) {
-            for (AnalysisPeriod ap: entry.getValue()) {
+            AnalysisPeriod [] aps = entry.getValue();
+            for (int i = 0; i < aps.length; ++i) {
+                AnalysisPeriod ap = aps[i];
                 QWD [] qwds = ap.getQWDs();
-                if (qwds != null) {
-                    for (QWD qwd: qwds) {
-                        dum.makeUnique(qwd);
-                    }
+                if (qwds == null) {
+                    continue;
+                }
+                DateUniqueMaker dum = (DateUniqueMaker)dums.get(i);
+                if (dum == null) {
+                    dums.put(i, dum = new DateUniqueMaker());
+                }
+                for (QWD qwd: qwds) {
+                    dum.makeUnique(qwd);
                 }
             }
         }

http://dive4elements.wald.intevation.org