view flys-artifacts/src/main/java/de/intevation/flys/artifacts/states/ComputedDischargeCurveState.java @ 705:853dceead0f4

Only generate facets when needed. flys-artifacts/trunk@2157 c6561f87-3c4e-4783-a992-168aeb5c3f6f
author Sascha L. Teichmann <sascha.teichmann@intevation.de>
date Sat, 18 Jun 2011 17:03:17 +0000
parents af3b5d9e91a4
children 3b7e9ddf6bb1
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.FacetTypes;
import de.intevation.flys.artifacts.model.WaterlevelFacet;
import de.intevation.flys.artifacts.model.DataFacet;
import de.intevation.flys.artifacts.model.WQKms;

import de.intevation.flys.artifacts.resources.Resources;


/**
 * The final state that will be reached after the discharge curve calculation
 * mode has been chosen.
 *
 * @author <a href="mailto:ingo.weinzierl@intevation.de">Ingo Weinzierl</a>
 */
public class ComputedDischargeCurveState
extends      DefaultState
implements   FacetTypes
{
    /** The logger that is used in this state.*/
    private static Logger logger =
        Logger.getLogger(ComputedDischargeCurveState.class);

    public ComputedDischargeCurveState() {
    }


    @Override
    public Object computeAdvance(
        FLYSArtifact artifact,
        String       hash,
        CallContext  context,
        List<Facet>  facets, 
        Object       old
    ) {
        WINFOArtifact winfo = (WINFOArtifact)artifact;

        WQKms res;

        if (old instanceof WQKms []) {
            res = ((WQKms [])old)[0];
        }
        else {
            res = winfo.getComputedDischargeCurveData();

            if (res == null) {
                logger.debug("No results given.");
                return null;
            }
        }

        if (facets != null) {
            Object[] args = new Object[] {
                winfo.getRiver().getName(),
                res.getName()
            };

            String name = Resources.getMsg(
                context.getMeta(),
                "chart.computed.discharge.curve.curve.label",
                "",
                args);

            facets.add(new WaterlevelFacet(0, COMPUTED_DISCHARGE_Q, name));
            facets.add(new DataFacet(CSV, "CSV data"));
        }

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

http://dive4elements.wald.intevation.org