Mercurial > dive4elements > river
diff artifacts/src/main/java/org/dive4elements/river/artifacts/model/minfo/SedimentLoadDataCalculation.java @ 8053:72760ca2fc2b
Sediment load: dispatch calculation modes.
author | Sascha L. Teichmann <teichmann@intevation.de> |
---|---|
date | Fri, 18 Jul 2014 11:58:59 +0200 |
parents | 1dae69eff79d |
children | cd35b76f1ef8 |
line wrap: on
line diff
--- a/artifacts/src/main/java/org/dive4elements/river/artifacts/model/minfo/SedimentLoadDataCalculation.java Fri Jul 18 11:16:50 2014 +0200 +++ b/artifacts/src/main/java/org/dive4elements/river/artifacts/model/minfo/SedimentLoadDataCalculation.java Fri Jul 18 11:58:59 2014 +0200 @@ -13,10 +13,13 @@ import org.dive4elements.river.artifacts.access.SedimentLoadAccess; import org.dive4elements.river.artifacts.model.Calculation; import org.dive4elements.river.artifacts.model.CalculationResult; +import org.dive4elements.river.artifacts.model.RiverFactory; import org.apache.log4j.Logger; import org.dive4elements.river.artifacts.model.minfo.SedimentLoadData; import org.dive4elements.river.artifacts.model.minfo.SedimentLoadData.Value; import org.dive4elements.river.artifacts.model.minfo.SedimentLoadData.Station; +import org.dive4elements.river.model.River; +import org.dive4elements.river.utils.DoubleUtil; public class SedimentLoadDataCalculation extends Calculation @@ -173,20 +176,43 @@ return internalCalculate(); } - return new CalculationResult(); + return new CalculationResult(this); } private CalculationResult internalCalculate() { + if ("year".equals(yearEpoch)) return calculateYears(); + if ("epoch".equals(yearEpoch)) return calculateEpochs(); + if ("off_epoch".equals(yearEpoch)) return calculateOffEpochs(); + + // TODO: i18n + addProblem("minfo.sediment.load.unknown.calc.mode"); + + return new CalculationResult(this); + } + + private CalculationResult calculateYears() { // TODO: Implement me! return null; } - private static final double sum(double [] values) { - double sum = 0.0; - for (double value: values) { - sum += value; + private CalculationResult calculateEpochs() { + // TODO: Implement me! + return null; + } + + private CalculationResult calculateOffEpochs() { + // TODO: Implement me! + return null; + } + + /** Figure out flow direction of river. */ + private boolean isKmUp() { + River r = RiverFactory.getRiver(river); + if (r == null) { + addProblem("minfo.missing.river"); + return true; } - return sum; + return r.getKmUp(); } public double[][] sum( @@ -228,7 +254,7 @@ } } result[0][j] = station.getStation(); - result[1][j] = sum(values); + result[1][j] = DoubleUtil.sum(values); } // TODO: Handle 'virtual' measument stations 'from' and 'to'.