Mercurial > dive4elements > river
view flys-artifacts/src/main/java/de/intevation/flys/artifacts/model/minfo/BedQualityCalculation.java @ 3760:312870fded7e
Added result objects for minfo bed quality calculation.
flys-artifacts/trunk@5459 c6561f87-3c4e-4783-a992-168aeb5c3f6f
author | Raimund Renkert <raimund.renkert@intevation.de> |
---|---|
date | Thu, 13 Sep 2012 13:51:00 +0000 |
parents | |
children | 728ecd2afa20 |
line wrap: on
line source
package de.intevation.flys.artifacts.model.minfo; import java.util.LinkedList; import java.util.List; import org.apache.log4j.Logger; import de.intevation.flys.artifacts.access.BedQualityAccess; import de.intevation.flys.artifacts.model.Calculation; import de.intevation.flys.artifacts.model.CalculationResult; import de.intevation.flys.artifacts.model.DateRange; import de.intevation.flys.backend.SedDBSessionHolder; public class BedQualityCalculation extends Calculation { private static final Logger logger = Logger .getLogger(BedQualityCalculation.class); protected String river; protected double from; protected double to; protected List<DateRange> ranges; public BedQualityCalculation() { } public CalculationResult calculate(BedQualityAccess access) { logger.info("BedQualityCalculation.calculate"); String river = access.getRiver(); Double from = access.getFrom(); Double to = access.getTo(); List<DateRange> ranges = access.getDateRanges(); if (river == null) { // TODO: i18n addProblem("minfo.missing.river"); } if (from == null) { // TODO: i18n addProblem("minfo.missing.from"); } if (to == null) { // TODO: i18n addProblem("minfo.missing.to"); } if (ranges == null) { // TODO: i18n addProblem("minfo.missing.periods"); } if (!hasProblems()) { this.river = river; this.from = from; this.to = to; this.ranges = ranges; SedDBSessionHolder.acquire(); try { return internalCalculate(); } finally { SedDBSessionHolder.release(); } } return new CalculationResult(); } protected CalculationResult internalCalculate() { List<BedQualityResult> results = new LinkedList<BedQualityResult>(); // Calculate for all time periods. for (DateRange dr : ranges) { QualityMeasurements bedMeasurements = QualityMeasurementFactory .getBedMeasurements(river, from, to, dr.getFrom(), dr.getTo()); QualityMeasurements loadMeasurements = QualityMeasurementFactory .getBedMeasurements(river, from, to, dr.getFrom(), dr.getTo()); BedQualityResult bedResult = calculateBed(bedMeasurements); BedQualityResult loadResult = calculateBedload(loadMeasurements); results.add(bedResult); results.add(loadResult); } return new CalculationResult( results.toArray(new BedQualityResult[results.size()]), this); } protected BedQualityResult calculateBed(QualityMeasurements qm) { // TODO return new BedQualityResult(); } protected BedQualityResult calculateBedload(QualityMeasurements qm) { // TODO return new BedQualityResult(); } }