diff artifacts/src/main/java/org/dive4elements/river/artifacts/common/EpochYearAccessHelper.java @ 9155:9b4f5e61c02e

Changed to list of DateRange, added methods in DateRange to support year ranges
author mschaefer
date Tue, 19 Jun 2018 14:15:32 +0200
parents 611a523fc42f
children 2f5052835b76
line wrap: on
line diff
--- a/artifacts/src/main/java/org/dive4elements/river/artifacts/common/EpochYearAccessHelper.java	Thu Jun 14 17:51:30 2018 +0200
+++ b/artifacts/src/main/java/org/dive4elements/river/artifacts/common/EpochYearAccessHelper.java	Tue Jun 19 14:15:32 2018 +0200
@@ -9,10 +9,15 @@
  */
 package org.dive4elements.river.artifacts.common;
 
+import java.util.ArrayList;
+import java.util.List;
+
 import org.apache.log4j.Logger;
 import org.dive4elements.artifacts.Artifact;
 import org.dive4elements.river.artifacts.D4EArtifact;
 import org.dive4elements.river.artifacts.access.Access;
+import org.dive4elements.river.artifacts.model.DateRange;
+import org.dive4elements.river.backend.utils.DateUtil;
 
 import gnu.trove.TIntArrayList;
 
@@ -68,8 +73,8 @@
         return null;
     }
 
-    public int[][] getEpochs(final String epochSelectedValue, final String epochKey) {
-        int epochs[][] = null;
+    public List<DateRange> getEpochs(final String epochSelectedValue, final String epochKey) {
+        final List<DateRange> epochs = new ArrayList<>();
         // if (epochs != null) {
         // return epochs;
         // }
@@ -79,23 +84,15 @@
         }
 
         final String data = getString(epochKey);
-
         if (data == null) {
             log.warn("No 'epochs' parameter specified!");
             return null;
         }
 
-        final String[] parts = data.split(";");
-
-        epochs = new int[parts.length][];
-
-        for (int i = 0; i < parts.length; i++) {
-            final String[] values = parts[i].split(",");
-            final TIntArrayList ints = new TIntArrayList();
+        for (final String part : data.split(";")) {
+            final String[] values = part.split(",");
             try {
-                ints.add(Integer.parseInt(values[0]));
-                ints.add(Integer.parseInt(values[1]));
-                epochs[i] = ints.toNativeArray();
+                epochs.add(new DateRange(DateUtil.getStartDateFromYear(Integer.parseInt(values[0])), DateUtil.getEndDateFromYear(Integer.parseInt(values[1]))));
             }
             catch (final NumberFormatException nfe) {
                 log.warn("Cannot parse int from string: '" + values + "'");

http://dive4elements.wald.intevation.org