view flys-artifacts/src/main/java/de/intevation/flys/artifacts/states/ComputedDischargeCurveState.java @ 692:22e4bffbe240 facets-slt

Generated facets for each output aspect. flys-artifacts/branches/facets-slt@2132 c6561f87-3c4e-4783-a992-168aeb5c3f6f
author Ingo Weinzierl <ingo.weinzierl@intevation.de>
date Thu, 16 Jun 2011 10:05:44 +0000
parents f8ac04b2dbd0
children 708b270dfd30
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.DefaultFacet;
import de.intevation.artifactdatabase.state.Facet;

import de.intevation.flys.artifacts.FLYSArtifact;
import de.intevation.flys.artifacts.WINFOArtifact;
import de.intevation.flys.artifacts.model.ComputeCallback;
import de.intevation.flys.artifacts.model.ComputeCallbackAdapter;
import de.intevation.flys.artifacts.model.FacetTypes;
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 ComputeCallback createComputeCallback(
        String hash, FLYSArtifact flys)
    {
        final WINFOArtifact winfo = (WINFOArtifact) flys;

        return new ComputeCallbackAdapter() {

            @Override
            public Object computeAdvance(
                CallContext context,
                List<Facet> facets)
            {
                WQKms res = winfo.getComputedDischargeCurveData();

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

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

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

                Facet q = new DefaultFacet(0, DISCHARGE_LONGITUDINAL_Q, name);

                facets.add(q);

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

http://dive4elements.wald.intevation.org