diff artifacts/src/main/java/org/dive4elements/river/artifacts/model/minfo/SedimentLoadDataFacet.java @ 8146:ce35bdf3d750

Let the facet know the period of it's data.
author Tom Gottfried <tom@intevation.de>
date Wed, 27 Aug 2014 15:09:45 +0200
parents d4e4dde1d5cb
children f2bbe09e516e
line wrap: on
line diff
--- a/artifacts/src/main/java/org/dive4elements/river/artifacts/model/minfo/SedimentLoadDataFacet.java	Wed Aug 27 15:01:54 2014 +0200
+++ b/artifacts/src/main/java/org/dive4elements/river/artifacts/model/minfo/SedimentLoadDataFacet.java	Wed Aug 27 15:09:45 2014 +0200
@@ -49,14 +49,18 @@
 
     public String fraction;
 
+    public String period;
+
     public SedimentLoadDataFacet() {
     }
 
     public SedimentLoadDataFacet(int idx, String fraction_name, String unit,
+        String periodString,
         ComputeType type, String stateId, String hash, CallContext context) {
         super(idx, /*name*/"", ""/*description*/, type, hash, stateId);
 
         this.fraction = fraction_name;
+        this.period   = periodString;
 
         String typeUnit; /* Gnah someone should unify unit strings,... */
         String i18nUnit;
@@ -80,8 +84,7 @@
                 meta,
                 "facet.sedimentload." + isCalculated + fraction_name,
                 "Error: please add l10n for facet.sedimentload." + fraction_name,
-                /* TODO handle multiple periods per fraction */
-                new Object[] { "period", i18nUnit });
+                new Object[] { periodString, i18nUnit });
 
         /* Is this necessary? */
         metaData.put("X", "chart.longitudinal.section.xaxis.label");
@@ -103,15 +106,18 @@
 
         SedimentLoadDataResult sdResult = (SedimentLoadDataResult) payload;
 
-        List<Fraction> fractions = sdResult.getFractionsByName(fraction);
+        List<Fraction> fractions = sdResult.getFractionsByNameAndPeriod(
+            fraction, period
+        );
         if (fractions == null) {
-            logger.warn("No result for: " + fraction);
+            logger.warn("No result for fraction '" + fraction +
+                        "' and period '" + period + "'");
             return null;
         }
 
-        /* TODO handle multiple periods per fraction */
         if (fractions.size() > 1) {
-            logger.warn("Multiple periods not implemented.");
+            logger.error("Multiple results for fraction '" + fraction +
+                        "' and period '" + period + "'");
         }
 
         return fractions.get(0).getData();

http://dive4elements.wald.intevation.org