view flys-artifacts/src/main/java/de/intevation/flys/artifacts/math/DifferenceCurveFacet.java @ 2089:0da8874bd378

Added initial state to map artifact to be able to advance and step back. The map artifact overrides describe() to have the complete UI information in the describe response document. flys-artifacts/trunk@3613 c6561f87-3c4e-4783-a992-168aeb5c3f6f
author Raimund Renkert <raimund.renkert@intevation.de>
date Fri, 06 Jan 2012 12:02:10 +0000
parents 8afd6a9bb244
children 81312f84689a
line wrap: on
line source
package de.intevation.flys.artifacts.model;

import org.apache.log4j.Logger;

import de.intevation.artifacts.Artifact;
import de.intevation.artifacts.CallContext;

import de.intevation.artifactdatabase.state.Facet;

import de.intevation.flys.artifacts.WINFOArtifact;

import de.intevation.flys.artifacts.states.DefaultState.ComputeType;


/**
 * Facet with the curve of a subtraction of two waterlevel-lines.
 */
public class DifferenceCurveFacet extends WaterlevelFacet {

    private static Logger logger = Logger.getLogger(DifferenceCurveFacet.class);


    public DifferenceCurveFacet() {
    }

    public DifferenceCurveFacet(
        int         index,
        String      name,
        String      description,
        ComputeType type,
        String      stateID,
        String      hash

    ) {
        super(index, name, description, type, stateID, hash);
    }

    /**
     * Get difference curve data.
     * @return a WKms at given index.
     */
    @Override
    public Object getData(Artifact artifact, CallContext context) {
        WINFOArtifact winfo = (WINFOArtifact)artifact;

        CalculationResult res = (CalculationResult)
            winfo.compute(context, hash, stateID, type, false);

        WKms [] wkms = (WKms [])res.getData();

        WKms result = wkms[index];
        logger.debug("Got difference curve data (" + result.getName() 
            + ") at index: " + index);

        return result;
    }


    /** Copy deeply. */
    @Override
    public Facet deepCopy() {
        WaterlevelFacet copy = new DifferenceCurveFacet();
        copy.set(this);
        copy.type    = type;
        copy.stateID = stateID;
        copy.hash    = hash;
        return copy;
    }
}
// vim:set ts=4 sw=4 si et sta sts=4 fenc=utf8 :

http://dive4elements.wald.intevation.org