view flys-artifacts/src/main/java/de/intevation/flys/artifacts/states/ReferenceCurveState.java @ 2283:d4330439be3a

Let reference curve calculation result in wwqq. flys-artifacts/trunk@3945 c6561f87-3c4e-4783-a992-168aeb5c3f6f
author Felix Wolfsteller <felix.wolfsteller@intevation.de>
date Tue, 07 Feb 2012 09:52:55 +0000
parents 3f3e4f94171b
children 51f530476e36
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.DataFacet;
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.WWQQ;

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

import java.util.List;

import org.apache.log4j.Logger;


public class ReferenceCurveState
extends      DefaultState
implements   FacetTypes
{
    private static Logger logger = 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;
        }

        String id = getID();

        WINFOArtifact winfo = (WINFOArtifact)artifact;

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

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

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

        for (int i = 0; i < wws.length; ++i) {
            facets.add(new ReferenceCurveFacet(i,
                REFERENCE_CURVE,
                Resources.getMsg(context.getMeta(), REFERENCE_CURVE, REFERENCE_CURVE)));
            facets.add(new ReferenceCurveFacet(i,
                REFERENCE_CURVE_NORMALIZED,
                Resources.getMsg(
                    context.getMeta(),
                    REFERENCE_CURVE_NORMALIZED, REFERENCE_CURVE_NORMALIZED)));
        }

        if (wws.length > 0) {
            // TODO: Add CSV/PDF facets.
            logger.debug("Adding CSV data facet.");
            Facet csv = new DataFacet (CSV, "CSV data", ComputeType.ADVANCE, hash, id);
            facets.add(csv);
        }

        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