# HG changeset patch # User Tom Gottfried # Date 1409144985 -7200 # Node ID ce35bdf3d75025fc06660f480f860cc662f906da # Parent 52504fc2cd588646911ad248bac09c503d4ea2c1 Let the facet know the period of it's data. diff -r 52504fc2cd58 -r ce35bdf3d750 artifacts/src/main/java/org/dive4elements/river/artifacts/model/minfo/SedimentLoadDataFacet.java --- 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 fractions = sdResult.getFractionsByName(fraction); + List 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(); diff -r 52504fc2cd58 -r ce35bdf3d750 artifacts/src/main/java/org/dive4elements/river/artifacts/model/minfo/SedimentLoadDataResult.java --- a/artifacts/src/main/java/org/dive4elements/river/artifacts/model/minfo/SedimentLoadDataResult.java Wed Aug 27 15:01:54 2014 +0200 +++ b/artifacts/src/main/java/org/dive4elements/river/artifacts/model/minfo/SedimentLoadDataResult.java Wed Aug 27 15:09:45 2014 +0200 @@ -82,5 +82,19 @@ } return result.isEmpty() ? null : result; } + + public List getFractionsByNameAndPeriod( + String name, + String period + ) { + List result = new ArrayList(); + for (Fraction fraction: fractions) { + if (fraction.getName().equals(name) && + fraction.getPeriod().equals(period)) { + result.add(fraction); + } + } + return result.isEmpty() ? null : result; + } } // vim:set ts=4 sw=4 si et sta sts=4 fenc=utf-8 : diff -r 52504fc2cd58 -r ce35bdf3d750 artifacts/src/main/java/org/dive4elements/river/artifacts/states/minfo/SedimentLoadDataCalculate.java --- a/artifacts/src/main/java/org/dive4elements/river/artifacts/states/minfo/SedimentLoadDataCalculate.java Wed Aug 27 15:01:54 2014 +0200 +++ b/artifacts/src/main/java/org/dive4elements/river/artifacts/states/minfo/SedimentLoadDataCalculate.java Wed Aug 27 15:09:45 2014 +0200 @@ -170,9 +170,11 @@ int i = 0; for (Fraction fract: sdRes.getFractions()) { - logger.debug("Adding facet for fraction: " + fract.getName()); + logger.debug("Adding facet for fraction '" + fract.getName() + + "' and period '" + fract.getPeriod() + "'"); facets.add(new SedimentLoadDataFacet(i++, fract.getName(), - unit, ComputeType.ADVANCE, id, hash, context)); + unit, fract.getPeriod(), + ComputeType.ADVANCE, id, hash, context)); } facets.add( diff -r 52504fc2cd58 -r ce35bdf3d750 artifacts/src/main/java/org/dive4elements/river/exports/minfo/SedimentLoadExporter.java --- a/artifacts/src/main/java/org/dive4elements/river/exports/minfo/SedimentLoadExporter.java Wed Aug 27 15:01:54 2014 +0200 +++ b/artifacts/src/main/java/org/dive4elements/river/exports/minfo/SedimentLoadExporter.java Wed Aug 27 15:09:45 2014 +0200 @@ -100,8 +100,8 @@ /* Prepare the values. The order of the fractions is given by the * header and thus static. */ - /* The result is ordered by the peridods. For each period there is - * then a map of km - fractions pairs which are the actual result. */ + /* The result is ordered by the periods. For each period there is + * then a map of km-fraction pairs which are the actual result. */ TreeMap > result_map = new TreeMap>();