# HG changeset patch # User Andre Heinecke # Date 1408989704 -7200 # Node ID 45b1d71110c3b37f1e58646c663ac7f4f799bb2e # Parent 58e3fed51e9edd29b2470329cbf142dea09a1323 Correctly handle not creating facets and error reports. diff -r 58e3fed51e9e -r 45b1d71110c3 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 Mon Aug 25 20:00:45 2014 +0200 +++ b/artifacts/src/main/java/org/dive4elements/river/artifacts/states/minfo/SedimentLoadDataCalculate.java Mon Aug 25 20:01:44 2014 +0200 @@ -138,8 +138,6 @@ CallContext context, List facets, Object old) { logger.debug("SedimentLoadDataCalculate.computeAdvance"); - List newFacets = new ArrayList(); - SedimentLoadAccess access = new SedimentLoadAccess(artifact); CalculationResult res = old instanceof CalculationResult @@ -151,13 +149,21 @@ logger.error ("No calculation result."); } + if (facets == null) { + /* No need to create facets as they already exist in this case. */ + return res; + } + + Calculation report = res.getReport(); + + if (report != null && report.hasProblems()) { + facets.add(new ReportFacet(ComputeType.ADVANCE, hash, id)); + logger.warn ("Problems : " + report.problemsToString()); + } + Object raw = res.getData(); if (raw == null) { logger.warn("No result data."); - Calculation report = res.getReport(); - if (report != null) { - logger.warn ("Problems : " + report.problemsToString()); - } return res; } @@ -168,23 +174,18 @@ logger.error ("Unknown result"); return null; } + String unit = access.getUnit().replace("_per_","/"); int i = 0; for (Fraction fract: sdRes.getFractions()) { logger.debug("Adding facet for fraction: " + fract.getName()); - newFacets.add(new SedimentLoadDataFacet(i++, fract.getName(), - fract.getUnit(), ComputeType.ADVANCE, id, hash, context)); + facets.add(new SedimentLoadDataFacet(i++, fract.getName(), + unit, ComputeType.ADVANCE, id, hash, context)); } - newFacets.add( + facets.add( new DataFacet(CSV, "CSV data", ComputeType.ADVANCE, hash, id)); - if (facets != null) { - facets.addAll(newFacets); - } else { - facets = newFacets; - } - /* XXX: THIS IS ALL BROKEN SedimentLoadResult[] results = (SedimentLoadResult[]) res.getData();