Mercurial > dive4elements > river
view flys-artifacts/src/main/java/de/intevation/flys/artifacts/states/DurationCurveState.java @ 4837:9e25c7523485
Fixed calculation of effective width in MINFO SQ relation.
* Get all (including empty datasets) from db.
* Filter empty datasets when processing data of the same date.
* Added debug outputs.
author | Raimund Renkert <rrenkert@intevation.de> |
---|---|
date | Wed, 23 Jan 2013 11:14:41 +0100 |
parents | 9ea3ac23bd9d |
children | 7887112c37cc |
line wrap: on
line source
package de.intevation.flys.artifacts.states; import java.util.List; import org.apache.log4j.Logger; import de.intevation.artifacts.CallContext; import de.intevation.artifactdatabase.state.Facet; import de.intevation.flys.artifacts.FLYSArtifact; import de.intevation.flys.artifacts.WINFOArtifact; import de.intevation.flys.artifacts.ChartArtifact; import de.intevation.flys.artifacts.model.DurationCurveFacet; import de.intevation.flys.artifacts.model.FacetTypes; import de.intevation.flys.artifacts.model.WQDay; import de.intevation.flys.artifacts.model.DataFacet; import de.intevation.flys.artifacts.model.ReportFacet; import de.intevation.flys.artifacts.model.EmptyFacet; import de.intevation.flys.artifacts.model.CalculationResult; import de.intevation.flys.artifacts.resources.Resources; import de.intevation.flys.utils.FLYSUtils; /** * The final state that will be reached after the duration curve calculation * mode has been chosen. * * @author <a href="mailto:ingo.weinzierl@intevation.de">Ingo Weinzierl</a> */ public class DurationCurveState extends DefaultState implements FacetTypes { /** The logger that is used in this state. */ private static Logger logger = Logger.getLogger(DurationCurveState.class); public DurationCurveState() { } @Override public Object computeAdvance( FLYSArtifact artifact, String hash, CallContext context, List<Facet> facets, Object old ) { if (artifact instanceof WINFOArtifact) { WINFOArtifact winfo = (WINFOArtifact)artifact; CalculationResult res; if (old instanceof CalculationResult) { res = (CalculationResult)old; } else { res = winfo.getDurationCurveData(); } WQDay wqday = (WQDay)res.getData(); if (wqday != null && facets != null) { // Create an i18ed name for a (w or q) duration curve facet. Object[] args = new Object[] { FLYSUtils.getRiver(winfo).getName(), FLYSUtils.getLocations(winfo)[0] }; String nameW = Resources.getMsg( context.getMeta(), "chart.duration.curve.curve.w", "", args); String nameQ = Resources.getMsg( context.getMeta(), "chart.duration.curve.curve.q", "", args); Facet w = new DurationCurveFacet(DURATION_W, nameW); Facet q = new DurationCurveFacet(DURATION_Q, nameQ); facets.add(w); facets.add(q); facets.add(new DataFacet(CSV, "CSV data")); facets.add(new DataFacet(PDF, "PDF data")); if (res.getReport().hasProblems()) { facets.add(new ReportFacet()); } } return res; } else if (artifact instanceof ChartArtifact) { ChartArtifact chart = (ChartArtifact)artifact; facets.add(new EmptyFacet()); return null; } return null; } } // vim:set ts=4 sw=4 si et sta sts=4 fenc=utf-8 :