view flys-artifacts/src/main/java/de/intevation/flys/artifacts/states/ReferenceCurveState.java @ 2272:4a8b519b64bd

Extend reference curve export to include km location as string. flys-artifacts/trunk@3929 c6561f87-3c4e-4783-a992-168aeb5c3f6f
author Felix Wolfsteller <felix.wolfsteller@intevation.de>
date Mon, 06 Feb 2012 14:22:26 +0000
parents 0dcb8326be08
children 3f3e4f94171b
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.WW;

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;
        }

        WW [] wws = (WW [])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)));
        }

        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