view flys-artifacts/src/main/java/de/intevation/flys/artifacts/states/ReferenceCurveState.java @ 2230:59af81364eb1

Improved the 'historical discharge' calculation: implemented findValueForW(). flys-artifacts/trunk@3872 c6561f87-3c4e-4783-a992-168aeb5c3f6f
author Ingo Weinzierl <ingo.weinzierl@intevation.de>
date Wed, 01 Feb 2012 15:41:11 +0000
parents 606f4fd7f815
children c9c788eea200
line wrap: on
line source
package de.intevation.flys.artifacts.states;

import de.intevation.artifactdatabase.state.Facet;

import de.intevation.artifacts.CallContext;

import de.intevation.flys.artifacts.FLYSArtifact;
import de.intevation.flys.artifacts.WINFOArtifact;

import de.intevation.flys.artifacts.model.CalculationResult;
import de.intevation.flys.artifacts.model.FacetTypes;
import de.intevation.flys.artifacts.model.ReferenceCurveFacet;
import de.intevation.flys.artifacts.model.ReportFacet;
import de.intevation.flys.artifacts.model.WW;

import java.util.List;

import org.apache.log4j.Logger;

public class ReferenceCurveState
extends      DefaultState
implements   FacetTypes
{
    private static Logger log = Logger.getLogger(ReferenceCurveState.class);

    public ReferenceCurveState() {
    }

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

        if (!(artifact instanceof WINFOArtifact)) {
            return null;
        }

        WINFOArtifact winfo = (WINFOArtifact)artifact;

        CalculationResult res = old instanceof CalculationResult
            ? (CalculationResult)old
            : winfo.getReferenceCurveData();

        if (facets == null) {
            return res;
        }

        WW [] wws = (WW [])res.getData();

        for (int i = 0; i < wws.length; ++i) {
            // TODO: Add data facets.
             facets.add(new ReferenceCurveFacet(i, REFERENCE_CURVE, REFERENCE_CURVE));
        }

        if (wws.length > 0) {
            // TODO: Add CSV/PDF facets.
        }

        if (res.getReport().hasProblems()) {
            facets.add(new ReportFacet(ComputeType.ADVANCE, hash, id));
        }

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

http://dive4elements.wald.intevation.org