view flys-artifacts/src/main/java/de/intevation/flys/artifacts/states/DurationCurveState.java @ 1999:02ce03329ef5

Some optimizations during out() operation of FLYSArtifactCollection. flys-artifacts/trunk@3437 c6561f87-3c4e-4783-a992-168aeb5c3f6f
author Ingo Weinzierl <ingo.weinzierl@intevation.de>
date Fri, 16 Dec 2011 11:47:57 +0000
parents e0243627ba62
children 024d986b4f5b
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.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.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
    ) {
        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) {
            Object[] args = new Object[] {
                FLYSUtils.getRiver(winfo).getName()
            };

            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"));

            if (res.getReport().hasProblems()) {
                facets.add(new ReportFacet());
            }
        }

        return res;
    }
}
// vim:set ts=4 sw=4 si et sta sts=4 fenc=utf-8 :

http://dive4elements.wald.intevation.org