Mercurial > dive4elements > river
view flys-artifacts/src/main/java/de/intevation/flys/artifacts/model/sq/SQRelationCalculation.java @ 3297:79c8e0d9fdea
SQ relation: Use only first time period.
flys-artifacts/trunk@4982 c6561f87-3c4e-4783-a992-168aeb5c3f6f
author | Sascha L. Teichmann <sascha.teichmann@intevation.de> |
---|---|
date | Fri, 13 Jul 2012 10:12:45 +0000 |
parents | 36f3b53d5cfc |
children | 02d5731b43a2 |
line wrap: on
line source
package de.intevation.flys.artifacts.model.sq; import de.intevation.flys.artifacts.access.SQRelationAccess; 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; import org.apache.log4j.Logger; public class SQRelationCalculation extends Calculation { private static final Logger log = Logger.getLogger(SQRelationCalculation.class); protected String river; protected double location; protected DateRange [] periods; protected double outliers; public SQRelationCalculation() { } public SQRelationCalculation(SQRelationAccess access) { String river = access.getRiver(); Double location = access.getLocation(); DateRange [] periods = access.getPeriods(); Double outliers = access.getOutliers(); if (river == null) { // TODO: i18n addProblem("sq.missing.river"); } if (location == null) { // TODO: i18n addProblem("sq.missing.location"); } if (periods == null || periods.length == 0) { // TODO: i18n addProblem("sq.missing.periods"); } if (outliers == null) { // TODO: i18n addProblem("sq.missing.outliers"); } if (!hasProblems()) { this.river = river; this.location = location; this.periods = periods; this.outliers = outliers; } } public CalculationResult calculate() { log.debug("SQRelationCalculation.calculate"); if (hasProblems()) { return new CalculationResult(this); } SedDBSessionHolder.acquire(); try { return internalCalculate(); } finally { SedDBSessionHolder.release(); } } protected CalculationResult internalCalculate() { boolean debug = log.isDebugEnabled(); // XXX: We can only produce one SQResult. DateRange period = periods[0]; Measurements measurements = MeasurementFactory.getMeasurements(river, location, period); if (debug) { log.debug(measurements.toString()); } SQFractionResult [] fractionResults = new SQFractionResult[SQResult.NUMBER_FRACTIONS]; for (int i = 0; i < fractionResults.length; ++i) { // TODO: Implement me! } return new CalculationResult(new SQResult(fractionResults), this); } } // vim:set ts=4 sw=4 si et sta sts=4 fenc=utf-8 :